Как набраться опыту frontend-разработчику?

Дата: 28.10.2018 в 13:19, Категория: Советы
  • 173
  • 6
Как набраться опыту frontend-разработчику?

Я часто замечаю, что начинающие фронтенд-разработчики по несколько раз то начинают, то забрасывают изучение технологий. И постепенно, уже на подсознательном уровне, появляется боязнь рисковать изучать что-то новое. Во многом, это связано как с ленью, так и с отсутствием должной практики.

К примеру, начинающий React-разработчик недавно узнал о том, что у компонента есть состояние и метод setState. Для него это что-то новое и крутое. Теперь его приложение может динамически обновлять данные.

Вроде бы ничего сложного. И даже потратив неделю, можно создать простой список задач (ToDo). Но этого становится недостаточно не потому, что разработчик хочет изучать ещё больше технологий, а потому, что костыли уже не спасают. И угадайте, кто приходит на подмогу?

Вот тут и начинается вся боль. Ты начинаешь понимать, что не зря тебе мама говорила стать медиком, а папа строителем. И девушка тебя бросила не потому, что ты скучный мудак, а потому, что ты Redux не учил. Ты начинаешь слышать голоса. Они тебе шепчут, что ещё есть шанс стать PHP-разработчиком и окунуться в мир бэкэнда.

Короч! Если ты понимаешь о чем я говорю и тебе знакомо это чувство, то эта статья для тебя. Я опишу несколько советов о том, как начать изучать «сложные» технологии и не забросить при первой же сложной ситуации.

# Терпение

Главное при изучении программирования и тем более фронтенда — быть терпеливым. То, что ты часто сталкиваешься с трудностями при изучении — это норм. Не надо винить себя в том, что ты «никчёмный оболтус», который не может изучить какую-то технологию или язык уже долгое время. Чтобы стать хорошим программистом, нужно терпение и годы обучений. Стать сеньор помидором за 1 год у тебя никогда не получится.

И скажу так: «Делать ошибки — не самое страшное. Самое страшное, не учиться на этих ошибках.»

(Интересно, мой мозг украл эту цитату или я действительно её только что придумал? Конфуций курит в сторонке).

# Уметь задавать вопросы

Да, это тоже немаловажно. Надо уметь правильно поставить вопрос, чтобы получить желаемое решение. Да, звучит банально, но это так.

Тебе никто не станет отвечать на вопрос типа: «а как на яваскрипте адронный коллайдер сделать?». Но если ты разделишь свой вопрос на несколько составляющих, шанс получить ответ хотя бы на один, значительно увеличивается.

Например, ты хочешь запилить интернет-магазин на ReactJS, но не знаешь как сделать пагинацию? Попробуй задать именно этот вопрос. Тебе никто не станет объяснять как сделать свою ракету. Сечёшь, да?

Также необязательно писать в поисковике «гугл как в реакт жс сделать пагинацию чтобы вот по кайфу было когда скроллишь подгружал информацию?», достаточно написать «react infinite scroll». А умение пользоваться гуглом набирается только с опытом. Странно, что в вакансиях не указывают этот пункт.

Ещё в Telegram есть специализированные чаты по языкам программирования и технологиям. В одной из своих статей, я составил список этих чатов. Ну а про Toster и Stackoverflow, думаю, писать не стоит.

# Практика

Самое важное при изучении какой-либо технологии — практика. От чтения книг, ты получишь намного меньше результата, чем от практики. Я только через год или даже полтора, стал понимать то, что написано в книгах по JS. Лишь только после практики, когда я сам столкнулся с тем, что было описано в этих книгах.

Главное, старайтесь следователь принципу «30% — теории и 70% — практики». Каждый раз, когда вы изучаете что-то, вспоминайте об этом.

И следовательно, тут у тебя возникает вопрос (читать писклявым голосом и с дефектом речи): «А аткюдя брять ету пректекю?».

# Откуда брать практику?

Можешь уже не читать таким голосом и кстати, вопрос хороший. Не за что.

Так как я увлекаюсь UI-дизайном, для всех своих проектов я разрабатываю дизайн самостоятельно. И приведу тебе пример из своей практики.

В начале обучения фронтэнду, я часто сталкивался с технологиями, которые я не знал, но очень хотел изучить. В итоге я поставил себе задачу создать тестовый проект и принципиально использовать только те технологии, которые я не знал, а именно:

  • Socket.IO — изучить работу с сокетами как на клиентской части, так и на серверной.
  • PugJS — часто встречал этот шаблонизатор, но никак не мог понять, зачем он нужен и как с ним работать.
  • Stylus — не знаю почему, но мне понравился этот препроцессор и я решил его включить в этот стек.
  • AngularJS — так как на тот момент я изучал данный фреймворк, было логично использовать его в этом проекте.
  • GulpJS — надо было понять, как работает сборщик проектов. Был горький опыт, а точней попытка изучить GruntJS, но в итоге остановился на GulpJS.
  • NodeJS — ну и не немного серверной разработки, чтобы работать с приемом и отправкой сообщений.

В итоге я сделал этот проект. Получил нужную практику и решил опубликовать его на GitHub, чтобы работодатели могли увидеть мою работу и другие люди могли воспользоваться тем, что я разработал.

Ссылка на Github: https://github.com/Archakov06/ad-socketio-chat
Ссылка на кейс Behance: https://www.behance.net/gallery/44557731/Socketio-Chat

Итак, надеюсь тебе ясно о чем я хотел сказать, и к завершению этой статьи дам несколько советов по самой практике.

# Repeat it!

Попробуй повторите то же самое. Посмотри какие технологии ты бы хотел изучить, собери необходимый стек и начни пилить проект. Например:

  • Список задач (ToDo).
  • Очень простой интернет-магазин. Можно и без серверной части (кстати, я пилил курс по этой теме)
  • Список учеников / пациентов / клиентов с возможностью удалять, добавлять, редактировать их.

# Тестовые задания

Еще самая лучшая практика — тестовые задания от работодателей. Во-первых, это для тебя испытание и возможность узнать, на что ты способен. Во-вторых, практика и следовательно двойной опыт от собеседования и выполнения задания.

Иногда я проходил собеседования только ради практики (хоть и не нуждался в работе). Конечно, чаще меня не принимали на работу, но я утешал себя тем, что я практиковался...

Постоянно пробуй. Экспериментируй с разным стеком технологий и ЯП. Это даёт очень хороший опыт. Как говорил Конфуций: «Всего по немногу и дальше попрёт».