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

Точка отсчёта

Начну с момента, когда я только начал поиски. У меня за спиной была прочитанная книга Пола Бэрри «Изучаем программирование на Python», почти пройденный курс «Python-разработчик» в Яндекс Практикуме, а ещё немного опыта сверху — тогда мы вместе с одногруппником писали сайт для Joystick161, магазина видеоигр в Ростове. Я дружу с его директором и сам предложил ему помощь. Для меня это было полезной практикой, а у него появился новый сайт вместо сделанного в конструкторе.

Сайт, который мы сделали для моего друга

В остальном у меня был тот же набор знаний, что и у большинства не самых сильных студентов. Я работал в центре диагностики и мониторинга устройств инфраструктуры РЖД, там была бешеная загруженность, далеко не в рамках «с 8 до 17 часов». На освоение максимума информации просто не было времени. Поэтому мой стек был скромным: я знал базу Python (как окажется скоро, не очень хорошо), благодаря проекту подтянул Django и Django REST Framework. Было общее понимание CI/CD, Docker.

Попроще стало на этапе работы над дипломным проектом. Впереди оставались в основном проверки — я понял, что успеваю, и решил искать работу.

Первый оффер и увольнение через два дня

Я сделал резюме и стал откликаться на hh.ru и «Хабр Карьере». Дёргал всех знакомых из IT — вдруг где-то нужны разработчики или хотя бы стажёры. Мониторил тематические каналы в Telegram и сообщества IT-компаний в Ростове, чтобы не пропускать митапы. На них знакомился с IT-специалистами, рассказывал о себе, спрашивал о вакансиях, просился на собеседования. На тот момент всё было безуспешно, но в будущем такая тактика мне помогла.

На hh.ru пришлись где-то 70% моих усилий. Ещё 10% — на «Хабр Карьеру». А оставшиеся 20% в равной степени распределились между источниками поменьше. Всего я насчитал 297 отправленных откликов. Ответов было немного, но что меня удивило: первое предложение я получил всего через две недели.

Небольшой местной компании требовался Python-разработчик на джуниорскую позицию. Стек совпадал с моим. Мне прислали тестовое задание.

Тестовое задание

Я отправил HR готовый API и получил ответ, что нужна ещё и вёрстка. Я нарисовал шаблоны в Bootstrap и настроил импорт данных через Django. В итоге тимлид согласился, что сам ошибся в формулировке тестового. Доработать проект было легко, но сейчас я понимаю, что уже в тот момент мне стоило насторожиться.

Так я получил оффер. Первый день показался ничего — меня добавили в Jira, рассказали про задачи. Я решал простенькие кейсы: прикрутить к сайту авторизацию, написать пару микросервисов на DRF. Поначалу мне нравилось. Закралась мысль: неужели я так просто нашёл свою первую работу? Но потом наступил второй день.

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

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

Тимлид подтвердил, что разработчик в компании только я и код там больше никто не пишет. В общем, с таким же успехом я мог и сам работать на фрилансе. И какой смысл? В общем, первый опыт был негативный, и из компании я ушёл.

Попал на интервью — и в ловушку новичка

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

И это был мой первый и самый яркий факап. Я серьёзно готовился, повторял Django и DRF, думал, как решать продуктовые задачи. А меня гоняли только по базе Python, и оказалось, что у меня в ней куча пробелов.

Например, меня попросили написать маркером на доске простенький алгоритм. Есть строка из четырёх слов, задача — развернуть её задом наперёд. Мне нужно было написать на доске код и рассказать, как он работает. Я простоял в ступоре 10 минут, хотя, конечно, знал, как она решается. Я так привык работать в IDE, где всё подсвечивается, что из головы, как выяснилось, вытянуть элементарные знания мне не под силу.

Элементарный код, который мне не удалось написать без IDE

