Главная | Все статьи | Истории успеха

Бросить учебу ради желания работать, или Как я пожертвовал политехом ради карьеры программиста

Время чтения статьи ~13 минут 61
Бросить учебу ради желания работать, или Как я пожертвовал политехом ради кар... главное изображение

Всем привет! Было трудно вспомнить и структурировать все периоды и моменты, потому что мой путь в профессию довольно сильно растянулся. Статья получилась не самой короткой, так как я постарался рассказать обо всех аспектах пути продолжительностью почти в 4 года. Как говорится, запасайтесь чаем, приятного чтения :-)

Первые шаги

Думаю, стоить начать с первых попыток «потрогать» программирование. Это было примерно в 9 классе. Не помню, почему, но у меня появился интерес, и я полез на YouTube. Первое видео было о С++. Не понял абсолютно ничего, испугался этой магии и выключил.

Через некоторое время наткнулся на канал «Хороший программист». Там ребята топили за Ruby, и я принялся изучать его по их видео. Как сейчас помню puts "Hello World!". Счастью не было предела. Но я быстро очнулся, когда следующим уроком были переменные, объекты и if-else. Буквально впал в ступор. Забавно сейчас вспоминать это :-)

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

Затем был период учёбы на HTMLacademy. Позанимался там не больше пары месяцев. Заполнил шкалу обучения на 30 % и понял, что вёрстка мне не интересна.

Знакомство с Хекслетом

В июне 2017 года каким-то образом наткнулся на Хекслет, он сразу зацепил меня. Фронтендом я не хотел заниматься, поэтому выбор пал на профессию «Бэкенд JavaScript». Прошел все бесплатные уроки и 28 июля оплатил подписку.

В процессе обучения мой мозг не раз ломался. Порой ощущал себя неспособным к программированию, и это мягко говоря. Но когда что-то начинает получаться, когда ты видишь зеленые тесты... Когда задачу решаешь весь день, думая о ней за обедом, на улице, перед сном, а придумав что-то, берешь телефон и записываешь в заметки, а потом проверяешь решение, и оно работает — испытываешь неописуемое удовольствие. Забываешь, что что-то не получалось. До очередной сложной задачи, естественно. И так по кругу :-)

тесты позеленели

Момент радости


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

Что мне дал универ

Как и следовало ожидать, в универе было много математики. Программирование у нас началось на C, а во втором семестре перетекло в C++. Раз в неделю проходили лекции, и раз в неделю была сдача лабораторных работ. Лабы сами по себе были несложные, но вот преподаватель, который их принимал — ох... Как раз из-за этих лаб из 46 людей отсеялась почти половина.

Проблема была больше в самих студентах, ведь преподаватель просто хотел, чтобы люди отлично понимали базовые вещи. Сначала я тоже не совсем понимал такой подход, но со временем проникся. Как сейчас помню это окошко с памятью в VisualStudio, указатели. Как нужно было понять, сколько выделится памяти под переменную, на сколько будет сдвиг и так далее. Сейчас я благодарен данному преподавателю, хоть С/С++ мне пока не пригодились в работе, но для общего понимания это очень даже полезно.

В октябре я вновь оплатил подписку и вернулся на Хекслет. Конечно, за 2 года забыл большую часть информации, почти заново пришлось проходить все. Повторил многое и даже успел пройти новые курсы. Остановился где-то на «Последовательностях», затем снова отодвинул Хекслет, так как приближалась зачетная неделя и сессия, которую я вскоре сдал. В конце февраля 2019 года снова стал учить программирование.

И снова Хекслет: как я оценил мощь проектов

На этот раз был настроен серьезно. Думал, точно не брошу Хекслет, пройду пару проектов и наконец найду работу. Спойлер: я снова обо***лся, хоть и не сразу.

фейл

Не всё и не всегда идёт гладко


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

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

Первая попытка найти работу

В середине апреля наткнулся на вакансию: офис, Питер, онли бэк на ноде. В общем, мне всё подходило. Написал эйчару, девушка отправила мне тестовое задание на почту. Вот как оно выглядело: «Сделать веб-приложение, при открытии надо показать кнопку авторизации, по нажатию она делает oauth-авторизацию ВКонтакте и показывает имя авторизованного пользователя и 5 любых друзей пользователя». При последующих запусках заходах на страницу приложение сразу показывает всю информацию, так как запоминает авторизацию.

Я снова вернулся к JavaScript, начал в спешке проходить курсы по Express, HTTP Server. В итоге почти до конца доделал задание, оставалось запоминать авторизованного юзера. Спасибо парню из слака, который помог разобраться с oauth, так как были сложности с токеном.

Я осознанно не стал доделывать до конца, так как вновь приближалась сессия, к тому же, были куплены билеты домой, а работа была бы в офисе в Питере. В тот момент пожалел, что метнулся в PHP, так как за это время успел бы пройти нужные курсы по ноде и быстрее выполнить тестовое задание, не купил бы билеты домой и, возможно, проработал все лето программистом, а не курьером на доставке роллов, как это было в итоге.

