Погнался за девушкой, а стал middle-разработчиком

image

Привет Хабр!

В этой статье хочу рассказать о своем опыте обучения на fullstack-разработчика и поделиться лайфхаками для поиска работы в IT как в России, так и за рубежом.

Я middle-разработчик в компании SimpleOne — это ESM-платформа для автоматизации бизнес-процессов. Здесь будет начало моего пути, несколько советов для тех, кто только собирается войти в эту сферу, мои фейлы (куда без них) и полезные материалы, которые мне помогли выучится и получить работу. Да, этот материал не будет наполнен кодом и техническими элементами, но надеюсь, кому-то он будет полезен чувствовать себя более уверенно на своем пути в IT и поможет адекватно подготовиться к поиску работы.

Обучение. Вуз или курсы?


Мне кажется, сегодня выбор между вузом или курсами — это вечный спор, ответа на который у меня тоже нет.

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

Когда настала пора закрывать первую летнюю сессию, а я не понимал Pascal ABC от слова совсем, стало грустно и закрались мысли о том, что программирование вообще не мое. В то время (2019 год) в моей жизни было еще одно приоритетное направление — девушка, которая уехала в столицу. Я был сильно влюблен и почему-то тогда решил, что IT — это самый быстрый путь найти работу в Москве.

imageВ августе, перед началом нового учебного года, я решил, что буду самостоятельно изучать C++. Тогда много знакомых мне программ были написаны на нем, и я подумал, что стоит начать именно с него. Я не учел тот факт, что брать его первым языком обычно не рекомендуют.

Изучение C++ для меня стартовало с книги-самоучителя «C++ для начинающих» Герберта Шилдта. Благодаря ему я сходу понял переменные, массивы, статическую типизацию и причины ее использования. Дойдя до массивов с указателями на указатели, стало уже сложновато (как оказалось, меня тогда смутила настройка локального окружения). Поэтому я перешел к плану Б и стал искать курсы по разработке.

На одном из форумов нашел упоминание тогда еще малоизвестной онлайн-школы Хекслет (это не реклама, у всех мнение разное о подобных курсах) и решил попробовать пройти курсы. Изучал я там уже не C++, а JavaScript, HTML и CSS, мы разбирали массивы, объекты, сети, React/Redux, архитектуру фронтенда, тестирование и backend. К каждому уроку на курсах прилагалось упражнение, где надо было писать код руками. Среду для разработки и тестирования кода своих проектов я разворачивал в облаке, как раз на виртуалках Serverspace.

Спустя недолгое время у меня на Github скопилось целое «портфолио» из мини-модулей, в которых было решение простых задач. Мы создавали маленькие консольные программы или веб-приложения, что заметно добавляло потом баллов при собеседованиях. Это показывало рекрутерам, что я могу довести от начала до конца сравнительно объемную задачу.

Дипломным проектом в вузе и на курсах был самописный онлайн-мессенджер, типа Slack, на JS (React) и Node.js (Fastify), с применением Python надстройки в виде анализатора текста в каналах для оценки корпоративного климата.

Какой вывод могу сделать. И в вузе, и на курсах меня научили многому. Но вуз (напомню, региональный) в моем случае — это больше про soft skills, где ты учишься коммуницировать с людьми из своей сферы и налаживать связи, а курсы уже более про hard skills. Но это в моем случае, есть разные вузы и разные курсы.


Для быстрого погружения в разработку и «набивания руки» советую попробовать code battle — это игра для разработчиков, где вы соревнуетесь в написании кода. Также есть площадка с играми для программистов — CodingGame, где нужно решать разные задачи с кодом (создание ботов, оптимизация и т.д.). Здесь также есть формат соревнований.

image

Оставлю тут еще подборку книг, которые мне помогли:

  1. Руководство по разработке ПО, основные этапы разработки: «Мастер-класс. Совершенный код» от Стива Макконнелла.
  2. Чтобы понять системы программного синтаксиса, и как набора алгоритмов превращается в программный код, прочитайте «Структура и Интерпретация Компьютерных Программ» (Сассман Джеральд Джей, Абельсон Харольд).
  3. Все про алгоритмы с примерами и иллюстрациями: «Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих» от Адитья Бхаргава.
  4. Если вы собираетесь заниматься автоматным программированием и созданием сложного ПО, то книга «Автоматное программирование» (Надежда Поликарпова, Анатолий Шалыто) может показаться вам любопытной.
  5. Как уже упоминал выше, с C++ мне помогла книга Герберта Шилта «C++ для начинающих».
  6. Еще, думаю, будет полезно изучить то, что касается операционных систем UNIX, и понять как с ними работать: «Unix и Linux: руководство системного администратор» (Эви Немет, Бэн Уэйли, Гарт Снайдер, Трент Хейн) и «Операционная система UNIX» (Ольга Стесик, Сергей Немнюгин, Андрей Робачевский).