Были и каверзные вопросы. Например, спросили, могут ли ключи в словаре быть изменяемыми. Я ответил, что не могут. Но вдогонку приходили новые и новые вопросы. А кортежами? А если кортеж из списков? И тут легко посыпаться, особенно если разволноваться.

Мне до сих пор обидно, что я туда не попал, но зато это собеседование подсветило все мои пробелы. Решил, что, пока не подтяну основы, на интервью ходить не буду.

Как мне почти удалось устроиться DevOps-инженером

Я повторил основы и стал откликаться заново. Я искал вакансии везде, где только мог, подключал нетворкинг, ходил на несколько митапов каждый месяц. И на одном из них меня осенило. Зачем общаться только с разработчиками? Ведь на мероприятия ходят и HR-специалисты, и они, в отличие от программистов, всегда знают об открытых вакансиях в компании.

Гостем на том митапе был представитель HR-отдела из ростовской компании Zuzex. Я набрался смелости, познакомился и спросил о вакансиях. Оказалось, что компания ищет DevOps-инженера, причём готова обучать джуниора. Я заинтересовался.

Тестовое задание

В тестовом задании понадобился стек, которого у меня не было. Настройка phpMyAdmin и триггеров через Elasticsearch… Это я видел впервые. Начал гуглить, писать знакомым, спрашивать ChatGPT. И всё решил.

На собеседовании спрашивали базу Python. Я, уже наученный горьким опытом, проверку не завалил. По теории DevOps были проблемы, потому что это всё-таки не моя сфера. Я не прошёл, но зато получил честный фидбэк и узнал, как подтянуть навыки по DevOps. Мегакрутой опыт и, как мне на тот момент показалось, уже какой-то успех.

Выгорание и новое резюме

После хорошей, но неудачной попытки я вернулся к поискам и столкнулся с тем, что hh.ru как не работал, так и не работает. Нетворкинг тоже — знакомые уже перебрали все вакансии, и мне ничего не подошло, отличался либо стек, либо требуемый уровень опыта. Время поисков на тот момент приблизилось к трём месяцам, а количество откликов уже перевалило за 200. Кроме этого, я ушёл из РЖД и занимался только подработками. Всё это очень давило. Поиск работы был изнурительным. Я начал выгорать.

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

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

Сейчас описание проектов в моём резюме выглядит так

На отклики стали отвечать чаще. Потом, когда я спрашивал у работодателей обратную связь, узнал, что многие из них относятся скептически к выпускникам онлайн-школ. Они объясняли это тем, что многие студенты не развиваются после курсов. Кто-то мог и вовсе схалтурить на обучении. Ну и выпускников просто много — если кандидатов десятки, то среди студентов с похожими резюме и проектами будет трудно кого-то выделить.

А ещё я расширил выборку и искал вакансии не только Python-разработчиков, но и DevOps-инженеров, инженеров по тестированию. Перестал искать предложения только в Ростове и начал рассматривать удалённую работу.

Наконец, удача — как я устроился на работу

После очередного отклика меня позвали на собеседование. Это была вакансия инженера по тестированию в компании «ТТК Цифровые решения». На первой встрече проджект-менеджер спрашивал меня, как я учился, что освоил, как нахожу общий язык с коллегами.

В тестовом задании нужно было протестировать программу. Что-то вроде калькулятора, который высчитывает площади фигур и отрисовывает их. Нужно было найти 28 ошибок в интерфейсе. Я быстро сориентировался, нашёл 20-часовой курс на Stepik, прошёл его за один день и решил тестовое. Ну как решил... Нашёл 27 ошибок из 28, упустив самую очевидную — что фигура отрисовывалась не по центру. Тем не менее меня пригласили на техническое собеседование.

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

Последний этап оказался для меня самым простым. На нём тимлид задавал вопросы по теории. После этого меня погоняли по софтскилам и снова пообещали связаться. Через два часа я получил оффер.

