Главная | Все статьи | Истории успеха

История успеха, или как отчислиться из университета, но всё равно стать фронтенд-разработчиком

Время чтения статьи ~16 минут 38
История успеха, или как отчислиться из университета, но всё равно стать фронт... главное изображение

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

Жизнь «до» и учеба в университете

Кем я только не работал в жизни: разнорабочим на заводе, инженером по ремонту компьютеров и ноутбуков (рассказывал об этом у себя в твиттере), инструктором и помощником администратора в боулинг-клубе, аниматором на точке с шлемом виртуальной реальности Oculus Rift, рабочим у ландшафтного дизайнера, рабочим на стройке.

Вообще, куда я только не хотел поступать после школы. Сначала — в академию МЧС, начал заниматься своей физической подготовкой, и даже нашел знакомого, который эту академию уже заканчивал, он давал советы о том, как проще поступить. Потом эту идею я отбросил и захотел стать врачом — ходил на подготовительные курсы в медицинскую академию, но с химией у меня сложились тяжелые отношения, поэтому от идеи стать врачом тоже пришлось отказаться. Хотел стать и журналистом — благо вовремя понял, что журналистики в России нет и жизнь журналиста тяжела и неказиста (почти как программиста, но платят намного меньше).

Когда пришла пора принимать окончательное решение, остановился на направлении «Информатика и вычислительная техника» в Вятском Государственном Университете. Там же учился мой отец, и вообще — компьютер был у меня с самого детства, даже тогда, когда ни у кого еще не было. Отец работал на заводе в отделе автоматизации систем управления, поэтому мог позволить себе собрать домашний компьютер по запчастям. Другой вопрос, что я не был из числа тех вундеркиндов, которые программируют с пеленок. Я играл в игры (а делать их — не хотел), смотрел фильмы и сериалы, развлекался, но не писал код до учебы в ВУЗе, не считая информатики в школе. А еще был долгий период, когда я ходил помогать отцу обслуживать компьютеры в техникум около дома: мы чинили компьютеры, настраивали сеть, устанавливали нужные программы, и вообще — старались сделать жизнь студентов и преподавателей проще.

Я буквально кое-как поступил на это направление, потому что туда поступали самые умные ребята из области, и конкуренция была приличная: я был в самом низу списка по баллам ЕГЭ, при том, что баллы были хорошие, ведь я даже закончил школу на серебряную медальку. Это очень тяжелое и сложное направление, с большим количеством основ и низкоуровневых знаний — от ассемблера, до того, как сделать свой процессор в гараже: теория автоматов, архитектура ЭВМ, вычислительная и дискретная математика, мат анализ, теорвер, математическая логика, компьютерная графика, электротехника, схемотехника ЭВМ, — вот лишь неполный список того, что нам преподавали.

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

После лабораторных в университете на Pascal, С++ и Java — Javascript был мне совсем не страшен. По-прежнему сложен, но совсем не страшен. Но лабораторные в университете и реальная разработка — совершенно разные вещи. Оглядываясь назад — радуюсь, что такая хардкорная учеба не убила во мне любовь к программированию, и это не сказки, такое действительно происходило с многими ребятами. Из тех 65 человек, с кем я поступил — диплом получило 7. Ну и софт-скиллы, конечно. Университет мощно прокачал мои навыки коммуникации, организации людей и мероприятий, публичных выступлений, поиска и анализа даже самой тяжелой для понимания информации.

После были попытки вкатиться в iOS-разработку (недавно писал об этом в твиттере), а потом — армия, по возвращению из которой возник вопрос — чем же мне заниматься. Понятно, что писать код, но в какой области? К тому момент хайп вокруг фронтенда достиг своего пика, и я решил — стоит попробовать, несмотря на то, что многие друзья всё-таки ушли в мобильную разработку. В моем небольшом городе даже проводили митапы для iOS-разработчиков (Peer Lab) — это были единственные встречи айтишников в городе. А до этого я уже проходил пару уроков на HTML Academy, поэтому туда и направился.

Первая ступень обучения и первая работа

