День программиста отмечается каждое 13 сентября, если год при этом не високосный, в 2020-м — на день раньше, 12 сентября. Почему такая дотошность? Потому что праздник этот привязан не к дате, а к количеству дней в году. И именно 13 сентября в большинстве случаев — 256-й день. Это число выбрано потому, что это количество различных значений, которые можно выразить с помощью восьмиразрядного байта. А легко ли стать программистом и какие качества помогут добиться успехов? Давайте разберемся.
Когда начинаются разговоры о профессии программиста, то в голове у большинства людей появляется устойчивый образ забитого, угрюмого и замороченного человека, который месяцами не видит солнечного света и большую часть жизни проводит за монитором, всматриваясь, как в кинофильме «Матрица», в сотни бегущих строчек кода. Ну и, конечно же, эффектно, в пару щелчков по клавиатуре, взламывает правительственные серверы, вытягивая оттуда сверхсекретную информацию. Однако реальность бесконечно далека от клишированного образа, ведь программирование — необычайно широкая дисциплина, зачастую требующая не только знания специфических машинных языков, но и развитых коммуникативных навыков вкупе с острым умом.
Не только математики
Тем не менее, вопреки расхожему мнению, попасть в «разработку» (то есть стать программистом), как сейчас принято говорить, можно не только из престижного высшего учебного заведения технической направленности. На сегодняшний день можно встретить немало людей, пришедших в отрасль из самых что ни на есть гуманитарных специальностей. И таких с каждым годом становится все больше.
— Да, конечно, если у человека уже есть предрасположенность к точным наукам и диплом технического университета, то ему будет значительно проще в освоении необходимых навыков. Таким людям, например, легче осваивать новые языки программирования, так как фактически в университете им преподают азбуку, на основе которой и строится все остальное, — отметил эксперт по продуктовой разработке Антон Дацюк. — С другой стороны, пришедшим в эту профессию из других сфер деятельности достаточно освоить корневую логику процессов, чтобы остальное обучение пошло лучше. Конечно, это намного труднее, чем звучит, но именно этот базовый принцип и лежит в основе всего. Это как клубок ниток — если ухватиться за правильный конец, то достаточно просто потянуть, и узел развяжется сам собой.
Впрочем, как уже было сказано, саму специальность программиста можно трактовать исключительно широко. И перед тем как идти в эту профессию, неплохо было бы определиться, чем именно хочется заниматься. Ведь для каждого из множества направлений требуются не просто разные навыки, но и знание разных языков программирования. Если упростить, можно свести выбор к двум составляющим: фронтенд- и бэкенд-разработчикам.
Мастер красоты
Задача первых — обеспечить для своей программы наилучший пользовательский опыт. Все, что человек видит перед собой, когда запускает программу или открывает интерактивный модуль на сайте, — работа фронтенд-программиста. В его задачи входит обеспечение стабильной работы пользовательского интерфейса. Подсвечивающиеся кнопки, интерактивные меню и прочие красивости — именно их задача. Если хочется попасть в их стан, то придется крепко взяться за изучение языка JavaScript и инструментов для разметки, описания и стилизации страниц: HTML (HyperText Markup Language) и CSS (Cascading Style Sheets). По другую сторону находится фактически антипод фронтенда — бэкенд-разработчик. Вся серверная часть, к которой «за кулисами» обращается программа или модуль, — это их вотчина.
Чтобы все работало
Задача бэкенд-программистов состоит в организации обработки поступающих на сервер запросов от пользователя. Например, когда юзер (пользователь) регистрируется на сайте, введенные им данные отправляются на сервер для обработки и верификации. Система определяет, имеет ли пользователь право на авторизацию, совпадают ли введенные им ключи с уже хранящимися в базе и так далее. За организацию этой структуры и отвечают бэкенд-программисты. И им для работы необходимы уже совсем другие языки разработки. Сегодня специалисты в этой области пользуются в основном Java, который, как это для многих ни удивительно, не имеет отношения к JavaScript, PHP, .NET, C++ и Python. Последний, к слову, сейчас доминирует на ниве бэкенд-разработки, так как весьма прост в изучении по сравнению с другими языками и имеет немало удобных встроенных инструментов разработки.
Универсальный солдат
Существуют еще так называемые fullstack-программисты. Это мастера на все руки, которые владеют навыками из обеих предыдущих веток. Такой специалист способен решить бизнес-задачу в одиночку, убирая из производственной цепочки лишние взаимодействия. И зачастую к уже изученным языкам он добавляет Ruby, Ruby on Rails и Golang. Сразу, разумеется, работать в этом направлении не стоит. Необходимо достаточно времени проработать в фронтенде или бэкенде, освоиться там и уже после принимать решение, хватит ли знаний и упорства дополнительно брать на себя такой объем работы.
Лидер
Не стоит забывать и о возможностях роста. Конечно, можно всю жизнь отдать на изучение своей темы, постоянно повышая свою квалификацию и развиваясь как специалист, получая за это все больше и больше денег.
— Однако к какому-то моменту всматриваться в бесконечные строчки кода в поисках одной-единственной ошибки, которая мешает нормальной работе всей программы, может просто надоесть. Тогда не- обходимо начинать думать о том, куда двигаться дальше, — подчеркнул Антон Дацюк. — Набравшись достаточно опыта, можно переквалифицироваться в тимлиды. Это лидер команды разработчиков. Фактически опора коллектива — он ставит задачи, проверяет правильность кода у своих подчиненных, взаимодействует с остальными отделами в компании, обсуждая бизнес-решения с проект-менеджерами, и занимается кадровыми вопросами. В каких пропорциях он этим занят, зависит уже больше от самого тимлида. Кто-то больше погружается в административные дела, минимально прикасаясь к коду, другие, наоборот, предпочитают решать именно технические задачи, руководя командой.
Стремящиеся же к верхам могут попробовать стать техническим директором. Эти специалисты обычно руководят собственными департаментами и про программирование фактически забывают. Такие люди занимаются бюджетами, бизнес-вопросами и принимают решения о внедрении в производство новых технологий. Если проводить сравнения, то тимлид среди программистов равен майору в войсках, тогда как технический директор — это уже генерал или маршал.
Кстати В 2009 году, 9 сентября, президент РФ Владимир Путин подписал доктрину информационной безопасности. Конечно, далеко не все программисты идут в специальности, связанные с охраной важных данных, но многие так или иначе все равно стараются обеспечить своему коду защиту от несанкционированного изменения и проникновения.
25 ПРОЦЕНТОВ своего рабочего времени среднестатистический программист тратит на то, чтобы спрогнозировать возможные действия пользователя в программе и понять, как именно он может нарушить ее работоспособность.
ПЛЮСЫ
1 Высокая заработная плата и востребованность на рынке. Даже в кризисы количество актуальных вакансий практически не уменьшается. К тому же в большинстве случаев зарплаты таких специалистов начинаются от 80–100 тысяч рублей.
2 Работая в IT, ты всегда видишь результаты собственного труда. Гораздо приятнее смотреть на успешно запущенный проект и видеть, как написанные тобой модули помогают ему работать.
3 Нет никаких проблем с удаленной работой. Большинство IT-компаний готовы пойти навстречу новому сотруднику и предоставить ему возможность работать удаленно. Более того, в текущей ситуации с коронавирусом на такие уступки стали идти чаще. Так что договориться о работе из другого часового пояса вполне возможно.
МИНУСЫ
1 Унылая рутинная работа. Не всегда будут появляться задачи, требующие умственного усилия над собой. Будет немало периодов, когда придется изо дня в день заниматься механическим повторением одного и того же.
2 Ненормированный рабочий день. Рабочий график часто перегружен, и задачи со сроками начинают «гореть». Порой приходится задерживаться на 3–4 часа после окончания рабочего времени или вообще работать в выходные.
3 Множество не связанных с программированием задач. Зачастую задачи выстраиваются так, что работа с кодом занимает наименьшее количество времени. Большая часть рабочей недели может уйти на совещания и другие проблемы. В результате из 40 часов на программирование уйдет максимум восемь.
ГДЕ УЧИТЬСЯ
Университеты:
● Московский государственный технический университет имени Н. Э. Баумана
● Национальный исследовательский технологический университет «МИСиС»
● Московский физико-технический институт
● МИРЭА — Российский технологический университет Колледжи
● Колледж автоматизации и информационных технологий № 20
● Колледж связи № 54 имени П. М. Вострухина
● Колледж информатики и программирования Финансового университета при Правительстве Российской Федерации
● Московский колледж бизнес-технологий