Добрый день, хекслетчане и присматривающиеся к Хекслету! Расскажу о своём опыте становления программистом.
Сейчас мне 31 год, и я уже 7 месяцев тружусь на позиции инженер-программист (frontend-разработчик) в компании, занятой в сфере клинических испытаний. Из бэкграунда: один неудачный стартап по разработке мобильных приложений сразу после вуза и 5 лет в международной логистике.
Попытки стать программистом начал в далеком уже 2016 году. Тогда, пав жертвой маркетинга, приобрел дорогостоящий курс от известной школы для желающих в программисты от MailRu Group. Курс назывался «Программист Python», он обещал за 8 недель сделать из покупателя лакомый кусочек для IT-рекрутеров.
На деле курс оказался беглым обзором синтаксиса и технологий. Нам показали и как верстать «флоатлефтами», и как использовать for в Python, и даже как собрать страничку с авторизацией на Djang'e.
Разочарованию не было предела как у меня от полученных знаний, так и у тех, кому посчастливилось лицезреть меня на собеседовании.
Потыкавшись в десяток контор и попробовав реализовать небольшой pet-project, окончательно убедился в собственной недостаточной квалификации. В последующем это сильно мешало, на собеседованиях давал о себе знать приобретенный синдром дилетанта.
2019 год. Накануне своего юбилея решаю еще раз переосмыслить опыт предыдущего обучения. Понимаю: нужно повторить попытку. Выделил совершённые при прошлой попытке ошибки и попытался их проанализировать:
В начале весны обсудил планы на «второй заход» со своим другом. Он программист и по совместительству мой наставник. Друг порекомендовал попробовать освоить фронтенд, в частности, React, на Хекслете. Сказал, на Хекслете топят за правильные вещи, например, функциональщину :-)
В этот раз учёл ошибки и уволился с работы для того, чтобы полностью сосредоточиться на обучении.
Достаточно быстро втянулся в обучение, так как мне очень подошел формат: короткие теоретические блоки и сразу же практика для закрепления. Программа Хекслета, на мой взгляд, учит строить правильные абстракции при разработке. Однако есть и то, чего на мой взгляд все же не хватало в учебном процессе - часто встречающиеся кейсы и способы их решения. Так как получилось, что я вышел в большой мир мастером reduce и рекурсии, но без малейшего понимания того, как работает авторизация, например. Отдельное спасибо за то, что в практике включен линтер, он реально приучает к порядку в коде. И еще, он пригодился мне на первой стажировке :-)
С момента решения первой задачи в курсе до трудоустройства прошло 9 месяцев, так что я практически «родил» работу :-) Был на пяти собеседованиях. Чаще всего мне попадались вопросы про ООП и event loop. Так что советую запастись теоретическими знаниями в области композиции, наследования и тому подобное.
Выше писал про то, что линтер — это круто. Это правда. Первая стажировка, на которую попал, заключалась в том, что я месяц бесплатно линтил крупный проект на React под правила пакета eslint-config-airbnb. Мне выдали доступ в GitLab и попросили пролинтить все. Мой жизненный цикл в этой компании выглядел так: собеседование => линтинг => прощание. Результаты моей работы никак не валидировались, а реквесты просто принимались. После стажировки со мной попрощались. Не сказать, что это был самый полезный опыт, но он все же был, так что линтер — сила :-)
В компании? где я сейчас работаю, процесс отбора был на мой джуновский взгляд самым оптимальным. Будущий коллега прислал тестовое с задачей сделать ToDo SPA на React. Непосредственно на собеседовании мы обсудили применяемый в компании стек технологий, и что в рамках этого стека я уже могу делать, а что мне еще предстоит освоить. По результатам этого обсуждения сделали предложение, от которого я не смог отказаться :-)
Для тех кто только начинает путь, у меня есть не один, а сразу несколько тезисов-советов:
Дерзайте!