Я не покупал никакие курсы у HTML Academy, а проходил только их тренажеры. В целом было несложно, но очень интересно. Параллельно заглядывал в раздел верстки на Free Code Camp, там бесплатно, качественно, но на английском. На тот момент я еще довольно плохо читал по-английски, и из-за этого FCC шел тяжело. Были и некоторые откровенно спираченные курсы — «Профессия веб-разработчик" от Ивана Петриченко на Udemy, и два курса «Типичный верстальщик" от Анны Блок. Можно меня за это критиковать, но тогда в кармане было шаром покати — и покупать их варианта не было, ничего не подпишешь, все мы не без греха.

Так прошло примерно 3-4 месяца учебы. В один прекрасный день с деньгами стало совсем плохо, и откладывать поиск работы больше было нельзя. Меня пугала идея удаленки, это было до пандемии, и идея о том, что джуну лучше работать в офисе — крепко сидела в моей голове. Отправился на HH, сделал резюме как смог и как умел, и стал ждать откликов. Конечно, их не было, ровным счетом ни одного, если не считать всякие бредовые звонки с вакансиями на специалиста техподдержки. Также самостоятельно мониторил вакансии на IT-портале своего города, но там почти в 100% случаев требовались люди с опытом. А еще было очень много вакансий на 1С. После более глубокого изучения вопроса поиска работы, прочтения статей и просмотра видео на ютубе — начал откликаться сам, писать сопроводительные письма, и, в целом, стал искать активно, откликаясь на большое количество вакансий.

Через неделю мне дали мое первое тестовое задание — надо было по одной переворачивать карточки c картинками на экране с определенным интервалом, да так, чтобы одна начинала переворачиваться в тот момент, когда еще не закончила предыдущая, т.е «внахлест». Конечно, надо было применить JS, который я знал очень посредственно, даже несмотря на то, что уроки по JS в тренажерах HTML Academy были. Но этого было мало — на тот момент там не давали основ, и предлагали сразу работу с DOM. Я легко и быстро сделал симпатичную верстку, но со скриптом были проблемы. Вторая противоречивая вещь в моей истории — я попросил друга помочь мне с этим тестовым заданием, а на тот момент он уже год как работал веб-разработчиком. Сразу скажу: сейчас меня не мучает совесть за тот случай, и я отношусь к такой помощи нормально. Если это поможет вам найти работу — то ничего плохого в этом нет. Собеседование всё равно проходить вам, и работать тоже, и если вы понимаете код, который вам помогли написать, если вы сможете воспроизвести его самостоятельно, сможете его отредактировать и внести правки, ответить на вопросы по этому коду — всё в порядке.

Сидя за столиком в McDonald и попивая колу со льдом, друг помог мне закончить начатое. В итоге тестовое задание приняли, выдав скромный фидбек с недочетами, что уже неплохо — ведь фидбека зачастую можно и вовсе не дождаться. Позвали на собеседование, моему волнению не было предела, и я выдохнул, только когда мне сказали выходить на работу с понедельника. Само собеседование было очень простым: обсудили то, что мои проекты по верстке на GitHub никуда не годятся, поговорили про учебу в университете и жизнь в целом, немного поговорили на английском с одним из разработчиков. Я был приятно удивлен, поняв, что мой английский — гораздо лучше, чем я о нем думаю.

Читайте и другие истории успеха: Решить первый проект во сне и стать программистом, или Как Хекслет подарил мне состояние потока

Так началась моя первая работа верстальщиком. Компания занималась разработкой своего конструктора сайтов, а я делал шаблоны-блоки — затем они выливались в темы для этого конструктора, подобные тем, что лежат на Themeforest. Блоки были кастомизируемыми, в них можно было много чего менять. То есть, захотели вы сделать сайт для своей медицинской клиники — скачали конструктор, выбрали тему Medicine, накидали блоков, сделали текст и картинки под себя, подогнали всё как вам надо, и ваш сайт готов.

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

Мою первую тему просто уничтожили — в ней всё было плохо. К счастью, я узнал, что абсолютно все новички в компании через это проходят, и первую тему уничтожают в пух и прах. Но закончилось всё хорошо: я всё поправил, и после этого дело пошло — одна тема за другой, и так без конца на протяжении года. Примерно через год, когда рутина и этот конвейер встали в горле комом, я попросил задачу посложнее. Я сделал плагин для feedback-чата на сайте, тестировал новый продукт компании — и это было довольно интересно. Я благодарен этой компании за опыт: может я и не стал магистром верстки, но уж точно стал верстать гораздо увереннее.

