Привет! Меня зовут Сергей. Мне 30 лет, из них почти десять я интересуюсь веб-технологиями, но зарабатывать этим начал только два года назад. Расскажу, почему путь в профессию получился долгим, как его можно ускорить и что нужно знать, чтобы пройти собеседование на джуниор-фронтенд-разработчика. А ещё — что самое захватывающее в работе фронтендера.
До учёбы в вузе я был слесарем на заводе по изготовлению проволоки. Маленькая зарплата, старое оборудование — мне не нравилось. Тогда я устроился техником-звукооператором рядом с домом. Работа нескучная, иногда я даже участвовал в спектаклях в качестве актёра. Но платили тоже скромно, поэтому приходилось всё время искать подработки.
В образе чёрта участвую в постановке «Ведение козы». У нас есть традиция щедрования на Рождество, и вслед за щедровальниками водят козу...
Веб-технологиями я увлёкся стихийно — решил взломать браузерную игру и узнать, как она устроена. Дальше начал писать скрипты для игрового бота AutoClicker, попробовал сделать сайт для игрового клана, по справочникам изучил HTML и CSS.
Когда окончил вуз с дипломом специалиста по метрологии, решил получить второе высшее и освоить информационные технологии в Политехе. Увы, в тот раз не получилось: на выбранной специальности я оказался единственным заочником, лекций для меня не вели, а устаревшая учебная программа и лишние предметы не вдохновляли. Плюс мне поручили курсовую по ещё незнакомым мне тогда PHP и MySQL. Я забрал документы и пошёл работать инженером по качеству на завод. А сам потихоньку осваивал JavaScript и PHP ради интереса. Но дело шло медленно, ведь мне не с кем было посоветоваться, что и как учить дальше, некому показать свой код.
Почему я бросил ОТК
Инженер по качеству — специалист, который должен проверять каждого рабочего и находить, где тот накосячил. Пропустишь брак — штраф и пиши объяснительную. Видишь, что недоукомплектовка, нет запчастей — а вышестоящие договорились между собой, что и так сойдёт. Приносят бумажку «Всё хорошо» — принимай. К простым рабочим отношение лучше, чем к ОТК, потому что они делают продукт, а «контролёры просто ходят туда-сюда».
Инженером по качеству я работал на трёх заводах. Первый изготавливал сельхозтехнику. Час рабочего времени в день не оплачивали, плюс через раз приходилось бесплатно выходить по субботам, а кому не нравится — до свидания.
Второй завод производил конвекторы и водонагреватели. Целый день я стоял у конвейера. Нам давали полчаса на обед и перерывы: 10 минут в первой половине дня и 5 минут — во второй. Две недели нужно было работать в дневную смену и две — в ночную. График для тех, кто хочет убить здоровье.
На третьем заводе — по изготовлению элеваторов — я подготовил для руководства и технических отделов доклад и презентацию «Как повысить качество на производстве». Мне предложили пару сотен надбавки (не долларов и не евро). Чтобы получать больше, нужно стать начальником, а для этого обязательно иметь стаж 10–15 лет или связи.
Начало перемен
Этот непростой опыт побудил меня сменить сферу деятельности. Тем более у меня уже шесть лет как была на примете веб-разработка. Я попробовал пройти собеседование на позицию джуна, но понял, что знаний и опыта самоучки для трудоустройства недостаточно.
Продолжил осваивать профессию сам — искал разные материалы, читал статьи и справочники. На тот момент в YouTube ещё не было такого изобилия уроков, да я их и не особо искал. Больше ориентировался на сайты о программировании, где можно было найти годные статьи и справочники. В итоге выбрал пару книг Николаса Закаса с понятными объяснениями и примерами кода: «JavaScript для профессиональных веб-разработчиков» и «ECMAScript 6 для разработчиков».
Позже я увидел в VK рекламу курсов GeekBrains и по описанию понял: вот этого мне и не хватало. Живой преподаватель, стажировка для опыта и студенты, с которыми можно обсудить учёбу. К моменту записи на курсы я уже знал, что мне нужно изучить. В программе были темы, из-за которых я до этого завалил первое собеседование на frontend-джуниора.
Раньше онлайн-курсы я всерьёз не воспринимал — считал, что полноценной может быть только очная учёба, когда приходишь в аудиторию и слушаешь. Кроме того, частные курсы не внушали мне доверия. Как-то раз я обратился в «подвальную» веб-студию, которая предлагала бесплатное обучение с дальнейшим трудоустройством к ним. Мне выдали два архива с видеоуроками по Bootstrap и всё. Больше я туда не пошёл — понял, что с таким же успехом сам могу учиться.
Благодаря обучению в GeekBrains я расту уже третий год. Позади курсы веб-разработки и программа Free Frontend, а главное — два года опыта на фрилансе и довольно большое портфолио. Чаще всего за это время мне приходилось решать такие задачи, как вёрстка лендингов и многостраничных сайтов с блочной посадкой на CMS, удаление вредоносного кода из баз данных, настройка рекламы, запуск интернет-магазина под ключ, анализ и разносторонняя оптимизация сайтов.
Сейчас продолжаю расширять свою область знаний — прохожу курсы GeekBrains по веб-безопасности. Хочу знать, как делать более качественный и надёжный веб-продукт. Или, точнее, как избегать неудачных уязвимых решений.
Как я выиграл курс Free Frontend
На бесплатный курс фронтенда я попал по итогам конкурса, который проходил в мае 2018 года. Претендентов было около шести тысяч. На первом этапе мы проходили тест по основам дискретной математики и логики. Тут были задачи типа «перевести число 98723948723 из 35-й степени в 13-ю». Были и сбивающие с толку вопросы на логику, например «Мышки живут в дереве, у дерева есть тапочки. Если мышки пойдут гулять в тапочках, будет ли верным утверждение, что дерево пошло гулять?». Тест я с трудом сдал с третьей попытки, набрав 10 из 15 баллов.
На втором этапе мы писали функции для решения задач в духе «вывести все простые числа». Решения нужно было загружать в Git-репозиторий.
На третьем этапе нужно было писать функции уже на портале GB. И ещё обязательно снять видео о себе.
Короче говоря, в процессе подготовки и в ходе конкурса мне пришлось освежить в памяти дискретную математику, найти онлайн-калькулятор логических операций с таблицей истинности и даже записаться на сторонние математические курсы. Но это того стоило — я выиграл.
Как изучить Frontend-разработку с нуля
Во-первых, на полном серьёзе поставьте перед собой цель. Например, вы хотите научиться делать крутые проекты. Звучит очень просто, но такая цель сразу заставит вас задуматься и над критериями качества в вашем деле, и над тем, какие навыки вам потребуются.
Кроме того, стабильно выделяйте на обучение минимум два часа в день. Выключайте соцсети, игры и развлекательные каналы, закрывайтесь в тихой комнате и беритесь за дело. Установите бесплатный редактор кода, откройте справочник или книгу «для чайников» и играйте с примерами кода из каждого урока. Запускайте их с разными входными данными, переделывайте. Чем больше практики, тем быстрее движется учёба. Главное — не бояться и не бросать.
Слишком усердствовать тоже не стоит. Мой знакомый учился разработке по семь часов в день и через три месяца пошёл работать. Просто киборг. Но это огромное психическое и физическое напряжение, которое может негативно сказаться в дальнейшем. Обязательно делайте перерывы, чтобы не выгореть и не съехать.
Барьеры в обучении
Поначалу я с трудом понимал ООП в JavaScript (старый синтаксис). По-настоящему я научился его использовать, когда стал наставником и начал по несколько раз пересматривать лекции, чтобы пересказывать их студентам!
На курсе React мне пришлось пять раз посмотреть урок по Redux и законспектировать его, прежде чем в моей голове выстроилось нужное решение. Почти всё новое воспринимается с трудом и только потом становится понятным.
Когда я делал тестовое задание для собеседования, то одну неделю изучал новую библиотеку, а следующую — практиковался и находил подводные камни в работе с ней. Сложно было понять примеры в документации, написанные «на коленке».
Стажировки в GeekBrains
Я прошёл две стажировки: на курсах веб-разработки и Free Frontend. На первой мы делали приложение для велопутешественников: разрабатывали идеи для проекта, изучали API карт, реализовывали функцию построения маршрутов. На выходе получили рабочий прототип, разве что не оформленный, потому что дизайнеров среди нас не было.
На стажировке в рамках курса Free Frontend мы разбились на команды по шесть человек — каждая делала свой проект. Наша команда писала приложение учёта финансов на базе React и Ruby. Я взял на себя роль тимлида, изучил конкурентов и отзывы пользователей, составил список необходимых продукту функций и наиболее интересных фишек.
По сравнению с другими командами мы успели не так много, зато приобрели очень востребованный — как я потом убедился — опыт работы с React. После того как я включил этот проект в портфолио, меня о нём обязательно спрашивал каждый HR, с которым я общался. Кроме того, на стажировке я разобрался с настройкой Webpack-сборщика, освоил новую библиотеку Material-UI с готовыми компонентами для React, потренировался в решении проблем, поиске информации, организации работы команды.
Тестовые задания, которые мне позже давали на собеседованиях, были проще, чем проект на стажировке! Но были и сложные — например, сверстать целую адаптивную страницу с использованием React. Мой совет: не ведитесь на такие объёмные задания и не позволяйте использовать свой кропотливый труд даром. Это может войти в привычку.
Вот, кстати, моё выполненное тестовое задание на React
Проекты: самое трудное и интересное
Главное, чему я научился в GeekBrains при попутной работе на фрилансе, — качественно делать свою работу. Например, меня спрашивали, как увеличить скорость загрузки страницы, и я делал оптимизацию.
Меня поглотило желание делать всё красиво и качественно. Я рыдал над проектами, которые мне давали переверстать. Я заставил дизайнеров, с которыми сотрудничал, идти учиться в GB, чтобы их работы стали лучше.
Мне давали ужасные макеты без адаптива, и я делал из них красоту, как учили на курсах. Для меня бессонные ночи в погоне за дедлайном не сравнятся с офисной работой! Я посвятил много лет тому, чтобы стать фронтенд-разработчиком, а сейчас стремлюсь расти как специалист — изучить Node JS, работу с сервером (Linux) и веб-безопасность.
Для наглядности покажу несколько своих проектов, по которым не подписывал договор о неразглашении. Другие проекты вы можете найти в моём профиле GeekBrains.
Выводы из собеседований
Я научился выявлять нанимателей, которые ищут лопухов на бесплатную работёнку или хотят взвалить задачи трёх отделов на одного человека. Я понял, чего ждёт директор организации, когда собеседует фронтендера.
Тестовое задание должно занимать не больше одного рабочего дня. В идеале — пару часов. Но браться лучше после того, как вы узнаете базовые вещи о компании: сколько человек в команде, сколько отделов, есть ли тимлид или наставник, что с рабочим местом, графиком, страховкой и оплатой. Узнайте всё, что вам важно, — вплоть до того, какой у них чай на кухне.
HR обращает внимание на ваш стиль общения, на красоту работ, а при встрече — на внешний вид. Важно и самому внимательно присмотреться к тем, кто предлагает работу. Если на техническом собеседовании безбожно валят сложными вопросами, я вижу два варианта действий:
- увлечь интервьюера дискуссией, в которой вы раскроете свои знания (если получится),
- спросить, как вопрос связан с будущей работой.
Считаю, ответ на второй вопрос не должен быть расплывчатым, в духе «Вам могут поставить такую задачу, а вы не справитесь». Если задача выходит за рамки ваших обязанностей, работодатель должен быть готов оплатить время на её изучение. А дальше — «Привет, братишка-гуглишка»!
Как я сам проводил собеседование
Однажды, когда мне нужно было провести техническое собеседование, я так увлёкся подготовкой вопросов, что забыл о разнице во времени и даже опоздал на 15 минут. Я спрашивал кандидата о конкретных навыках и базовом стеке верстальщика — посторонних вопросов сам не люблю и другим не задаю. Поинтересовался, как долго кандидат занимается вёрсткой, что делал раньше. Посмотрел работы: их валидность, сложность, наличие багов.
Я считаю, если вы хотите заниматься веб-вёрсткой, важно:
- уметь работать в Figma и Photoshop — хотя бы на базовом уровне, чтобы сохранять картинки из макета;
- знать чистый JavaScript;
- знать CSS flex, сетки, препроцессоры, сборщики, БЭМ.
На первом этапе — всё! Этого достаточно, чтобы верстать проекты и зарабатывать деньги. Всему этому учат на курсах GeekBrains, плюс по данным темам полно бесплатных вебинаров.
Когда вы получите больше опыта, то сможете расширять свои навыки — освоить React и разобраться, как посадить вёрстку на CMS (систему управления контентом сайта).
Впечатления от учёбы и наставничества
В учёбе каждый блок полезен, преподавателей много, и они классные! Отдельно отмечу Владимира Языкова (хоть он сейчас и не преподаёт): именно под его руководством я сделал первую вёрстку с оптимизацией под Google PageSpeed.
Спасибо преподавателям, на чьих курсах я был и остаюсь наставником — я очень доволен этим опытом! Вообще, «послы доброй воли» в GB — наставники — заслуживают отдельного рассказа. Студенты ждут от нас магии с перемещением википедии в личные сообщения или иногда даже работы преподавателя. Но мы обычные студенты, которые по личной инициативе и на безвозмездной основе стараются отвечать на вопросы других учащихся.
Я уже три года наставничаю на курсах фронтенда. Занимаюсь этим, потому что в начале пути сам прочувствовал, как важно вовремя получать ответы на вопросы. Заодно повторяю пройденный материал и упражняюсь в чтении чужого кода. Присоединяйтесь! :) Мы все общаемся в чате для наставников и любим читать отзывы своих студентов. У меня сейчас, например, есть ученица, которой я постоянно помогаю и стараюсь передать всё, что знаю.
Планы и перспективы
Сейчас я тружусь как фрилансер — это позволяет распоряжаться своим временем. Но при этом я завишу от объёма заказов. Подходящего штатного места в Одессе я пока не нашёл. На трёх сайтах поиска работы я получил много просмотров и несколько приглашений на интервью, но ни на чём не остановился. Планирую переезжать в Москву. Правда, не все работодатели в России готовы брать на работу иностранца, ведь это волокита с документами и особый порядок налогообложения. Параллельно с мыслями о постоянной работе продолжаю развиваться — прохожу курсы GeekBrains по веб-безопасности.
Зачем фронтенд-разработчику веб-безопасность
Перед пандемией в GeekBrains раздавали три бесплатных курса на выбор, и я был очень рад, когда увидел среди них один по веб-безопасности! Ещё два курса, которые я взял, — «Управление проектом» (пригодится для будущего роста в тимлида) и «Алгоритмы и структуры данных» (полезны для сложного кодинга). Первый курс уже прошёл, смотрю уроки по Linux, дальше планирую изучать серверную безопасность. Даже если не придётся плотно заниматься этим направлением, хочу хотя бы в общих чертах понимать эту сторону проекта.
Считаю, специалист должен хотя бы поверхностно знать соседние направления разработки, чтобы, когда нужно будет разобраться в задаче или найти причину проблемы, было ясно, как действовать и к кому обращаться.
Хотите узнать истории других фронтенд-разработчиков, которые освоили профессию в GeekBrains?
- Как я стал frontend-разработчиком в Mail.ru Group. Вениамин Шитиков был начальником склада, затем изучил Frontend в GeekBrains, прошёл стажировку и трудоустроился.
- Код пульсирует в мозгу и течет по венам. История Артема Шашкова.
- Как я стал Front-end разработчиком в Mail.Ru. История Анатолия Курочкина.
Комментарии