Привет. Уже давно хочу поделиться своими впечатлениями о проектах и о учебе в Хекслете в целом. К сожалению, обычно я никогда не прикладываю в деле особо много усилий. Лень сопровождает меня всегда и везде. И Хекслет не стал исключением. Но сначала небольшая предыстория.
До Хекслета у меня уже был небольшой опыт в программировании: начинал что-то делать на Perl, потом немного увлекся C++, а потом под впечатлением от успехов инди-разработчиков ударился в геймдев, писал на Monkey. Но увы, ни в одном из дел не добился успехов, а все потому, что не изучив до конца инструмент, начинал писать какой-то огромный проект мечты. При небольшой цели мне становилось неинтересно, в итоге вот я уже пишу мморпг с "корованами" и прочим, а это приводило к тому, что временами втыкал по несколько часов, не понимая что написал неделю назад. В какой-то момент пришлось честно себе признаться: либо я так и останусь самоучкой-недоучкой и буду делать свой проект до конца жизни (потому что месяцами не могу заставить себя сесть за свой говнокод), либо надо что-то менять, и пора ставить реальную цель. Так я и пришел учиться в Хекслет с целью устроиться на работу программистом.
В Хекслете с первых уроков мне понравился подход: акцент ставился не на конструкциях языка, а на саму суть программирования. Кажется, это был курс "Построения абстракций". Тогда еще не было совсем простых курсов. Мне просто снесло башку - многие вещи перевернули моё понимание о программировании. Кто прошел, тот знает. Но потом в какой-то момент мой пыл убавился, обучение застопорилось. Почти полгода я даже не притрагивался к урокам. Помню тогда подписка подорожала, но для старых подписчиков цена оставалась прежней, и я продолжал оплачивать чтобы сохранить старую цену, но при этом даже не притрагивался к урокам. Находился тогда в полной депрессии. Спасло то, что в какой-то момент увидел информацию о проектах. Тогда были еще проекты на PHP и они были бесплатные, но совсем не такие как сейчас. Я загорелся желанием участвовать в проекте и за месяц окончил стек PHP. На старте Кирилл дал документ по проекту: список действий и инструментов. Когда его увидел, то у меня на лоб глаза полезли - куча неизвестных инструментов (к тому времени разве что только о гит что-то слышал). В общем решил, что моих знаний явно не хватает, испугался и плюнул на все, даже не стал толком разбираться (ну разве что о композере почитал на хабре, да еще пустой гит создал). Увы, каждое такое поражение вгоняло меня в очередную депрессию на месяц, а то и более...
Потом появилась очередная информация: планируются другие, более продуманные проекты, хоть они и будут стоить дороже. Я загорелся, и начал ускоренное прохождение стека по JS - благо многие задачи пересекались с PHP. С осени к началу нового года было время подготовиться к новым проектам. Тогда у меня открылось новое дыхание, и вернулась надежда и какая-то уверенность, ведь к тому времени я уже не особо верил, что смогу в ближайшее будущее работать программистом. В итоге успев пройти необходимый минимум я попал в проект. И тогда, на старте, открыв описание к первому чекпоинту, у меня была примерно та же ситуация что и в прошлый раз: я просто офигел от количества неизвестных инструментов. Моя первая реакция была такая: встал из-за компа, походил по комнате, поставил чайник, сварил обед, постирал носки и нашел еще кучу неотложных дел требующих сиюминутного выполнения... Как и прежде возник какой-то страх перед новым. Но все-таки решил не сдаваться и идти до конца. Кажется, первые четыре или пять шагов даже не касались самого проекта, а были всего лишь настройкой окружения. А сам проект, хех... Сколько было эмоций...
Расскажу пару моментов. Может быть вы проходили на уроках пары cons, так вот я начал использовать такие пары в проекте (к тому времени еще не успел познакомиться с объектами), на что Кирилл мне заметил, что у них есть готовый модуль пар в npm. Представляю, как он умилялся над моей наивностью:) А еще в какой-то момент я ужаснулся: ведь я не оставил ни одного комментария в коде! Что подумает ментор?! Вероятно, он решит, что я - необразованный быдлокодер! Нужно срочно все закомментировать, каждое действие - таким образом я покажу свое почтение и знание о существовании такой важной детали как комментарий!.. Тут уж я точно был наивен:) Ну, а, наверное, самое большое впечатление в первом проекте было, когда понял, что могу скармливать центральной функции любые данные и правила работы с этими данными, кажется это паттерн стратегия называется. В общем было круто.
Второй проект был еще круче и сложней. Кирилл меня пнул в слак, и действительно, сам не знаю почему, я избегал общения в слаке, наверное просто потому что считал, что мне сказать нечего, а информации итак выше крыши. Как оказалось, сильно ошибался. Помню, как мы разбирались в абстракциях, в голове что-то явно менялось, сам подход к программированию и созданию приложения. Я ложился спать в 2 часа ночи и не мог уснуть из-за мыслей, приходили новые понимания, в голове складывались решения, и я садился за комп, что-то переделывал, делился впечатлениями в слаке, и был там не один такой. В итоге ложился под утро, а на следующий день опять брался за дело. Вероятно, второй проект меня больше всего научил абстракции. Третий проект... асинхронность... На этом слове можно закончить. Я совершенно толком ничего не понимал об асинхронности. Когда проходил курсы перед этим проектом, решил, что на деле все пойму. Как бы не так! Результат: не справился с проектом. Наверное, больше всего времени ушло из-за непонимания как ловить ошибки. Но отступать было некуда. В итоге у меня оказался еще месяц для подготовки. И в этот месяц я не только прошел еще раз курсы по асинхронности, но также почитал разные статьи, а на хабре то и дело как грибы возникали нужные мне статьи - словно неведомая сила помогала. В итоге более или менее успешно завершил третий проект и уже начал подыскивать работу.
Если выделить главное, то проекты мне дали уверенность в себе, ведь раньше я боялся искать работу и отказывался от любых возможных собеседований. А еще пропал страх перед новыми инструментами - в работе это оказалось очень важным. К сожалению, я так и не взялся за последний проект, сначала не хватило денег, а потом устроился на работу программистом - теперь мне и так хватает проектов, но это уже другая история:). И всё-таки моё обучение не закончено, особенно не хватает того опыта, который дают менторы в проектах, а многое до сих пор не понял, да и не хватает правильного опыта. Но даже с этим мне уже удалось достичь заветной цели. Главным врагом был себе сам, собственное уныние и депрессивное состояние фактически отняли у меня больше половины времени из тех полутора лет моего обучения, увы, стыдно и обидно это признавать: очень много времени потрачено зря. Но хоть и часто опускал руки, по сути все задачи всегда получалось решить, надо было только сделать первый шаг.
Тут говорят про возраст, мол после 30 то да сё. Мне 34, и на работу устроился без особых проблем. Надеюсь мой опыт поможет и вам.
Хочу поблагодарить Кирилла и Рахима за их работу. Эти ребята меня вдохновляют, и каждый делает это своим уникальным способом. Вы крутые! На самом деле все это большой баг!!!