Денис Злобин был физиком и занимался физикой ядерных реакторов. Он не собирался уходить в IT, просто решил изучить язык C++, чтобы помогать своему НИИ с задачами по программированию. Новая тема затянула, Денис пошел на курсы и нашел первую работу уже через полгода. Он рассказал, почему брал отпуск за свой счет ради учебы и чем ему это помогло, а также возможно ли сменить две работы в новой профессии за месяц.
Что я делал раньше
До того как стать C++-разработчиком, я работал научным сотрудником в НИИ. Первая работа появилась еще в вузе, я был лаборантом в научно-исследовательских проектах при университете. Университет делал большой государственный проект и привлекал студентов на временную работу.
После вуза я отслужил в армии, а потом пошел на завод инженером. Туда взяли без опыта: было достаточно теоретической подготовки и знания нормативных документов, которые я изучил за пару месяцев. Завод производил ядерное топливо, а я следил за соблюдением норм безопасности.
Когда изучать было уже нечего, стало скучно. Через восемь месяцев я уволился и ушел в НИИ. Это был классический научно-исследовательский институт, с длинными коридорами и фикусами, как НИИЧАВО у Стругацких. Мы занимались физикой ядерных реакторов . Поначалу я был физиком, проработал около шести лет, а затем снова достиг потолка.
Одним из продуктов нашей лаборатории была программа для проведения инженерных расчетов. Начались проблемы с программистами на C++, которые занимались бы графической оболочкой и расчетной моделью программы . На работе не требовали, но я решил изучить язык и попробовать себя в новом направлении.
Я читал книги, смотрел уроки, делал типичные ошибки. Дело в том, что C++ сильно изменился за последние десять лет, а пособий на русском языке, которые были бы актуальными, очень мало. Я же читал все, в том числе старые учебники, 2000-х годов. Гуглил что-то вроде «самые лучшие книги по C++», по итогу я могу порекомендовать только одно пособие. Оно немного тяжеловатое для новичка, но мне помогло.
Язык оказался очень сложным: много работы с памятью, указатели, ссылки, сложный инструментарий. Что-то читал на работе, занимался дома. Потом взял одну из висевших задач по C++ в НИИ и выполнил ее. Это была программка, которая проводила вычисления, и ее нужно было интегрировать в другой программный продукт.
Я загорелся новой сферой. Сделал еще пару рабочих задач, в процессе пообщался со стороной заказчика: это была большая система, в которую интегрировалась наша программа. Программисты заказчика использовали другие методы и непонятный мне синтаксис. Я понял, что есть какой-то другой C++, о существовании которого я, можно сказать, не знаю. В середине 2021 года я решил, что нужно подтянуть знания, почитал отзывы, выбрал школу и пошел учиться.
Читайте также: Кому и для чего нужен C++?
Что мотивировало меня заниматься по шесть часов в день
Поначалу я не собирался менять работу — пошел учиться, чтобы подтянуть знания и более качественно выполнять задачи. Первый месяц был простым и понятным, так как мне была более-менее знакома конструкция языка.
Постепенно углублялся, и становилось сложнее: например, очень непросто было с темой алгоритмов и структур данных. Даже брал неделю за свой счет на работе, чтобы посидеть и разобраться. Занимался по шесть часов в день, уставал, но это принесло плоды: многие следующие модули опирались как раз на структуры данных.
Для меня оказался не особо интересным SQL, но это потому, что я не видел, где его можно применить на моей работе.
Через полгода после начала курса я уволился. Причин было много, основные — длительные командировки и привязка зарплаты к ним, не ездишь — почти не получаешь денег. К тому моменту я выгорел и хотел стабильной зарплаты, на самой работе особо не появлялось каких-то профессиональных вызовов, часто становилось скучно, не было специалиста, с которым я мог бы обсудить то же программирование.
Я нашел работу за две недели и уже успел сменить ее на новую
После увольнения я начал готовить резюме. До этого какое-то время уже смотрел вакансии и читал про рынок IT, так что понимал, какие навыки требуются, на какой доход примерно можно рассчитывать.
В резюме рассказал, что получил опыт программирования еще на прошлом месте работы, описал проекты, которые делал. В процессе поиска понял особенность: если я стеснялся в процессе общения с работодателем, что я чего-то не умею, то беседа не складывалась. Все хотят увидеть уверенного в себе специалиста, хоть и с минимальным опытом, главное, чтобы человек мог с уверенностью сказать: да, я это знаю. Поэтому я стал говорить на собеседованиях: да, я это знаю, я это сделаю, дайте тестовое, я его выполню. После этого и, конечно, же после успешного выполнения тестовых заданий мне стали приходить офферы.
А вот советы вроде подаваться на стажировки и писать сопроводительные письма мне не подошли. Это отнимало много времени и в моем случае не приносило ничего. Я просто разместил резюме на hh.ru и стал рассматривать вакансии с более-менее подходящим мне опытом и стеком технологий, которые мне понятны.
Кстати, уже после устройства на работу мне стал понятен еще один момент: соискатель не обязан знать все, написанное в вакансии. Этот список скорее показывает, с чем человеку придется работать, с чем он столкнется. hh.ru — платный сайт для бизнеса, размещение каждой вакансии стоит денег, и небольшие компании составляют вакансии, пытаясь показать весь стек, который у них есть.
За две недели я пообщался примерно с десятью компаниями. Я понял, что есть два вида собеседований: на одних — обсуждают с тобой инженерные традиции, ищут точки пересечения, пытаясь понять, подходите ли вы друг другу, на других — сходу задают вопросы по теории, не сильно интересуясь предыдущим опытом работы.
Что касается C++, то все, что спрашивали, было в учебном курсе. Всего я сделал четыре тестовых задания в разные места, все они были на знания структур данных и объектно-ориентированного программирования. По результатам трех заданий мне предложили офферы. По итогу я выбрал наиболее интересную для меня компанию.
Это была компания Dannie, которая разрабатывала микроконтроллеры для серверов на процессорах «Байкал». Свежая технология, было интересно. Я устроился разработчиком встраиваемого ПО по гибридному графику. Поначалу было сложно, но постепенно втянулся, ребята из команды и тимлид активно помогали. Однако, этой весной производители электроники попали под санкции. В итоге направление, в котором я работал, приостановило деятельность.
Мне повезло: в это же время мой знакомый устраивался в другую компанию, и там были нужны разработчики с опытом инженерии в энергетике. Так как я пошел на собеседование по рекомендации, не было технических вопросов и тестового, мы просто обсудили общие вопросы, и я вышел на работу.
Читайте также: Ведущий разработчик программ для беспилотных автомобилей в Luxoft рассказывает, как заставить машину ездить с помощью C++
Что я делаю сейчас
Я работаю в компании ТВЭЛ, которая занимается производством ядерного топлива. По иронии судьбы завод, на котором я работал инженером на своей первой работе, принадлежал как раз ей.
Я главный специалист, особенности рассказать не могу из-за специфики компании. Занимаюсь разработкой программного продукта для нужд производства. У нас хороший коллектив, собирались профессионалы, совершенно разноплановые специалисты. Мне дают одну задачу на период, сделал — перешел к следующей. Однозначно стало комфортнее: больше нет долгих командировок, провожу выходные дома, финансовое положение стало более стабильным.
Курс еще не закончился, и я очень жду одну из последних тем: создание графического интерфейса с помощью C++. После этого станет понятнее, куда я хочу развиваться: в создание графических интерфейсов или в backend.