Прошло уже достаточно времени с того момента, как я закончил обучение на Хекслете по профессии JS-backend разработчика (к сожалению, без участия в проектах по финансовым причинам), чтобы, наконец, рассказать свою историю. Расскажу немного о себе, меня зовут Шухрат, родом я из Ташкента. В первый раз я столкнулся с программированием ещё в лицее. И если задачки на паскале у меня худо-бедно получались, то вот на следующий год наш информатик начал семестр по C#, где я окончательно поплыл. У моих однокурсников получалось изучать этот язык, и они даже писали программы, у меня же ничего не получалось. Меня это злило, и я тогда решил, что программирование - это не мое, что может показаться странным решением, поскольку точные науки мне давались достаточно легко, да и с английским проблем не было. После лицея я поступил в университет на факультет "Телекоммуникации", куда вместе со мной поступил мой знакомый. Он был уже тогда неплохим программистом-фрилансером и писал программы за деньги на Visual Basic. И я снова загорелся желанием изучить программирование, так как подумал, что раз мой друг смог, значит и мне под силу. На дворе был 2008 год, у нас еще вовсю использовался dial-up, интернет никакой, книг толком нет, хороших курсов подавно, но таки в руки попал справочник по Java7 Шилдта. Как же я ненавидел эту книгу. Моя вторая попытка потерпела фиаско, и в тот момент у меня появилось новое увлечение - компьютерные сети, так что после окончания университета я устроился помощником системного администратора в большую контору. И вот будучи уже системным администратором со стажем у меня периодически появлялись помощники. Многих из них устраивали "по знакомству", и работалось с ними не весело. Но в итоге мы с начальником сами нашли нужного человека. Я с ним подружился, и мы ездили домой после работы вместе, по пути решая различные головоломки. К моему сожалению, на тот момент, ему не зашли ни компьютерные сети, ни администрирование, но голова у него работала, и я ему предложил попробовать изучить программирование (да, у меня самого столько лет не получалось, но советы раздавать я мастер). В итоге он нашел Хекслет, прошел обучение, уволился из конторы, устроился удаленно и убедил меня попробовать пройти обучение. По-началу я отнесся скептически, поскольку уже имел за плечами неудачные попытки, но таки решил попробовать. Тем более, такое обучение для меня было в новизну. Прошел бесплатные курсы, но почему-то дальше дело не пошло.
К ноябрю 2017 года я уже успел сменить пару работ: работал и инженером-монтажником на объектах, и сидел в офисе, администрируя серверы на Windows и Linux. Но все это время что-то внутри меня не давало покоя. Я на тот момент довольно хорошо разбирался в том, как работают сети, умел их проектировать, а также был опыт администрирования серверов и виртуальных систем vmware, но за столько лет мне так и не удалось осилить программирование. У меня больше не осталось сил сопротивляться, искать отговорки для себя, и я твердо решил, что на этот раз надо идти до конца.
С самых первых платных курсов на Хекслете началась настоящая боль, мозг буквально кипел от практики. Я до сих пор помню свои адские страдания при одолении пар (как оказалось, это были еще цветочки). Мне понравилось, как подается теория, очень компактно, без углубления в дебри, но достаточно для того, чтобы усвоить тему и выполнить практику. Хотя, чем дальше я продвигался от курса к курсу, теоретической части мне хватало все меньше и меньше, приходилось эти темы вычитывать еще в нескольких книгах, чтобы наконец до моего понимания доходила суть вопроса. Но все же основным оружием Хекслета является не теория, а практические задания, которые заставляют думать. На некоторые задания уходило несколько дней, и после их решения казалось, что ты можешь всё. Но следующая за ней практика быстро спускала с небес на землю, напоминая, что работы над собой еще непочатый край. Ключевым курсом для меня стал "Прототипы". Именно после него что-то в голове сдвинулось, и я потихоньку начал что-то понимать. Отдельные кусочки знаний медленно, но начали складываться в паззл. Самой сложной практикой для меня стал чертов "Будильник" из автоматного программирования. Я решал эту практику более трех недель. Я выучил все диалоги в "вопросах и ответах", но так и не мог продвинуться. Мне почему-то не особо зашло общение в слаке, может я сомневался в себе, хотя я и сейчас там не так часто что-либо пишу, но так или иначе тогда мне сложно было что-то спрашивать публично, самооценку практика Хекслета и так опускала ниже плинтуса. В итоге я самостоятельно решил это задание. На протяжении всего обучения моим ментором был тот самый друг, что посоветовал мне Хекслет, и не без его помощи я завершил все курсы профессии. Произошло это в мае 2018 года, на профессию без проектов у меня ушло 7 месяцев. Можно было закончить и быстрее, но работа не позволяла.
Спустя полтора месяца, как я закончил курсы на Хекслете, у меня появилась возможность попасть на стажировку, но там надо было знать Ruby и рельсы. На тот момент я знал о них лишь понаслышке. В итоге начал проходить руководство Хартла и осилил его за неделю (кроме последней главы). Во многом помогла база, которую я получил, обучаясь на Хекслете. Меня не пугала рекурсия, я умел работать с составными данными, знал, что функции можно передавать и возвращать, как и данные, что есть чистые функции, есть побочные эффекты и т.д. Вряд ли бы у меня получилось за неделю осилить хоть какой-то самоучитель "по созданию сайтов для чайников" без понимания того, что же происходит под капотом. Хекслет дает фундаментальные знания, которые применимы в изучении любого языка. Поэтому хоть на Хекслете все обучение проходило на JavaScript, мне не составило большого труда освоить Ruby. Да, к некоторым особенностям приходится все же привыкать и понимать, почему сделано именно так, но фундамент позволяет относительно безболезненно осваивать новые технологии, будь то язык, фреймворк или что-то еще.
И тут началась стажировка. Все обучение оказалось бесполезным! Весь мозг стерли, будто ты мгновенно разучился ходить и теперь нужно учиться ходить заново. Вот такие ощущения были при стажировке и в первые полтора-два месяца работы. Но, как оказалось, это было что-то вроде акклиматизации. Одно дело когда сидишь и программируешь в уютной IDE Хекслета, другое дело - реальная разработка. Вероятно, у меня так случилось из-за того, что я не прошел ни один проект (на тот момент я не мог их себе позволить, каждая копейка была на счету), но со временем знания, полученные на Хекслете, вернулись и адаптировались под рабочие процессы. Этому также способствовали чтение множества книг, гайдов, статей и прохождение различных интерактивных курсов на определенные темы.
Стоит сказать, что в течение всего этого времени, да и при обучении тоже чувствуешь себя дном, сомневаешься в способностях досчитать до десяти, а голова тебе только чтобы в нее есть и шапку носить. Не сказать, что это чувство усиливается со временем, но и не ослабевает. Вот так я проработал несколько месяцев, некоторые мои знакомые тоже захотели начать/продолжить изучать программирование (удаленная работа привлекает людей, что тут скажешь. У нас многим не нравится тратить время на дорогу в офис, хочется работать не выходя из дома, да и зарплату можно найти достойную). И вот только помогая другим делать их первые шаги, понял насколько сам продвинулся вперед. Хотя прекрасно понимаю их, ведь еще и года не прошло, как я был на их месте.
Помимо очень крутого и качественного контента на Хекслете есть еще одна очень важная вещь, которая напрямую повлияла на мою карьеру программиста. Может кому-то покажется смешным, но это Рейтинг ТОП-100. Вообще, встроить элемент игры, когда набираешь баллы по мере прохождения курсов, - это гениальное решение! Я сам сидел и решал все задания без пропуска, чтобы скорее попасть в заветный рейтинг. А конкретно со мной случилось следующее: меня нашли в этом списке, связались со мной и предложили работу! Это было очень приятно. Я прошел вводное собеседование, после ответил на тесты, решил пару задачек. По результатам меня пригласили на техническое собеседование. И тут мне второй раз было очень приятно. Понятное дело, что я был не один, и собеседовали еще много других людей, среди которых, как мне сказали, были рельсовики с 2-3 летним стажем, и после собеседования со мной мне сказали, что я лучший кандидат и они не против того, чтобы я присоединился к их команде. Я разрабатывал на рельсах всего 7 месяцев и даже был удивлен, что уже догнал кого-то, кто разрабатывает на тех же рельсах более двух лет. Все-таки школа Хекслета очень сильная. Забавно, что рельсам Хекслет не обучает, но рельсовиков выпускает :-) Самое главное найти в себе силы, мотивацию дойти до конца обучения и не бросить это дело в отчаянии.
Я читал посты в слаке и видел, что некоторым не нравится, что о Хекслете все говорят только хорошее. Когда достигаешь цели, в основном запоминаешь хорошее. Но объективности ради скажу, да, на тот момент когда я проходил курсы, они не были лишены недостатков. Помню, не было очень важного и нужного курса, который появился позже - "Функции". Без него я страдал. Видеть в дальнейших курсах слайды, на которых функция, которая возвращает функцию, которая возвращает... было очень больно, и я абсолютно не понимал, что происходит. Бывало, сложность уроков резко возрастала в пределах даже одного курса. Было ощущение, что чего-то не хватает, и приходилось читать дополнительно различную литературу. Но я вижу, что Хекслет развивается, курсы совершенствуются, появляется новая практика, и я уверен, что сейчас проблемных мест еще меньше, чем было.
В заключение, хочу поблагодарить всю команду Хекслета за титанический труд, проделанный при создании и поддержке такой замечательной образовательной платформы, которая дает многим людям возможность изменить себя и свою жизнь к лучшему, воплощать свои давние мечты стать программистом и просто открывать этот необычный и интересный мир.