Весенние скидки до 30 000 ₽
На все профессии до 31 марта
Главная | Все статьи | Истории успеха

Pair is not a function: от радиоинженера до fullstack-разработчика

Время чтения статьи ~5 минут
Pair is not a function: от радиоинженера до fullstack-разработчика главное изображение

Всем привет, меня зовут Илья, я расскажу здесь свою историю. Я закончил МИРЭА по радиотехнической специальности, два года проработал в отрасли инженером, впоследствии понял, что ловить там нечего и решил кардинально менять сферу своих профессиональных интересов. Взгляд упал на веб-программирование, так как перед глазами была саксесс-стори друга, который во времена руби-хайпа самостоятельно разобрался с языком и основным фреймворком (неожиданно RoR) и нашел работу в каком-то берлинском стартапе. Привлекло то, что можно без проблем самостоятельно освоить нужные технологии, и найти работу без жестких требований к образованию.

Курсы

Так вот, веб. Я начал неспеша и лениво, с сайта learn.javascript.ru, исправно выполнял все задания после курсов, двигал драг энд дропом квадратики и менял цвета контейнеров при наведении. Пусть это давало какие-то навыки в программировании, но по факту я абсолютно не видел картины разработки в целом. Проучившись в таком ленивом темпе где-то полгода я наткнулся на hexlet, познакомился с курсами и прошел бесплатные "Основы программирования". В целом мне понравилось и после некоторых раздумий я решил оформить подписку.

Было, конечно, тяжело, новые концепции заставляли здорово напрягать мозг, времени это отнимало много, но и интерес не угасал. Справедливости ради отмечу, что я занимался очень вдумчиво, постоянно задавая уточняющие вопросы после решения пробегаясь глазами по Вопросам/ответам к уроку (иногда дополняет какие-то моменты).

После пары месяцев обучения я записался на проекты, было достаточно интересно и очень полезно, правда пришлось посидеть с настройкой окружения, что порой было уныло и безысходно (первый проект я начал на винде, благо в FAQ был и такой кейс описан). Остановился на пройденном втором проекте, который я кидал работодателям в качестве примера кода. В основном реакции на код были положительные, иногда спрашивали "а нафига нужна утилита, если таких дофига?", ну и один раз удивились наличию Makefile (хотя у нас на работе активно юзается, удобная же штука). Третий проект я не успел начать из-за непройденных курсов по асинхронщине, не хотелось в аварийном режиме досматривать лекции и быстро вникать, но это не помешало мне иногда ходить на собеседования и довольно внятно отвечать на вопросы работодателей.

Работа

Я был где-то на 8 онлайн/оффлайн собеседованиях, два из них были успешными. Вопросы задавали разные, советую начинать ходить на интервью как только пройдете 1-2 проекта (чтобы была какая-то база). Компании спрашивают разное, главное показать, что вы соображаете, пробелы в знаниях быстро заполняются вместе с счетчиком пройденных собеседований, так что это определенно стоит потраченного времени и нервов. Полезно в целом оценить, какие технологии из вашей области нужны работодателям, и сделать маленькое приложение. Как вариант поделать тестовые задания, например из репо хекслета или самим поискать, например в вакансиях банков (Рокет, Тиньков и тд). Даже никуда не отсылая реузльтат уже можно получить неплохое понимание того, какие навыки вам нужны на первых этапах

Сразу отмечу основные моменты, с которыми я столкнулся при поиске работы:

  • многие работодатели сразу хотят знания фреймворка, в моем случае это был React, с которым я почти не был знаком на тот момент
  • на собеседованиях частенько помогал бэкграунд из хекслета, например при заданиях по обработке массивов и подобному
  • нужно было знание API DOM, которое у меня было благодаря learn.javascript (курса на хекслете тогда еще не было)
  • не хватало понимания общепринятых принципов ООП, потому что после многих слаконаров Кирилла я немного выбился из общего понимания ООП и не всегда в тему отвечал. Зато по ФП внятно отвечал)
  • благодаря самостоятельно сделанным проектам я быстро разобрался в последнем тестовом задании (сделать CRUD на React + Typescript + mobx), благодаря чему меня позвали на собеседование и приняли на работу.