Вторая неудачная попытка и отчисление

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

Параллельно со сдачей долгов пытался найти работу. Заметил, что осенью почему-то гораздо меньше вакансий, чем весной. Подвернулась вакансия fullstack-разработчика (React + Express). Несмотря на то, что вакансия с моим нелюбимым фронтом, решил откликнуться. Через некоторое время мне позвонил HR. Я как раз в этот момент сидел на паре. Собеседник начал спрашивать о HTTP, DNS, JS. Я ответил правильно примерно на 70 % вопросов. Этого хватило, и мне отправили тестовое задание.

Нужно было сделать чат с комнатами: очень урезанная версия слака. На самом деле, задач там было не так уж и мало, особенно, для человека, который не знает React и сокеты от слова совсем. Побежал оформлять подписку и изучать React и Redux, параллельно читая документацию по socket-io. Задание было рассчитано на неделю. Чат был сделан и сдан с опозданием в пару часов. Мне дали фидбэк по тестовому и пригласили на очное собеседование.

Встретил HR и провёл в переговорную, где я ожидал директора компании. Естественно, волновался. Сначала были общие вопросы по типу «почему именно программирование», «почему js». Затем алгоритмическая задача, какая конкретно, не помню. Помню лишь, что я дико затормозил. Хотя конкретно такие задачи всегда щелкал легко.

Наверное, на меня никто и не давил, я сам загонял себя в рамки. Но чувствовал какое-то давление, будто нужно ежесекундно решить задачу и притом оптимально.

Конечно, предложил какой-то вариант, но он явно не был оптимальным. Затем собеседующий попросил оценить через big O сложность моего решение, и здесь я снова ошибся, хотя через пару минут до меня дошло, но было уже поздно. Начались другие вопросы. Говорили о Linux и TCP. Процентов 70 по Линуксу я вообще впервые слышал.

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

В общем, мне дали список must-have литературы и сказали приходить, когда почувствую, что готов. Неделя, две, месяц, как мне удобно, меня ждут. Не знаю, правда бы меня взяли через месяц. После интервью не был разочарован. Наоборот, у меня остались только положительные впечатления, я был замотивирован двигаться дальше, изучать новое, копать глубже.

И тут я понял, что больше не могу разрываться между универом и желанием работать. Нужно было выбрать что-то одно, потому что конкретно на моей специальности, на втором курсе, невозможно было совмещать фултайм-работу и учиться. Хорошо подумав, выбрал перспективу найти работу программистом.

Почувствовал самую настоящую свободу: больше не нужно было посещать универ, беспокоиться по поводу долгов и так далее. Тот самый вкус свободы после 11 лет школы и не самого легкого года в универе. Это было самое начало ноября.

Прокрастинация, немного депрессии и первая работа

В первые недели после собеседование я продолжал заниматься на Хекслете, даже пару раз ходил в библиотеку, чтобы в тишине почитать про Linux. Казалось бы, полная свобода, куча времени, почти никаких обязательств, разве что перед самим собой. В общем, делай что хочешь, занимайся сколько хочешь, но не тут-то было. Началась какая-то дикая прокрастинация: я сидел до 6-8 утра, занимаясь абсолютно бесполезными вещами, которые вообще никак не связаны с программированием, а потом спал до 16:00. Так прошел почти весь ноябрь.

Так как нужно было на что-то жить, я почти устроился барменом в ночь, уже должен был выходить на смену вечером в понедельник. Но ещё в пятницу мне позвонила девушка, спросила актуально ли моё резюме на HH.

Важная заметка: еще в октябре я разместил свое резюме на HH, чтобы было удобнее откликаться на вакансии.

Естественно я ответил «да». Девушка сказала, что чуть позже позвонит начальник, так как он пока что где-то в Сингапуре. За выходные мне никто так и не позвонил, я уже и не надеялся, но днём в понедельник мне позвонили. Было пару технических и один общий вопрос. Затем мне должен был позвонить еще один человек для полноценного интервью.

Всё происходило в Codeshare, там были подготовлены задачи на JS. Я неплохо справился, но немного забыл совсем базовые вещи по типу работы с объектами и тому подобное. Мне сказали за два дня повторить всё это. Естественно, я оплатил подписку на любимом Хекслете и начал всё повторять. Двух дней мне более чем хватило. В среду было ещё одно интервью, уже с чуть-чуть другими задачами. Всё прошло успешно, и уже через час я был в офисе. Компания маленькая, занимается разработкой мобильных приложений. Собственно, от меня требовалось написание бэкенда на Express для устройств.

Работа

Мне выдали макбук, рассказали о SSH, pm2, показали Cyberduck, advanced rest client (классная штука). Я сидел и разбирался со всем этим, читал документацию по realm (используем в качестве БД), копался в коде. Примерно на следующий день мне уже дали реализовать небольшую логику. От меня требовалось просто на бумаге решить задачу, но я смог и код написать.

