Если вы откроете любой сайт с вакансиями, наверняка увидите множество объявлений о поиске неких full-stack разработчиков. При этом требования к соискателям будут сильно различаться, но суть всех таких вакансий одна: «за среднюю айтишную зарплату ищем человека, который умеет все или почти все».
Давайте попробуем понять, что это за всемогущие фулл-стек джедаи и существуют ли они на самом деле.
А именно:
- Сбор и анализ требований.
- Проектирование.
- Разработка дизайна интерфейсов.
- Программирование, которое часто разбивается на два больших куска работы — кодинг интерфейсов и программирование серверной части.
Фронт работ немаленький, а для качественной реализации проекта в одиночку с нуля инженер должен обладать уровнем навыков «выше среднего» по каждому из пунктов.
Получается, что фулл-стек разработчик должен быть экспертом одновременно в дизайне, архитектуре программного обеспечения, менеджменте и сразу нескольких языках программирования.
Искать такого крутого спеца с экспертизой в столь разных областях на среднюю зарплату — это как пытаться нанять за средние деньги эксперта, достигшего вершин одновременно в анестезиологии, ландшафтном дизайне и ремонте корабельных двигателей. Конечно, есть вундеркинды, которые теоретически могут все это уметь. Но реальные шансы встретить таких спецов на рынке (да еще и за среднюю зарплату) стремятся к нулю.
С другой стороны, желания кадровиков тоже понятны. Им хочется нанять человека, который сможет переключаться между всеми типами задач, связанных с разработкой, и вносить вклад во все этапы работы. Такой спец никогда не будет сидеть без дела, все сделает сам и выдаст готовый продукт — круто, дешево и в срок. Единственная проблема — это едва ли возможно в реальности.
Джедаи — странный предмет: они вроде есть, но вроде их нет
Но если полных фулл-стеков не бывает, кого же могут нанять кадровики на позицию человека-оркестра? На этот случай есть программисты, которые развиваются в профессиональном плане, накопили опыт в разработке и интересуются смежными сферами в айти:
- дизайнеры, которые научились не только рисовать интерфейсы, но и качественно их верстать;
- фронтенд-разработчики, которые сверстали и анимировали столько интерфейсов, что научились их рисовать;
- бэкенд-разработчики, написавшие столько серверных приложений для смартфонов, что от скуки научились писать и сами мобильные приложения.
Такие спецы существуют, этих IT-джедаев реально встретить. Правда, они не столь могучи, как узкие специалисты, и не так уж дешевы. Но это реальный шанс для кадровика нанять кого-то, кто подходит под описание фулл-стек программиста.
Да, джедаи существуют. И они готовы спасать нашу вселенную от IT-хаоса!
Node.JS — академия джедаев
Ситуация с количеством и качеством фулл-стек инженеров улучшилась с появлением платформы Node.JS. Сперва «Нода» позволила писать на одном языке различные браузерные интерфейсы. А с появлением React Native, развитием дизайн-систем, material-дизайна и библиотек готовых визуальных компонентов разработчики смогли не только вести полноценную мобильную разработку, но и собирать неплохие интерфейсы на коленке.
Когда стало понятно, что Node.JS позволяет сносно закрывать несколько этапов разработки, количество спецов, пишущих клиентские и серверные приложения на этом языке, увеличилось. Конечно, качественная работа на два фронта требует от инженеров больше опыта и знаний, но удержать в голове один язык программирования и несколько сфер его применения проще, чем учить разные языки под разные задачи.
В итоге шансы найти настоящего крутого фулл-стек джедая, пишущего на Node.JS, выше, чем найти инженера такого же уровня с другим набором языков.
Как самому стать фулл-стек джедаем
Работать сразу на несколько фронтов — весело, интересно и может быть выгодно в финансовом плане. А еще такой навык позволяет почувствовать себя супергероем, который может самостоятельно разрулить любую проблему.
Как же стать таким джедаем?
- Выберите Node.JS в качестве основного языка. Одно это сильно приближает вас к цели.
- Освойте разработку серверных приложений на «Ноде». Серверные приложения фокусируются на работе над данными и передаче информации по сети — это намного проще, чем клиентская разработка, где программистам нужно уделять время анимации интерфейсов, верстке и проработке приложения под разные устройства: компьютеры, смартфоны, планшеты.
- После того, как вы овладеете тонкостями Node.JS, переходите к разработке браузерных приложений. К этому моменту вы должны быть хорошо знакомы с языком, чтобы уделить больше времени визуальным эффектам и тонкостям работы разных браузеров. Это огромный пласт знаний, который придется засунуть в голову.
- Если не захотите оставаться в браузерной разработке, вы можете двинуться дальше и попробовать мобильные приложения на Node.JS. Порог вхождения в эту область выше: тонкости мобильной анимации, обработка свайпов на экране, оптимизация под мобильные платформы — это интересно, но сложно.
Если вы добрались до конца списка — profit! Вы уже настоящий фулл-стек джедай.
IT-джедаи следят за новостями отрасли
Упомянутые области разработки меняются быстро, поэтому удержать их все в голове, скорее всего, не получится. Однако можно параллельно работать в двух областях сразу. Например, бэкенд и браузерные приложения или бэкенд и мобильные приложения.
И, конечно, приготовьтесь к тому, что придется следить за новостями Node.JS и разработки в целом — что-то новое происходит ежедневно, чтобы оставаться на плаву в качестве крутого фулл-стека, нужно узнавать свежие апдейты буквально каждый день.
Пишите, читайте, не останавливайтесь на достигнутом и учитесь управлять великой силой Node.JS— таков путь настоящего фулл-стек джедая.
Оригинал статьи: https://mcs.mail.ru/blog/full-stack-razrabotchiki-te-s-kem-prebudet-sila/