Все статьи | Истории успеха

Спи, учись, делай пет-проект, или Как стать программистом в 41 год

Спи, учись, делай пет-проект, или Как стать программистом в 41 год главное изображение

Я познакомился с программированием в школе. Учился в хабаровском Лицее информационных технологий. У нас был хороший компьютерный класс, программировали на бейсике. Было интересно, но я не нашёл в себе тяги к профессии программиста. Поэтому по образованию я инженер-железнодорожник. Было много разных мест работы, но ни одна с программированием связана не была. Уверенный пользователь ПК, не более. Последним занятием был интернет-магазин. Работа на себя не принесла доходов, скорее убытки, но изменила взгляд на жизнь и дала ощущение некоторой власти над событиями. Твои личные решения во многом определяют последствия. Я перестал плыть по течению. Но пришло время бизнес закрывать и решать, чем заниматься дальше.

Новое знакомство с программированием, выбор профессии

Ещё в то время, когда бизнес шёл нормально, я нашел Scratch — платформу для детского программирования. Это стало каким-то откровением — я был в восторге от него и жалел, что подобного не было в моём детстве. В Scratch я провел довольно много времени. Создавая простенькие игрушки, понял, что мне элементарно не хватает знаний, и начал искать, где бы их получить. Подробностей не помню, но где-то был очень хороший отзыв о Хекслете. Начал изучать платформу, мне понравилось и я понял, что нужно выбрать язык, который буду учить первым. Много читал отзывов и много думал, выбрать было очень трудно, ведь не было никакого знакомства с прикладным применением. Но одно стало ясно — хочу заниматься веб-программированием, а там есть фронт и бэк. И только один язык можно было использовать и там и там. Ну и понеслось.

Хекслет

Я понимал в общих чертах, что такое фронтэнд и бэкенд. Над чем конкретно работают фронтенд- и бэкенд-программисты, не знал, поэтому последовал рекомендации Хекслета и выбрал профессию бэкенд-программист.

Первые уроки проходил долго, были ещё какие-то сомнения, всё-таки область совсем новая. Много читал отзывов и историй, смотрел зарплаты. Понял, что самое важное — найти первую работу. И принял решение оплатить подписку и пройти курс до конца.

После оплаты появилось некое спокойствие: учебная траектория есть, осталось только учиться. Теория плюс практика — то что нужно. Задачи были и лёгкие, и трудные, и очень трудные. Одну три дня решал.

Сделал для себя удивительное открытие: трудные задачи становятся понятнее, если поспать. Происходило это примерно так : читаю задачу — вроде понятно. Начинаю делать, но тесты не проходят, долго отлаживаю, ищу ошибки. Не получается. И тут два варианта. Первый — сидишь и пытаешься решить до онемения мозга. Бывает, получается. Но второй вариант мне нравится больше. Если решал с утра, ложился вздремнуть не более получаса, чтобы не провалиться в глубокий сон, если вечером, то просто ложился спать. Потом пробовал решить снова, и зачастую очень быстро находил проблему.

Бывало, что задача непонятная с самого начала, тогда надо как можно больше по ней собрать информации. Как правило, это комментарии и вопросы от уже решавших её студентов. Когда чувствуешь, что прочитал много, а понятнее не стало — ложишься поспать, и потом многое проясняется.

Даже сейчас, если с нового дня предстоит новая задача, я стараюсь ознакомиться с ней вечером, чтобы мозг обработал информацию за ночь. Оказалось, это особенность мозга. В какой-то мере это проясняет видео по ссылке.

Что касается работы в это время, постоянную искать не стал. Сначала такси, потом подработка — деньги небольшие, но они позволили завершить обучение. Большое значение в это время имела поддержка жены, она верила, что у меня получится. Такой ритм жизни помог мне пройти обучение в плотном графике за полгода. Всего же, считая раскачку — первое время занимался нерегулярно — у меня ушёл примерно год до первой работы.

Отдельно хочу сказать о проектах. Я прошел только первый, о чём потом много раз жалел. Проекты необходимы, они дают понимание среды и хода разработки, а также того, как полученные знания применяются в жизни. Это не менее важно, чем всё остальное обучение, потому что именно навыки, полученные в проектах, позволят быстрее и менее болезненно влиться в процесс разработки на первой работе и в целом чувствовать себя увереннее при её поиске. Я конечно всё это понял, уже работая и набивая первые шишки.

Первая работа

Последовав совету Кирилла Мокевнина, начал искать работу, не завершив профессию. В профиле на GitHub только один первый проект Хекслета. Разместил резюме на «Моём круге» и «ХедХантере». Откликов было мало, но по одному из них я сделал тестовое на React — ToDo List. Делал неделю. Всё работало, но выглядело так себе — CSS я знал плохо и применять не стал.

Меня не взяли, но в резюме после этого я указал, что знаком с React, и это сыграло роль. Местная небольшая компания искала разработчиков, стек был именно таким, как я хотел — React и NodeJs. Они только открывались, и после первого письма позвали на встречу где-то через месяц. Это был месяц томительного ожидания.

При встрече не было технических вопросов. Пообщались на общие темы, я спросил про свой код из тестового, мне сказали, что пойдёт для начала. Я поинтересовался, будут ли технические вопросы, мне ответили, что и так со мной всё понятно. В общем меня взяли Fullstack-разработчиком. Это было именно то, что я и хотел — React, React Native, NodeJS. Всё потрогать: бэк, фронт и мобилку — просто отлично.

