Всем привет! Хочу поделиться своей историей о том, как я пришел к тому чтобы стать программистом.
С детства меня интересовали компьютеры. В годовалом возрасте я тыкал по клавиатуре 486-го, в пять лет открыл для себя мир игр, а через год родители подарили Pentium III. Мои старшие братья в начале 2000-ых годов закончившие университет по "компьютерной специальности" (не помню наименование) помогли его настроить. Как сейчас помню: диск с надписью сделанной черным маркером "Windows ME", ручное форматирование в формате NTFS и долгая установка ОС. В то время я просто сидел рядом и наблюдал за всем, для меня все было магией, я запоминал все последовательности нажатий кнопок, даже бессмысленные нажатия на пробел, думая что это все необходимый ритуал для включения компьютера и что без этого он не заработает и я не смогу поиграть в свои любимые игры.
Несколько позже один из братьев писал простенькие странички на HTML и CSS и я заинтересовавшись, и осознав что на компьютере можно не только играть, а еще и делать что то иное - с первого взгляда не совсем понятное и странное; начал стоять над душой и донимать его вопросами. Объяснив мне основы HTML и нарисовав схему "Компьютер -> FTP -> WWW", он уступил мне место и открыл Notepad.exe со словами: "Ну пиши теперь свой сайт". Для меня это был новый мир, я заливал красками фон, писал разными шрифтами, вставлял картинки и многое-многое. Но скоро это наскучило и я забыл про программирование до средней школы - времени, когда у меня появился интернет.
В тех годах вышел фильм "Хоттабыч" про одноименного джинна, программиста и их приключениях. В интернете я нашел сайт, на котором было все о фильме и форум околохакерской тематики, которая очень меня заинтересовала. Я научился писать скрипты на VBS, которые открывали - закрывали дисковод, форматировали жесткий диск, записывал их на CD и давал друзьям поиграться и "поприкалываться" что называется. Примерно тогда я понял что программирование это очень интересно и это то, что мне нравится. В школе я пошел на олимпиаду по информатике, там мы решали задачи на Паскале, C++. Но учитель не занимался со мной, а я достиг ступора и перестал развиваться и что-либо понимать. В итоге я разочаровавшись ушел, о чем потом неоднократно жалел.
В выпускных классах передо мной стояло 2 пути: либо путь биолога, либо программиста. Поколебавшись я выбрал второе, и поступил в университет на специальность "Информационные системы", где честно сказать уровень информации был настолько устаревшим, что был совершенно неактуальным, и в целом преподавание было слабым. Так что ВУЗ мне дал только слабое теоретическое представление о программировании. На 4-ом курсе я, просматривая YouTube, наткнулся на видео с крайне интересным заголовком: "Что нужно изучать начинающему программисту?" (как оказалось, это был первый вебинар от Хекслет) Кирилл и Рахим говорили очень живо и заинтересовали меня одной фразой : "Лучший язык для начинающих... барабанную дробь сюда.... это Лисп ребята". Я тогда подумал, что за Лисп? Что за СИКП? Прогуглив "Хекслет" я попал на наш любимый ресурс и зарегестрировавшись, начал проходить "Основы программирования". Имея какой-никакой опыт я поначалу шел довольно легко. Но когда я дошел до Рекурсивного и Итеративного процесса, мой мозг начала размешивать огромная ложка. Позже я вспомнил слова Кирилла: "Будет очень нелегко, будет кипеть мозг..." Еле как пройдя эти уроки думал что на этом все сложности закончились. Дальше был курс "Составные данные" и "Последовательности" на которых я понял, что я совершенно не понял рекурсию и не умею строить абстракции. Начал бомбить вопросами Slack-чат, надоедать всем, рвать на себе волосы от непонимания и непринятия мозгом непривычной информации. Помогли статьи Рахима "Процесс изучения" и "Как учиться и справляться с негативными мыслями", список рекомендуемых книг и статья Кирилла "Как эффективно читать профессиональную литературу". Многочисленные вебинары, слаконары, просто дискуссии в чате, все это начало выстраивать картину в моей голове и я начал осознавать для чего это все, и почему это нужно и важно.
Укрепив свои знания, я собрался с духом и решился записаться на проект. Это было очень интересно и очень тяжело для меня. Самостоятельно продумывать архитектуру и писать настоящий код оказалось делом непростым, но с помощью ментора все получилось. По итогу у меня в Гитхабе оказался рабочий код, который можно показывать на собеседованиях. Параллельно, я потихоньку начал читать Структуру и Интерпретацию Компьютерных Программ. Как было написано в гайде "Как изучать Структуру и Интерпретацию Компьютерных Программ" : "... у вас появляется код, который можно показать при поиске работы. Более того, велика вероятность, что собеседовать вас будет человек, знающий про СИКП. Это добавит очков в карму и даст возможность продуктивно пообщаться", и согласившись что любые плюсики в мою копилку это хорошо, я стал выкладывать свои решения в репозиторий.
Поиск работы был обычным - рассылка резюме по всем вакансиям. Игноры, отказы - все через это прошли. Бывали нечастые случаи когда звали на интервью. На них мы беседовали о компании, о используемых инструментах, о коллективе... Смотрели мой репозиторий и обсуждали код что там был, некоторые интересовались таинственным SICP. Изначально я рассматривал себя как JS или PHP программиста, и получив одно предложение по PHP стеку пошел в маленькую команду из трех человек, у главного программиста было много работы, ему требовалось расширение. Поработав там немного, я понял что это не то что я хочу и попрощавшись ушел. Снова рассылка резюме и неожиданно приглашение на интервью Java разработчика. Немного подумав и вспомнив слова что "Язык — это инструмент" решил пойти. На собеседовании меня спросили о моем опыте программирования, опыте работы с Java стеком, принципах программирования. Ответив честно что я имею представление что такое Java, но никогда не работал с ней и показав свой код с Github, мне дали задание: "За две недели выучить основы Java и прочитать книги по Java EE, ознакомиться со средой разработки IntelliJ IDEA и инструментом сборки Maven". Выйдя на свой первый рабочий день, я столкнулся с тонной новой информации. Новый мир, новые и неизвестные фреймворки и технологии: "JSF, JBoss, BRMS, Hibernate" и так далее... Все это жутко интересно, работать сложно, но можно. Поначалу всегда нелегко, но дорогу осилит идущий. Коллектив отличный, все помогают мне как самому младшему. Каждый день открываю для себя что-то новое, каждый разработчик делится своим опытом и знаниями, что для меня (начинающего) просто бесценно.
Хочу выразить огромную благодарность Хекслету, учителям Кириллу и Рахиму за не имеющий аналогов не только в Рунете, но и вне его ресурс, который действительно учит программированию и дает правильный вектор для дальнейшего развития. Также хочу сказать спасибо всем участникам Slack-чата, которые помогали мне понять многие вещи, и отвечали (и продолжают отвечать) на мои вопросы. Желаю успехов Хекслету, и всем участникам. Пусть все у вас получится!