Мне давали небольшие задачи, таким образом я потихоньку включался. Была неделя, когда я только и делал, что тестировал одно сложное приложение, составлял баг-лист со стороны логики, UI/UX. По началу было интересно, но потом быстро наскучило. Затем снова делал небольшие задачи по бэку, потом очень неохотно по админпанели на Vue.js + Jade. Плевался на Vue после React. Видимо, если вы пишите на ноде, то сложно отделаться от работы по фронту. Ну да ладно, для опыта и общего понимания полезно знать и уметь.

Я делал различные методы, работал с api Сбербанка, Страйпа, искал и подключал различные библиотеки для всяких нужд. Не уверен, что это была самая сложная задача, но именно она мне запомнилась: нужно было реализовать систему мониторинга для отправки пуш-уведомлений. Самое сложное было протестить это всё, так как там была зависимость от времени, и нужно было сопоставить много условий.

Так прошло где-то полтора или два месяца. Иногда занимался на Хекслете, читал статьи, смотрел видео. С каждым днём, сам того не замечая, я всё больше понимал, всё больше деталей пазла складывалось в моей голове.

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

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

План

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

В последнее время меня потянуло к Пайтону, стал проходить курсы на Хекслете, а на днях ещё и наткнулся на новость о стажировке в яндексе (бэкенд на пайтоне). Заполнил анкету, мне прислали ссылку на Яндекс-Контест. В ближайшее время буду проходить. Если дойду хотя бы до очного собеседования, то обязательно напишу об этом статью, дайте знать в комментариях, если было бы интересно.

На самом деле, в конце обучения в школе думал, что в будущем буду заниматься Data Science. Поступлю в универ, начну изучать Пайтон, матан, и ворвусь в эту, что называется, «хайповую» область. Но что-то пошло не так, я и не заметил, как мне стал интересен JS, backend и всё, что с этим связано. Сейчас же, спустя полтора года, вновь думаю изучить всю эту пока что магию чисто как хобби, для себя, а если что-то получится, то, возможно, в будущем все-таки ворваться в data science.

Что касаемо универа, я пока не знаю. Тут есть 5 вариантов: восстановиться в политехе, пойти в универ попроще, забить на высшее образование, пойти на заочку, ну и последний, самый привлекательный: поработать ещё один год и в 2021 уехать в Чехию учиться. Осталось решить проблему с армией.

Итоги

Пишу всё это спустя ровно 3 месяца с первого дня работы. Буквально сегодня подошёл к концу мой испытательный срок. Меня должны официально устроить и повысить зарплату. Хочу дать пару советов новичкам.

Во-первых, не распыляйтесь, если уж взялись за какую-то область, то постарайтесь довести до логического конца. Повторюсь, лично я пожалел, что в какой-то момент метнулся из JS в PHP, только время потратил. Если уж и менять направление, то с концами, а не метаться туда сюда. Говорю лишь о начале обучения, уже состоявшемуся разработчику даже необходимо заглядывать в другие технологии и языки, тут и говорить не о чем.

Во-вторых, не забывайте оглядываться назад. Лично мне это помогает осознать масштабы пройденного пути, понять, что не зря старался. Сравните себя в начале пути и, к примеру, спустя месяц, два.

В-третьих, не забывайте про сон и физические нагрузки. Где-то месяц-полтора назад я начал больше спать, ездить перед работой в спортзал и бассейн, и чувствую, что голова стала ясней, работать стало легче.

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

Ну и конечно, большое спасибо Кириллу, Рахиму и всем, кто трудится над Хекслетом. Ребята, вы крутые! Я не знаю лучшей площадки для изучения программирования.

Всем успехов и удачи!

Аватар пользователя Евгений Бухаров
Евгений Бухаров 06 марта 2020
61
Рекомендуемые программы
профессия
от 25 000 ₸ в месяц
Разработка фронтенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 28 ноября
профессия
от 25 000 ₸ в месяц
Разработка веб-приложений на Django
10 месяцев
с нуля
Старт 28 ноября
профессия
от 14 960 ₸ в месяц
Ручное тестирование веб-приложений
4 месяца
с нуля
Старт 28 ноября
профессия
от 25 000 ₸ в месяц
Разработка приложений на языке Java
10 месяцев
с нуля
Старт 28 ноября
профессия
от 24 542 ₸ в месяц
новый
Сбор, анализ и интерпретация данных
9 месяцев
с нуля
Старт 28 ноября
профессия
от 25 000 ₸ в месяц
Разработка веб-приложений на Laravel
10 месяцев
с нуля
Старт 28 ноября
профессия
от 28 908 ₸ в месяц
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 28 ноября
профессия
от 39 525 ₸ в месяц
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
16 месяцев
с нуля
Старт 28 ноября
профессия
от 25 000 ₸ в месяц
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 28 ноября
профессия
новый
Автоматизированное тестирование веб-приложений на JavaScript
8 месяцев
c опытом
Старт 28 ноября