Первые задачи были на React Native, делал их долго, а когда получалось, то было такое странное состояние воодушевления, что я не мог брать следующую задачу. Надо было делать небольшой перерыв, чтобы успокоиться.

С ребятами я проработал год на двух проектах. Зарплата была небольшой, но для меня это было не очень важно, главное — опыт. В свободное время начал делать свой пет-проект, чтобы с нуля всё поднять и заставить работать. Стек был как на рабочем проекте, мне было важно сделать всё самому и с начала. Это и делается в проектах Хекслета, но я прошел только первый — самый простой. В итоге именно домашний проект помог найти вторую работу.

Проект представлял из себя SPA для составления меню из рецептов. Предполагалась возможность выгрузки списка покупок по меню, но это я не успел сделать. Можно было создать рецепт с описанием и продуктами из списка. Из рецептов можно было составить меню по неделям на месяц и выгрузить в pdf. Можно было скопировать себе чужой рецепт и меню. То есть меню и рецептами можно было обмениваться, поэтому появились публичные и приватные рецепты и меню.

В конечном итоге идея стала напоминать соцсеть для обмена меню. Какой смысл в этом всём? Смысл в том, что кому-то удобно было бы взять уже составленное меню и не заморачиваться своим. А кому-то возможно было бы интересно такие меню составлять. В общем, повозился я с этим всем изрядно, потому что в базе появилось много связанных таблиц. А само меню на месяц представляло собой довольно сложный объект, который надо было отображать пользователю в красивом виде.

Что использовалось на фронте: React, Redux, библиотека компонентов Antd, Webpack, Babel, Eslint. На бэке: ExpressJS, PostgreQL, Sequalize, Eslint. Было интересно именно всё написать с нуля: клиентское SPA с авторизацией, SPA для админки, для них было два разных бэка. На бэке поднять базу, обработать запросы. Технологии были те же, что и на работе, но вся логика придумана самим, и это доставляло удовольствие.

Отдельное внимание настройке вебпака, на работе я его не касался, а тут пришлось повозиться. Стало намного понятнее, как на работе с ним взаимодействовать, да и не только с ним. Много непонятных моментов прояснилось. Потом поднял проект на «Яндекс облаке», там как раз давалось два бесплатных месяца. Пришлось подучить SSH, терминал, NGINX, управление процессами на удаленном сервере. Так что какое-то время это был публичный проект, хоть и хромой.

Что я не успел изучить на Хекслете, так это тесты, не повторяйте моей ошибки.

Вторая работа

Вторую работу нашел через телеграм-чат местного IT-сообщества. Откликнулся на вакансию. Проект только запускался, и меня взяли фронтом на React. Будущий начальник посмотрел мой домашний проект. Мы общались по телефону минут сорок на разные рабочие и общие темы. Вопросы были не по теории, а именно по практическому применению знаний и по проекту.

Мне дали время подумать, я подумал и согласился, о чём не жалею. Зарплата, кстати, выросла в два раза. Новый проект предполагал TypeScript. Я его не знал, но сошлись на том, что внедрим постепенно. Теперь я люблю TypeScript. Хоть, конечно, и не использую его на полную мощность. В общем, теперь в одиночку тащу фронт проекта. Чего только не пришлось делать: и чат, и канбан-доску... А впереди ещё столько же интересного. Немного разленился, забросил саморазвитие, но уже беру себя в руки. На первом месте в списке приоритетов английский язык.

Возраст

Были опасения насчёт возраста — мне исполнился 41 год. Все эти «молодой коллектив» в вакансиях смущали. Преодолеть сомнения помогла такая история: я был готов пойти менеджером в местную IT-компанию, чтобы хоть как-то попасть в «айти» и потом уже внутри сориентироваться. Отправил им резюме, где написал, что учусь программированию. Перезвонил их представитель и после расспросов поинтересовался, не хочу ли я программистом PHP пойти к ним. После этого моё сознание развернулось на 180 градусов. Я понял, что есть работодатели, для которых возраст — не проблема. Я тогда отказался, так как ничего не знал по сути, но рад, что так получилось.

В целом у работодателей вопросов о возрасте не было. Первого я прямо спросил, он сказал, что это не имеет значения. Второго уже не спрашивал. Оба младше меня и оба очень грамотные специалисты. Проблем в работе не было ни с кем, с коллегами с прошлой работы общаемся до сих пор, одному 30 второму 22.

Читайте также

Как притвориться мидлом и устроиться на первую работу: история успеха Евгения Малафеева.

Планы

Рано или поздно и этот проект придётся покинуть, и я готовлюсь к следующему этапу. Хочу поработать в международной компании, новая цель не даёт заскучать. Нужно подтянуть и английский, и теорию, и углубить знания. Планирую вернуться на Хекслет и пройти нужные курсы, их там хватает.

Совет начинающим

Выделите в своей жизни время на учёбу и придерживайтесь его жёстко полгода-год-полтора. Кто-то учится быстро, кто-то «слоупок», как я, но итог один — знания и навыки. Будьте готовы к провалам в мотивации. Я читал статьи успешных разработчиков и смотрел зарплаты, это помогало. Может вы не будете разработчиком-звездой, но средний уровень тоже востребован. Пройдёте профессию — точно получите работу, в этом я убежден.

Да забыл сказать, сейчас мне 43 года :-)

Аватар пользователя Роман Авилов
Роман Авилов 02 октября 2020