Учеба на Хекслете

Неизвестно, что бы было дальше, если бы в один прекрасный день я не наткнулся на Вику в твиттере, где она писала про учебу на Хекслете. Мне стало интересно — я ей написал с вопросом, что это за Хекслет вообще такой, и она мне продала идею учиться на этой площадке буквально за 5-6 сообщений. Это было почти сразу, после того, как я устроился на первую работу, поэтому началось самое тяжелое время: работа в офисе, а затем учеба на Хеслете после работы до ночи. Но вводный курс так зацепил качеством материала, что сомнений не было — надо продолжать. Хекслет — первая площадка, где я встретил глубину, подробные основы, последовательность и надежду на светлое будущее (не ирония). И комьюнити, конечно, чаты в слаке, обсуждения в каждом уроке, возможность всегда задать вопрос — это бесценно.

Учеба шла очень медленно и тяжело, потому что после работы времени не очень много, сил очень мало, и поначалу такой низкий темп напрягал и деморализовывал. Со временем я смирился и отпустил свое желание как можно быстрее выучить всё и сразу. Решал все задачки сам, не подглядывал в решение учителя, проходил испытания, даже те, которые были направлены скорее на алгоритмическое мышление, чем непосредственно на фронтенд. Некоторые задачи и испытания не мог решить 2 дня, 3 дня, неделю и больше — бывало всякое, даже руки опускались, но неизбежно накатывающее чувство эйфории от в конце концов решенной задачи, стремление развиваться и получать заветную Козулю помогало не опускать руки. В течение года, я практически полностью прошел профессию «Фронтенд-разработчик» и даже осилил 2 проекта.

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

Вторая работа

Со всеми этими новыми знаниями пришло понимание, что пора двигаться дальше и искать новую работу. Я написал заявление об увольнении, отработал положенные две недели, начал искать и готовиться. Было несколько неудачных собеседований — то не мог нормально рассказать про Event Loop, то не мог нормально объяснить, как работает под капотом та или иная асинхронная функция, то не хватало каких-то знаний — про базы данных, например.

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

После нескольких неудачных попыток я случайно наткнулся на несколько лонгридов про Anki и long-term memory. В целом, мне всегда была интересна тема запоминания информации, различные техники, которые позволяют делать это быстро и эффективно, как запоминать большие объемы информации надолго, а не выбрасывать из головы сразу же после применения (экзамена, например). На эту тему рекомендую книгу Джошуа Фоера «Эйнштейн гуляет по Луне: Наука и искусство запоминания». В целом, это тоже отдельная огромная тема, и я не буду подробно на этом останавливаться. Оставлю лишь две ссылки на интересные статьи на эту тему.

Опишу процесс коротко: открывал материал на Хекслете или из какого-нибудь сборника вопросов и ответов для подготовки к собеседованию на позицию фронтенд-разработчика, читал материал, самостоятельно составлял на его основе много кратких(!) вопросов и ответов — и заносил в Anki, а затем учил. Что мне это дало? После того, как я начал этим заниматься — я тут же прошел следующее собеседование, где меня гоняли по основам JS довольно сильно. Конечно, я ответил не на все вопросы: например, я не знал, как убить сетевой процесс из терминала, так и не выучил ничего про базы данных. Но тем не менее — это был совершенно иной уровень, и его оказалось достаточно. А уж live Coding был вовсе простой, тем более после задач и испытаний на Хекслете — банальный FizzBuzz. Правда, когда меня попросили переписать его рекурсивно — я слегка струхнул, но в итоге справился.

Теперь у меня совершенно другая работа, интересные и сложные задачи, удаленка, зарплата, выросшая в 3 раза. Сейчас пишу на Vue, при том что Vue я и вовсе не учил никогда, и на собеседовании о нем не было ни слова — я смог довольно быстро разобраться, что к чему, и учил «по дороге». Вся подготовка по Vue, что у меня была — пара просмотренных уроков в бесплатном курсе Ильи Климова, на тот момент их вышло совсем немного. Кто бы что ни говорил, а Vue — самый дружелюбный фреймворк для старта.