По работе - у меня было два предложения, одно от Тинькова на джуниорскую позицию фронтендера (после некоторых раздумий отказался, оказалось не зря), второе в Мегаплан на позицию фуллстека Typescript + PHP, с оплатой вдвое больше предыдущего. Ну, я согласился, радовало, что будет второй язык (пусть и PHP), да и в целом интересный стек. Сейчас все по-прежнему нравится, хорошая команда, я продолжаю расти (работаю почти полгода), из интересного: полностью сам сделал модуль диаграммы Гантта, это практически полноценное мини-фронтовое приложение, сложное, с кучей бизнес-логики поверх стадартной диаграммы Гантта. Приходилось много думать и рефакторить при разработке, но я получил несказанно много опыта из всего этого) Понравился Typescript, для разношерстной команды типизация - это здорово, во-первых у многих именований появляется дополнительная осмысленность, стараешься более информативный и продуманный код писать, я не ощущаю оверхэда, но ощущаю множество плюсов при поддержке/рефакторинге.

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

Далее планирую продолжить проекты на хекслете по бэкенду, потыкать Express/Koa, присмотреться к этой области. Также интересно пройти новенькие курсы по фронтенду, попробовать Redux (у нас mobx, и он чертовски быстр и хорош, если его правильно приготовить, но и к Redux прикоснуться надо). Далее в свободное время хочу заценить Ruby и начать писать на нем свой небольшой проект. Почему Ruby? Не хочется пока уходить на что-то менее классическое вроде Scala или Clojure, но хочется интересный бэкенд-язык для полноценный реализации своих проектов (всем когда-то захочется завести свой проект).

Пара советов в поисках работы: рекомендую найти в телеграме @javascript_jobs и все их сопутствующие чаты и посматривать в поисках джуниорских вакансий и каких-то основных требований. Также помните известный факт - чем больше собеседований, тем больше у вас опыта для прохождения следующего, берите числом, подтягивайте пробелы в знаниях, не гнушайтесь не самым модным стеком, старайтесь смотреть в суть. Мне в целом помимо Хекслетовского слака (терпеть не могу слак, сижу в нем невзирая на боль) помогли также и ТГ-чатики, чат по React, Typescript, там сидят скилловые ребята, которые тоже могут помочь советом.

Аватар пользователя Илья Кузнецов
Илья Кузнецов 08 ноября 2017
2
Рекомендуемые программы
профессия
от 6 300 ₽ в месяц
Разработка фронтенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 28 марта
профессия
от 6 300 ₽ в месяц
Разработка веб-приложений на Django
10 месяцев
с нуля
Старт 28 марта
профессия
от 6 183 ₽ в месяц
Ручное тестирование веб-приложений
4 месяца
с нуля
Старт 28 марта
профессия
от 6 300 ₽ в месяц
Разработка приложений на языке Java
10 месяцев
с нуля
Старт 28 марта
профессия
от 5 025 ₽ в месяц
новый
Сбор, анализ и интерпретация данных
9 месяцев
с нуля
Старт 28 марта
профессия
от 6 300 ₽ в месяц
Разработка веб-приложений на Laravel
10 месяцев
с нуля
Старт 28 марта
профессия
от 5 840 ₽ в месяц
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 28 марта
профессия
от 9 900 ₽ в месяц
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
16 месяцев
с нуля
Старт 28 марта
профессия
от 6 300 ₽ в месяц
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 28 марта
профессия
новый
Автоматизированное тестирование веб-приложений на JavaScript
8 месяцев
c опытом
в разработке
Старт 28 марта
профессия
Верстка с использованием последних стандартов CSS
5 месяцев
с нуля
Старт в любое время