Профессионалы пользуются спросом на рынке труда за способность управлять проектами, определять приоритеты задач и давать советы младшим веб-разработчикам. Работодатели обычно соревнуются за таких специалистов, используя для их привлечения всевозможные бонусы и высокие зарплаты ($3000 – $4000). Перейти на последний уровень нелегко, но награда того стоит. Важно спланировать продвижение по карьерной лестнице с упором на рост и обучение –на примере профессии frontend-разработчика мы сделали пошаговое руководство, которое поможет вам пройти этот нелегкий путь.
Начало карьеры в веб-разработке и обучение Что нужно знать? В условиях нынешнего рынка получение позиции Junior – уже большой успех. Значит вы смогли выделиться из общей массы новичков, и такое положение необходимо не только сохранить, но и улучшить.
Начинающему frontend-разработчику обязательно понадобятся следующие знания, умения и навыки:
Хорошие познания в HTML; Знание CSS, а также опыт работы с CSS-фреймворками (Twitter Bootstrap/Foundation) и CSS препроцессорами (Sass, Less, Stylus и т. д.); Владение графическими редакторами (Photoshop, Illustrator); Базовый опыт программирования на JavaScript (анимация, валидация, pop-ups); Понимание основных принципов работы хотя бы с одним фреймворком JS (ReactJS, AngularJS, Backbone, Vue.js); Практические навыки работы с системой контроля версий GIT; Знание популярных CMS (WordPress, Drupal, Joomla и т. д.); Владение инструментами дебаггинга (Chrome Dev Tools, Firebug). Как нужно учиться? Во время испытательного срока налаживайте контакт со старшими коллегами и узнавайте о методах написания, тестирования и отладки кода. Вы обнаружите множество новых для себя вещей, с которыми ещё не успели познакомиться. Не бросайтесь осваивать всё подряд. У вас быстро сформируется список пробелов в знаниях. Расставьте приоритеты в нем, вместе со своими коллегами. Продвигайтесь поэтапно, зачеркивая пункт за пунктом, тогда вы станете разбираться в технологиях и грамотно применять их на практике. Не надейтесь, что технические задания будут очень понятными, а заказчики – всегда лояльными. В любом проекте, будет оставаться место для небольшого подвига. Вы узнаете, что представляет ценность для коллег, компании и конечного пользователя продукта.
Сколько времени потребуется? Практика показывает, что на позиции Junior специалист обычно работает около года. Конечно этот срок может меняться в разумных рамках, но если на втором году в должности вы всё ещё чувствуете себя некомфортно, стоит задуматься об изменении стратегии обучения и развития.
Какого результата ожидать от обучения? В процессе активной работы вы наберетесь опыта, изучите основные понятия в программировании, разберетесь с оценкой сложности и работой с высокими нагрузками. К концу этого этапа уже можно смотреть в сторону позиции middle.
Переход на позицию middle Что нужно знать? Хотя в сфере ИТ есть общепринятая шкала для оценки разработчиков (trainee, junior, middle, senior, lead), точное определением круга обязанностей для каждого уровня меняется в зависимости от работодателя.
Тем не менее существует основной набор знаний, умений и навыков, обязательный для фронтенд-разработчика уровня middle:
Доскональное знание синтаксиса используемого языка(JavaScript), опыт работы и уверенные теоретические познания в программировании; Владение ООП (наследование, полиморфизм и инкапсуляция); Хорошее знание одной из популярных библиотек JS (React, Angular, Vue и т. д.),; Умение самостоятельно настроить систему сборки проекта (Gulp/Grunt/Webpack), работая с нативным JS (ES5, ES6, ES7); Знание и понимание интерфейсов RESTful; Опыт работы со средствами совместного использования кода (Git + GitFlow); Уровень английского не ниже Upper-Intermediate. Также есть дополнительные навыки, связанные с серверной стороной – они будут большим плюсом при трудоустройстве:
Опыт разработки серверного кода под Node.js и TypeScript; Базовые знания PHP; Опыт работы с PostgreSQL/MySQL. Как нужно учиться? Многие компании проводят личные встречи и следят за ростом своих сотрудников. Однако очень часто они исходят из принципа достаточности: работает человек, вот и славно. Зачем ему больше платить? Если начальник не говорит с вами на тему профессионального роста, необходимо активно продвигать свои навыки. Проанализируйте проделанную работу. Сколько задач вы довели до Production? Какова их ценность и сколько ошибок было сделано? Сколько задач релизят старшие коллеги? Если будете честны с собой, получите адекватное сравнение своего уровня с другими разработчиками. Это поможет вам заполнить пробелы в знаниях и продолжить путь к повышению по карьерной лестнице.
Сколько времени потребуется? Четких временных рамок для перехода от мидла к сеньору нет – все зависит от таланта и усилий. Гений способен проскочить этот этап экспрессом за пару лет, а кто-то застревает в одной позиции на десятилетия. Обычно на переход требуется 4 – 5 лет трудового стажа.
Как мы уже писали, многие компании не любят платить сотруднику лишние деньги, если он и так работает. Значит потребуется инициатива с вашей стороны. Обозначьте свои намерения и присматривайтесь к знакам. Хорошо, если руководитель встречается с вами один на один, чтобы обсудить рабочие вопросы в непринужденной обстановке. Профессиональный расти в этом случае проще: при личной встрече можно узнать, чего вам не хватает до желаемой должности.
Что в итоге? Разве не очевидно? Высокооплачиваемая должность, возможности профессионального и карьерного роста + неплохие бонусы от компании.
Эволюция веб-разработчика уровня middle Что нужно знать? Достигнув верхнего (с точки зрения начинающего обучение с нуля джуниора) этажа пищевой цепочки, нельзя почивать на лаврах. Иначе вас быстро подвинут более молодые и голодные коллеги. Стратегия продвижения на уровне middle очень похожа на действия из предыдущего этапа квеста – качественно меняются только знания, которые вам которые предстоит освоить.
На этом этапе обучения потребуются следующие позиции:
Умение писать грамотный, расширяемый код: JavaScript + TypeScript/CoffeeScript/Babel + ES6/ES7CSS (Flexbox) + Less/Sass/Scss/Stylus/PostCSS + BEM/SMACSS/OOCSS/MCSSHTML (Canvas/SVG) + Jade/HAML/Handlebars/Slim/Mustache; Знание и умение использовать паттернов проектирования(MVC/MVVM), умение составлять грамотную архитектуру проекта; Понимание и применение принципов SOLID, DRY, DIE, KISS, YAGNI; Знание и понимание принципов работы Backend – RestAPI, GraphQL, серверных языков программирования и фреймворков; Понимание взаимодействия браузера с клиентом, отличные познания в HTTP, WS; Умение грамотно и быстро оценивать проект по времени и по сложности; Опыт работы с тест-фреймворками (Mocha, Should, Chai, Jest); Знание Docker, а также Kubernetes/Docker Swarm. Как нужно учиться? На позиции senior открывается несколько путей развития. Вы можете прокачивать технические навыки (hard skills), чтобы вырасти до уровня Technical Leader. Этот уровень предполагает больше общения с людьми, а также активное взаимодействие с подчиненными. Второй путь заключается в построении процессов и менеджменте. Так, например, крайне востребованы scrum-мастера и agile-коучи, которых довольно мало на рынке. Третье направление – Team Lead, Head of Development, технический директор. В этом деле нужны очень хорошие организаторские навыки, умение строить процессы и не бояться общения с деловыми партнерами.
Что в итоге? Все, как на предыдущем этапе, только заработки гораздо выше, а бонусы вкуснее (некоторые крупные компании могут даже выплачивать разработчикам верхнего уровня опционы). Плюс отличные карьерные перспективы в зависимости от выбранного направления развития, а также обеспеченная старость под шелест волн на Багамах.
Выводы Становление веб-разработчика высокого уровня – процесс постепенный. Начните с малого, и пусть каждый освоенный вами навык будет очередным шагом к конечной цели. Иногда возникающие на пути препятствия могут показаться непреодолимыми. Не бойтесь этого – дорогу осилит идущий. Нужно постоянно бросать вызов самому себе и каждый раз устанавливать планку немного выше.
***
Если вы только начинаете путь в ИТ, стоит обратить внимание на учебные курсы по веб-разработке онлайн-академии GeekBrains. Под руководством опытных преподавателей вы сможете получить необходимые для старта карьеры знания и существенно сократить путь от неофита до джуниора. Актуальная программа предполагает 2 – 3 вебинара в неделю и 2 месяца стажировки, а успешно окончившим курс студентам академия помогает с трудоустройством.
Интересно, хочу попробовать