В планах — выучить Nuxt, TypeScript, а также вернуться к экосистеме React и подтянуть основы (привет, СИКП!), потому что я совсем не хочу быть разработчиком одного фреймворка — я хочу быть инженером по разработке программного обеспечения (aka Software engineer), а не просто Vue-developer'ом.

Составьте свое первое резюме: Вы можете бесплатно опубликовать свое резюме в нашем сервисе «Хекслет-CV» и получить советы по его улучшению от разработчиков и HR-менеджеров

Послесловие и советы

В конце попробую дать несколько советов новичкам. Начну с самого противоречивого и неоднозначного, но это — мой опыт.

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

  2. Учите материал, когда готовитесь к собеседованиям, особенно если вы не понимаете его глубоко. Вы и не подозреваете, насколько сильно могут повлиять запомненные кусочки информации на понимание общей картины. Конечно, вы не раз слышали о том, что собеседование — не экзамен, и это действительно так. Но также верно и то, что надо держать в голове большие объемы информации и уметь качественно её преподнести. В целом, уделяйте внимание не только тому, где вы учитесь, и что вы сейчас изучаете, но и тому, как именно вы это делаете — это может сыграть решающую роль. Здесь же посоветую курс Learning how to learn на Coursera, где об этом рассказано подробно.

  3. Возьмите ответственность за свое образование на себя. Только вы выбираете площадку, на которой будете учиться, только вы выбираете наставника. Только ваша задача — запомнить то, что нужно запомнить. Научиться писать код — тоже ваша задача, вся ваша карьера — это ваш личный большой проект, над которым работать только вам, и в конце концов спросить будет не с кого, кроме как с самого себя.

  4. Ходите на собеседования — и как можно раньше. Это сложно, это волнительно, это выматывает физически и эмоционально, но это — необходимо, это тоже опыт и важный скилл, не говоря о том, что это отличный способ выявить свои слабые места и пробелы в знаниях.

  5. Будьте в сообществе, будьте «на волне». Заведите твиттер, и пишите туда всё что вам захочется, не боясь осуждения со стороны бородатых дядек-сеньоров, заведите LinkedIn и приведите его в порядок, сделайте красивую страницу на GitHub, вступите в профильные чаты в телеграме и залетайте туда время от времени поболтать, ходите на митапы и конференции, на сходки, везде — если есть такая возможность. Я нашел свою текущую работу, потому что мне написала HR из твиттера на почту. Коммуникация и нетворкинг — наше всё. Не умеете общаться — учитесь сейчас, без этого будет тяжело. Однажды я попал на собеседование в одну очень привлекательную компанию, в которой действительно хотел работать, только потому что не постеснялся и сам написал на почту HR, и даже прошел первый этап, но у меня на руках уже был другой привлекательный оффер, и я его принял.

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

На этом всё! Спасибо всем, кто сумел дочитать до этого момента.

Подписывайтесь на меня:

  • в Twitter
  • в Instagram
  • добавляйтесь в Linkedin
  • также вы можете написать мне в Telegram

Давайте дружить =)

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

Аватар пользователя Alexey Pavlov
Alexey Pavlov 27 августа 2021
38
Рекомендуемые программы
профессия
от 25 000 ₸ в месяц
Разработка фронтенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 21 ноября
профессия
от 25 000 ₸ в месяц
Разработка веб-приложений на Django
10 месяцев
с нуля
Старт 21 ноября
профессия
от 14 960 ₸ в месяц
Ручное тестирование веб-приложений
4 месяца
с нуля
Старт 21 ноября
профессия
от 25 000 ₸ в месяц
Разработка приложений на языке Java
10 месяцев
с нуля
Старт 21 ноября
профессия
от 24 542 ₸ в месяц
новый
Сбор, анализ и интерпретация данных
9 месяцев
с нуля
Старт 21 ноября
профессия
от 25 000 ₸ в месяц
Разработка веб-приложений на Laravel
10 месяцев
с нуля
Старт 21 ноября
профессия
от 28 908 ₸ в месяц
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 21 ноября
профессия
от 39 525 ₸ в месяц
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
16 месяцев
с нуля
Старт 21 ноября
профессия
от 25 000 ₸ в месяц
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 21 ноября
профессия
новый
Автоматизированное тестирование веб-приложений на JavaScript
8 месяцев
c опытом
Старт 21 ноября