Ты выбрал нелегкий путь программиста и решил окунуться в мир фронтенда. Начал проходить курсы, разбираться, как все устроено. Успешно выполняешь задания. А может, ты просто целеустремленный самоучка, который решил покорить IT индустрию?

Да, безусловно романтизма в этих словах много, а теперь предлагаю окунуться в суровую реальность и поговорить немного об обстановке дел в мире фронтенда. Речь пойдет о пути (или дорожной карте), который должен пройти начинающий специалист, чтоб «войти» в IT и стать хорошим разработчиком.

Нам многое рассказывают, многое обещают, но не говорят лишь одного, что никто за тебя не выучит новый фреймворк, никто за тебя не будет сидеть ночами напролет и разбираться с тоннами информации, которая свалилась на голову.


Рис.1 — Весь секрет успеха просто в трех мониторах.

С чего начать?


Наверное, уместно начать с самого начала. Ну нет, не с времен табличной верстки. Хотя, я думаю, многим может показаться, что тогда было проще найти работу, не так много знаний требовалось для того, чтобы начать, но нужно понимать, что и уровень возможностей и инструментов во фронтенде, который был тогда и сейчас — это как «небо и земля». Начинающий джун часто берётся за голову не зная, на что ему обратить внимание и с чего начать. А начать нужно всегда с самого главного. На мой взгляд, с азов программирования и алгоритмов.

Конечно многие могут поспорить с тем, а нужны ли алгоритмы или какие-то паттерны во фронтенде, но современные реалии диктуют свои жесткие условия. Многие пытаются сразу же приступать к изучению популярных javascript фреймворков, таких как angular или react не понимая того, что делают. Все это можно сравнить с человеком, который идет в темном туннеле на какой-то свет. Но не очень понятно, к чему этот свет приведет и что вообще там дальше. Гораздо лучше, когда ты знаешь какие подводные камни тебя ожидают в этом туннеле и что у тебя под ногами. И вообще, из чего состоит этот туннель и нужно ли по нему идти. О чем это я? А о том что зная основы программирования, алгоритмы, понимая паттерны проектирования , ты будешь понимать, что «под капотом» у того или иного фреймворка, какие у него есть подводные камни, стоит ли вообще обращать на него внимание. Вот с этого и нужно начать свой путь. На это и нужно обратить свое внимание в самом начале.

Где приткнуть голову?


Далее есть несколько вариантов развития событий. Какой из них лучше — решать вам.

  • Школа программирования. Отличное решение для старта вашего развития. И если в курс обучения будут входить вышеописанные вещи, это будет плюсом вам в карму. Но не ожидайте чуда. Потому что за вас никто не будет писать код и составлять алгоритмы. Все, что вам предоставят — это нужную подачу информации, которая будет уже отобрана специально для вас. Еще одни большим плюсом являются практические уроки с ментором. Когда на все твои вопросы ты моментально получаешь наглядный ответ. Всегда стоит задуматься над таким вариантом старта, но при этом держа в голове мысль о том, что нужно самому очень много работать. Все что вам предоставят — это материал и менторство. Минус является то что зачастую весь курс обучения очень растянут и то что можно выучить за месяц можно учить за четыре, а то и полгода, хотя может для Вас это будет наоборот плюс?
  • Онлайн курсы. Очень интересный выбор. Большинство таких онлайн курсов проходят в виде интенсивов. Здесь тоже есть личный ментор и даже домашнее задание, а по окончанию курса обязательно парочка выполненных проектов в портфолио. О том, сложно ли найти хорошие онлайн курсы, я умолчу. Есть из чего выбрать.
  • Самоучка. Наверное, это один из лучших вариантов развития событий, но не для каждого. Очень прекрасно, когда ты самостоятельно разобрался с материалом, усвоил его и закрепил на практике. От этого можно получить очень много профита и зачастую работодатели ценят такие кадры. Выбрать из мусора алмаз это еще нужно уметь, и если у вас есть в кармане такой навык, вам очень повезло и вы быстро будете расти как специалист. При таких раскладах курсы не нужны, разве что, для того чтоб стать совсем «скилловым». Не открою большой тайны если скажу что в большинстве курсов и видеоуроков малой и средней ценовой категории используют материалы из современных книг программирования. Советую обратить на это внимание и возможно вы не потратите деньги впустую. А знания при прочтении хотя б одной такой книги с пониманием — будет более чем глубокими.
  • Стажировка в компании. Здесь дают возможность окунуться в сферу IT с ног до головы. Но не каждому выпадает такая возможность, а только тем у кого уже есть какой-то багаж знаний за плечами. Будьте готовы выполнять тестовые задание, чтоб попасть на стажировку. Но оно того стоит, это прямой путь к приему на работу.

Итак, что выбрать решать вам. А что далее? А далее происходит самое интересное. Работа.

Ожидание. Реальность


Конечно каждый хочет хорошую зарплату интересные проекты, быстрое развитие, продвижения по карьерной лестнице, ведь я же молодой специалист, я же все смогу. Но на практике не все так романтично и гладко как хотелось бы. Проект, еще один проект, и еще один проект. Сроки, сдача, правки, заказчик. И еще один проект. Доработать этот, сделать этот, пришли правки по этому. И это все может вместиться только в один рабочий день. Такова реальность. Очень часто вы будете часами сидеть и разбираться в чужом коде, в котором порой можно не только ноги сломать, но и мозг. Иногда опускаются руки от наплыва задач, загруженности, но во всем этом можно найти огромный профит — это опыт. Работая с невероятно запутанными проектами, чужим кодом, ты можешь не развиваться очень быстро, но вы получаете много опыта. Со временем можно почувствовать, как он помогает и дает толчок развитии.

С чего начать поиск работы


Для frontend разработчика незаменимая вещь для трудоустройства являться его портфолио. Мало того что вы делаете свой реальный проект так вам еще и будет что показать работодателю. Это очень хорошая практика, и после изучения материала сразу же к ней нужно приступить. Здесь и можно «понюхать порох». Если вы добавите в свое портфолио несколько личных проектов, то считайте что вы обречены на успех. Но не нужно надеяться что все так легко, открыв некоторые вакансии понимаешь что еще учиться лет 10 для уровня «Джуна». Порой компании требуют знания языков С++, PHP и С# вместе на позицию верстальщик. Да, и такое бывает. Наверное они просто в поисках разносторонних личностей.

Вернемся во frontend


И вот вы junior frontend developer, сделав портфолио, впервые заполнив свое резюме вступаете в новый челлендж «выжить любой ценой». Angular, React, Redux, Vue.js, EcmaScript 6 и проч. С каждым годом требования к специалисту все больше и больше. И понять на что обращать внимание очень сложно. Для некоторых компаний будет достаточно знаний JavaScript, для иных нужен полный стэк технологий. На все это не нужно обращать внимание если у вас есть цель. Цель стать хорошим разработчиком. Крепко зная основу, вы сможете овладеть любым современным фреймворком и это главное. Не нужно привязываться к контексту. Каждый фреймворк имеет свой срок и нужно это понимать. Если вы бросите все силы на изучения React а через несколько лет процент его использования будет очень близко приближен к нулю то что тогда делать? Зная и понимая как все устроено «под капотом» вы будете всегда на высоте. Главное не сдаваться и терпеливо идти к своей цели..