"~Бэкенд~Фронтенд разработчик" - первая кровь

Привет, мир, привет, Хекслет!
Содержание
Подготовка
Примерно в середине января этого года, когда я прошёл половину курсов по профессии «Бэкенд Node.js», у меня появилась уверенность, что я уже всё умею и могу. Казалось: даже если чего-то не знаю, то быстро разберусь.
На hh оставалось множество непонятных слов в вакансиях — webpack, sass и другие. Но после курсов на Хекслете я понимал: зачастую в этих инструментах сложнее название, чем сама суть. Поэтому я начал массово рассылать резюме, даже на вакансии, где явно не соответствовал. Как и ожидалось: половина не ответила, остальные отказали. Но некоторые прислали тестовые задания — и тут я понимал, что не знаю, с чего начать. Вежливо отвечал работодателям, что пока не обладаю нужными навыками.
За неделю я отправил около 100 откликов: 5% прислали тестовое, остальные молчали или отказали. Тогда я вспомнил про SuperJob. Открыл резюме трёхлетней давности, посмеялся, обновил информацию и тоже начал откликаться. На следующий день получил приглашение на собеседование по вакансии веб-разработчика.
«Клюет»
Компания занималась продуктами на основе RFID-технологий. На интервью меня встречали руководитель разработки и ведущий веб-разработчик. Я предупредил, что это моё первое собеседование и я волнуюсь.
Первый вопрос был про массив: «Как в отсортированном массиве найти индекс искомого элемента самым эффективным способом?» — и тут мне помогла книга «Грокаем алгоритмы», где одним из первых описан бинарный поиск.
Дальше была задача с девятью шарами, аптекарскими весами и поиском более тяжёлого за две итерации. Потом — функции «Палиндром» и «Reverse». Я описал решения, в том числе рекурсивное. Интервьюеры переглянулись и сказали, что знания у меня «не на самом низшем уровне». Для меня это было победой.
Тестовый запуск
Через неделю я получил оффер: стажёрская зарплата на два месяца с последующим повышением.
7 февраля я начал испытательный срок — и оказался фронтендером. Первые дни были тяжёлыми: я не понимал, что нужно делать. Помог старый друг — мы созвонились, накидали каркас решения, и я начал вникать. Работать приходилось медленно: не знал про обработчики событий, flex, не умел инициировать проект. Через месяц стало лучше: я разобрался со сборщиком Gulp, с Git, понял их практическое значение.
Потом дали задание сделать веб-интерфейс на внутреннем фреймворке. Он использовался только в этой компании, React и другие мейнстримы там не признавали. Это замедлило меня и поставило перед выбором: стоит ли продолжать. Но я понял, что пока рано судить о выборе инструментов — важнее расти как программист.
К концу второго месяца я продвинулся, снова начал проходить курсы и читать книги. Руководитель сказал, что я «готов к реальности».
Открытый космос
Сейчас я остановился в середине курса по асинхронному программированию и понимаю, что эти знания пригодятся в работе. Прочитал «Программист-прагматик», начал «Linux. Системное программирование» Роберта Лава.
Как помог Хекслет:
- Неявная подача информации. Чтобы понять материал, приходилось гуглить и искать. Это очень похоже на рабочие задачи.
- Решение учителя. После своих 20 строк открываешь пример — и там 2 строки. Это заставляет мыслить и сокращать код.
- Тесты. Автоматические пока не пишу, но проверяю вручную, что помогает избегать ошибок.
Советы новичкам
- Учитесь решать элементарные задачи. Даже если не видите практического применения, они пригодятся на собеседованиях.
- Всегда спрашивайте себя и коллег: оптимально ли это решение? Почти всегда можно сделать короче и лучше.
- Депрессия и апатия при получении нового задания — это нормально. Главное — начать с маленькой части, пусть хоть что-то заработает. Дальше всё идёт быстрее.
Заключение
Когда появится новая интересная тема, я обязательно продолжу блог. Всем успехов на работе! 🚀
Александр Кулаков
7 лет назад