Я работаю в «Цифровых решениях» уже почти полгода. Сейчас я занимаю должность ведущего специалиста в области тестирования. Наша компания разрабатывает CRM-системы — у нас много госконтрактов, так как российские организации переходят на наше ПО с зарубежного. Например, мы работаем с РЖД, «Газпромом». И для каждой компании разрабатываем уникальные решения.

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

Спустя шесть лет работы в РЖД я поймал себя на мысли, что наконец-то занимаюсь тем, что мне нравится. И это мой самый крутой результат

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

Как продолжать искать работу, если вы новичок и вот-вот опустите руки

Какие-то из моих рекомендаций прикладные, и ими можно руководствоваться в процессе трудоустройства. Другие — фундаментальные, и они говорят о том, насколько просто вам будет как искать работу, так и работать в IT.

Учите базу. Работодателю вряд ли будет интересно, насколько глубоко вы знаете фреймворки и погружены в продуктовую разработку. А вот базовую теорию языка спросят наверняка, потому что это фундамент. Без прочного фундамента всё развалится. Как у меня на том злосчастном интервью в WIS Software.

Вот как я повторял теорию:

  • Перепрошёл уроки Практикума, в частности вводную часть и теорию объектно-ориентированного программирования.

  • Прошёл курс Сергея Балакирева «Добрый, добрый Python» на Stepik — он бесплатный, и в нём есть все основы.

  • Перечитал «Изучаем Python» Марка Лутца.

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

Поделюсь своим набором подписок в Telegram и VK, где я искал вакансии, новости о митапах и просто интересные посты:

Ещё один лайфхак: если видите что-то интересное на hh.ru, не ограничивайтесь одним откликом.

Как делал я: находил вакансию от крупной компании, например «Иви». Откликался, как и другие 250 человек. А потом дублировал отклик на странице «Вакансии» на сайте (на них часто пишут почту HR-отдела) или писал HR-специалистам напрямую, если они оставляли контакты на «Хабр Карьере». У меня такое срабатывало — видимо, такой путь проходили далеко не все из 250 кандидатов.

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

Многие начинающие бэкенд-разработчики думают, что для любой наглядной работы нужна вёрстка, но это не проблема. Например, для Joystick161 мы нашли готовый вариант с вёрсткой, JavaScript, анимациями за 1,3 доллара на стоке. Переписали под себя, и получился интересный проект для портфолио.

Готовьтесь жертвовать свободным временем, даже если обучение позади. Нам, студентам, говорили, что будет непросто. Что придётся постоянно сталкиваться с новыми знаниями и не раз захочется всё бросить. Что нам не будет хватать времени на себя, хобби, личную жизнь. И если не гореть этим делом, а думать только о деньгах, то мы быстро устанем — и ничего не получится. Я согласен.

Если идёте в IT, то всегда будьте готовы отказаться от свободного времени, чтобы сходить на очередной митап, посетить вебинар или посмотреть видео на YouTube. Без подобных жертв я, во всяком случае, себя в этой работе не вижу.

Не бойтесь нового. Начну с кейса. Когда я пришёл в «Цифровые решения», все автотесты там писали на Katalon, а я в первый месяц занимался только ручным тестированием. И мне очень хотелось писать тесты на Python! Тогда я нашёл фреймворк Selenium. Изучал его в свободное время — приезжал перед началом рабочего дня или оставался после. Писал кейсы на связке Python–pytest–Selenium и проверил новое решение на одной из CRM-систем, ещё не покрытой тестами. Повторюсь, всё это было для меня в новинку.

Тимлид решение одобрил — такие тесты работали быстрее и были кросс-платформенными, запускались в разных браузерах. Так я убедил команду, что нам пора перейти на Python. И благодаря этому «словил» карьерный рост.

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

Нужно не бояться делать ошибки и постоянно изучать новое. Какое бы круто онлайн-образование вы ни получили, полученный набор знаний не делает вас готовыми к работе. Вам всё равно придётся сталкиваться с новыми технологиями, инструментами. И вы должны быть готовы их осваивать.