Как я нашел первую работу?


Так как на курсы я пошел, чтобы найти работу, желательно в Москве, то спустя 2 недели после начала курсов я составил резюме, где постарался выжать максимум из имеющегося опыта и знаний, делая упор на «горящих глазах» и умении быстро адаптироваться.

Наличие файлов с кодом на Github вместе с персонально ориентированными сопроводительными письмами на откликах дало результат — я получил три приглашения на очные собеседования в Москву. Первые этапы собеседований я проходил вполне успешно — было много кода на JavaScript, иногда попадались и PHP с C#. За счет общего понимания происходящего и везения получилось впечатлить эйчаров.

Но со следующими этапами получилось не так успешно, так как примерно в этот же момент в моей любовной линии дела пошли не очень. Проявил себя слабо, и это вылилось в отказы. Хотя ошибки были очень примитивные и совершать их было совсем необязательно. Большинство вопросов сводилось к моему коду. Это были предложения провести небольшое код-ревью своих проектов и сказать, в каких местах можно их улучшить (вынести повторяющиеся конструкции в отдельную функцию, поправить именование переменных и т.д.).

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

Благодаря своему упорству в скором времени я устроился на свою первую работу в Волгограде. Суммарно я проработал там около года, попробовав и JavaScript, и C#. В основном я разрабатывал бизнес-решения на основе конструктора самописной платформы от нашей компании. Тогда я испытал все прелести правки багов на проде, горящих сроков и нездорового распределения ответственности между ролями внутри команды.

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

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

Как я искал работу за границей?


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

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

Думаю, про Ереван, особенностях жизни в нем и трудоустройства на Хабре описано уже все, что можно было. Например: плюсы и минусы жизни, подробный гайд по переезду и т.д. В моем же случае большой вес имели собеседования из Еревана, а не в него.

image

Там тоже знают английский неидеально


Скажу сразу, как и у множества программистов, имеющих локальный опыт разработки, моя оценка своих способностей на международной арене была необъективной. Было удивлением, что эйчары в иностранных компаниях, особенно не англоговорящих (Чехия, Польша, Германия) знали английский неидеально. И чаще всего мои навыки английского, который я оценивал как средние, были уместными там, где требовался С1 или Fluent English. Полагаю, это был своеобразный фильтр от ребят, которые приукрашивают все свои навыки в резюме в несколько раз, а на самом собеседовании кроме слов предоставить ничего не могут.

Разработчикам из СНГ зачастую не хватает уверенности. Даже имея хорошую техническую базу и опыт решения тяжелых задач, слабые soft skills закрывают двери.

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

Технически собеседования слабо отличались от российских: live coding, вопросы по каким-то малоизвестным инструментам языков и оценка поведения в различных рабочих ситуациях. Любимые вопросы:

  • Какая наиболее интересная рабочая ситуация случалась с вами на предыдущем месте?
  • Самое интересное задание?
  • Самый стрессовый момент?


В конце концов, в самом Ереване нашлась компания, которая занималась разработкой онлайн мессенджера и предлагала вполне приятную зарплату в $2000. Я даже успел подписать с ней оффер и познакомиться с коллективом. Однако в процессе юридического оформления выяснилось, что мое этническое происхождение все-таки волновало страну и оформиться как Россиянин я не мог.

Как я все-таки нашел работу


В мае 2022 года у меня был выбор — ехать в Грузию и пробовать себя там, уже без знания местного менталитета и языка, или же вернуться в Россию. Моя оптимистичная натура подсказала, что второй вариант на тот момент был самый подходящий и позволял, как минимум, привести в порядок свои документы.

Как ни странно, найти работу в России удалось после пары тройки собеседований. Какое-то время я думал пойти в Serverspace, но подходящих вакансий у них на тот момент не оказалось, поэтому они рекомендовали меня SimpleOne. Параллельно с защитой диплома я прошел собеседование к ним.

Имея хороший опыт общения с иностранными рекрутерами за плечами, у меня получилось найти общие точки с работодателем, ответить на вопросы и получить оффер. Я был рад наконец начать работать там, где есть возможность прокачивать свои инженерные навыки, больше практиковаться в языках JavaScript, CSS, HTML, но при этом иметь схожую общую бизнес-специфику с уже имеющимся опытом продуктивной разработки.

Вывод из всего этого: с девушкой из столицы мы разбежались, а вот войти в IT мне все-таки удалось.

Сколько времени у вас ушло, чтобы получить работу в IT? Поделитесь своим опытом для тех, кто только погружается в специальность.

image

© Habrahabr.ru