Решил написать этот пост и поделиться своей историей, потому что вчера вошёл в топ-1000 лучших учеников Хекслета.
Для какого-нибудь другого ресурса это могло бы показаться смешным (ну, не топ-10 же, и даже не топ-100), но я не чувствую ничего кроме гордости за себя и радости, что я всё-таки МОГУ и не совсем уж безнадёжен. Дело в том, что шёл я к этому 8 месяцев. Иногда наталкиваюсь в чате на посты про то, что кто-то взял и закончил профессию за 2 месяца, за 1,5 месяца или, вот, буквально сегодня прочитал про человека, который "взял" оба курса по JS - фронт и бэк - за один месяц, но выглядит это для меня примерно как книга "Ложная слепота" Уоттса. Чувствуешь, что круто, но совершенно не понимаешь, КАК???
На Хекслет я пришёл в конце прошлого лета после учёбы на другом ресурсе. Первая мысль - сейчас быстро пробегусь по курсам, всё сделаю, нахватаюсь новых знаний и вперёд, покорять фронтенд. За плечами был долгий, но относительно небольшой опыт работы с сайтами на WordPress и база по HTML, CSS, а также азы JS и PHP. Ну и диплом на плюсах 15 лет назад, а ещё программирование на бейсике 20-25 лет назад, но это уже не в счёт.
Начальные условия моего обучения были те ещё. Зимой я неудачно подскользнулся, повредил шею, и с тех пор головная боль стала моим верным спутником. А ещё у меня двое детей: старшая дочь и маленький сын, который не любит спать, но любит реветь в любое время суток. Атмосфера, конечно, не способствующая вдумчивой работе, но, с другой стороны, не всё так плохо: у меня есть работа, есть ноутбук, есть желание то ли действительно стать программистом, то ли закрыть детский гештальт и понять, что быть программистом - не моё (спойлер: в итоге я пришёл к тому, что всё-таки не гештальт). В конце концов, Йоси Адлер тоже весь день работал, а ударно учился по ночам. Мне же, наоборот, самым удобным временем суток для учёбы оказалось утро.
Первые курсы пошли как по маслу, единственные сложности возникли с рекурсией, но и её я осилил. Сложности начались на курсе "JS: Составные данные", который я всё же понял, но совершенно сломался на следующем "JS: Последовательности". Я даже успешно закончил первый проект "Brain Games", но "Последовательности" просто вынесли мне мозг, и после нескольких дней горячки я бросил учёбу на Хекслете.
Жизнь текла своим чередом, и в какой-то момент я получил автоматическое письмо от Рахима о том, что "вы не закончили курс, чем мы можем вам помочь" и в красках расписал все свои ощущения. Рахим подбодрил меня своим ответом, и я решил ещё раз попробовать. Чувствуя себя ёжиком из анекдота про то, как "ёжики кололись, но продолжали есть кактус", я взялся за "Последовательности" и... начал справляться с заданиями. Гордость переполняла, но я быстро пришёл в норму, споткнувшись о следующий курс про "Программирование, управляемое данными". Сейчас, спустя полгода он кажется мне лёгким и понятным, но тогда я в очередной раз побился об стену несколько дней, и опять бросил учёбу с твёрдым желанием никогда больше не возвращаться :) К тому же, зачем пытаться и учиться, если всё равно технологии безумно бегут вперёд? Всё, твой паровозик ушёл 20 лет назад, когда ты не поступил на программиста, а сейчас, пока ты будешь учить все эти реакты и вебпаки, парни из кремниевой долины придумают ещё что-то новое, и так до бесконечности.
Разумеется, я вернулся. Незадолго до Нового года, во время очередных "сам-себе-психолог"-сессий, в ходе которых я подводил итоги, ставил планы и выяснял, чего вообще хочу добиться в жизни, я решил попробовать ещё позаниматься на Хекслете. Ну, знаете, решил, что надо выкинуть из жизни побольше ненужного и поднажать на нужное. И - в очередной раз чудо, процесс пошёл! Работал в режиме "выпил таблетку, голова не болит, учимся, пока не заболит, повторить до бесконечности" :)
В этот раз мне удалось продвинуться немного дальше, чем раньше, и я застрял в одном из последних заданий курса "JS: Коллекции", на операторе "Spread". Нет, что делает Spread я понял, но то задание предъявляло какие-то совершенно запредельные требования к моему мозгу, и я сдался. Пытался подойти и с одной стороны, и с другой, пытался вкатиться в следующие курсы, но всё тщетно - как оказалось, именно "Коллекции" (а потом и "Деревья") заложили весь фундамент на все оставшиеся курсы по фронтенду.
Очередная итерация моего возвращения на Хекслет состоялась во второй половине марта, можно сказать, случайно. На YouTube я наткнулся на лекцию Кирилла, где он рассказывал про инженерную культуру. Я залип с открытым ртом, потому что слышал близкие мне вещи: сам работаю инженером, отец - инженер, и сама фраза "инженерная культура", видимо, задевает какие-то глубокие струны внутри. Посмотрел ещё несколько видео, и один ролик просто перевернул всё внутри. Кирилл сказал примерно такую фразу: "Все фундаментальные вещи, знание которых делает вас хорошим программистом, не меняются полвека. И понимая их, вы освоите любую новомодную технологию". Все эти деревья, абстракции, алгоритмы актуальны десятки лет, и ещё десятки лет будут таковыми оставаться. Чёрт побери, SICP вышел в то время, когда я ещё в детсад не ходил, а мне уже далеко за тридцать. Кнут своё фундаментальное "Искусство программирования" пилит с конца шестидесятых (и всё никак не допилит). А я переживаю, что не успею выучить React, ахаха.
Я снова взялся за учёбу и завершил второй проект, хотя и страху успел натерпеться, потому что первое из семи заданий смог закончить только в среду. Посмотрел и постарался впитать обе части "Ментального программирования", купил себе наконец-то в бумаге "Грокаем алгоритмы" и скачал "Совершенный код". Работая над своими (неучебными) проектами, стал ловить себя на мысли, что наконец-то понимаю, где удобно применить filter, map и reduce. Ругаю себя за императивный код. Вакансии пока листать боюсь, но уже активно интересуюсь темой, насколько восстребованы сейчас джуниоры в возрасте за 35 :) И ещё чаще приходит мысль, что почти не знаю JS на самом деле, потому что каждый день - одни открытия.
Всё таки все эти откаты и возвраты - в голове. С верным настроем даже самые сложные вещи хочется пробивать, пока не получится, ну а если никак, то не опускать нос.
P.S. Со вчерашнего дня откатился с 991 места на 993 - пока ты спишь, враг качается значит, есть ещё над чем работать, есть к чему стремиться. Хекслет, спасибо!