Код
#истории

«Нашёл новую работу в Германии, готовлюсь к переезду»: история разработчика на C++

Более 30 лет Виталий работает инженером — разработчиком электроники. Чтобы программировать контроллеры самостоятельно, он изучил язык C и C++.

Иллюстрация: freepik / rawpixel / macrovector / wirestock / Freepik / Daniel Hansen / Simone Hutsch / Unsplash / Дима Руденок для Skillbox Media

Виталий Иртегов

Россия, Пермь



Достижения

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


ссылки


Виталий рассказал:


«Программисты не стали ничего исправлять, я разозлился»: об основной профессии и приходе к C++

— Виталий, вот уже более 30 лет вы работаете инженером — разработчиком электроники полного цикла. Расскажите, как оказались в профессии?

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

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

— С тех пор вы предоставляете услуги «полного цикла производства». Что это значит?

— Что я ответственен за процесс от начала и до конца: от разработки до установки и последующей работы оборудования.

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

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

Получается, я один выполняю задачи целого завода вроде «ОВЕН» или Siemens 🙂 Только в меньших объёмах.

— Наверняка это очень трудозатратно. Не легче ли давать задачи другим исполнителям, а самому только контролировать процесс?

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

Встраиваемая модель в виде печатной платы
Фото: личный архив Виталия Иртегова

К тому же у меня был негативный опыт: в 2016 году я получил два больших заказа, где требовалось создать сложные устройства и применить в них программирование на C. И только на нём. Языком я не владел, поэтому привлёк сторонних программистов. Они написали программу, я прошил её в «железе», отдал на объект… и устройство не заработало как надо.

Написал ответственным программистам, попросил разобраться и исправить, а они мне: «Это в вашем железе дело, мы ничего делать не будем». Разозлился тогда страшно. И решил изучить язык C сам.

«У меня нет субботы и воскресенья, работаю каждый день»: об обучении и дисциплине

— Какой бэкграунд в языках программирования у вас был до изучения C?

— BASIC, Delphi, ассемблер — старые языки, тогда почти все изучали только их.

— И как продвигалось ваше погружение в C и его ответвления?

— Около пяти лет изучал его самостоятельно. Получалось хорошо: я уже сам писал программы, заливал их в контроллер, устанавливал на объекты и принимал все правки заказчиков по улучшению функциональности.

В 2021 году понял, что нужно подтянуть знания по C++ (шаблоны, паттерны, написание классов) и поэтому приобрёл курс. Меня зацепило, что практические работы будут проверять кураторы.

— А почему вы в целом для своих задач выбрали именно язык C и C++? Были ли более простые альтернативы?

— Нет, сегодня почти всё программное обеспечение для современных микроконтроллеров пишется на C или C++. Небольшой экскурс в историю: самые первые, PIC-контроллеры программировались на ассемблере. Следующими были AVR-контроллеры, для них использовался язык C. Сейчас пришло время STM-микроконтроллеров, вот под них уже идёт C++ и C. А ещё набирают оборот Altera — для них подходит только C++, причём весьма специфический.

— Как быстро вам удалось пройти обучение?

— От начала и до защиты диплома прошло около полутора лет.

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

— Для такого объёмного обучения полтора года — это довольно быстро. Как удавалось совмещать учёбу с основной работой? Тем более, как я понимаю, она у вас ненормированная.

— У меня и правда нет субботы и воскресенья, работаю каждый день, с утра и до самого вечера. Думаю, секрет успешного совмещения в строгой дисциплине — если сказал себе: «Надо выполнить задания», значит, надо. Отступать нельзя.

Я работал на производствах 15 лет: необходимость каждый день рано вставать и идти на работу сформировала привычку. Прокрастинация и лень мне несвойственны.

Ещё одна хитрость: я каждый день планирую. На день-два вперёд. Распределяю под любую задачу конкретный временной отрезок. Это сильно мотивирует: с точным планом оправдание, вроде «не хватило времени» не работает. Как его может не хватить, если всё заранее рассчитано?

«Придумал классный коммерческий проект с использованием C++, но реализовать его не удалось»

— Каким было ваше итоговое задание? Что разрабатывали?

— Дипломный проект у всех был один и тот же: нужно было разработать поисковый движок на C++. Аналог поисковой строки «Яндекса» или Google.

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

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

— В итоге всё прошло успешно и вы защитились?

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

— Удалось ли найти единомышленников на курсе?

— К сожалению, именно коммуникация с однокурсниками не сильно складывалась. Хотя даже сам инициировал внеучебные профильные активности.

— Как жаль. А расскажите, что за проект вы придумали?

— Один знакомый пришёл ко мне и говорит: «У меня тут есть станция LoRa, мне не нужна, не хочешь что-то с ней придумать?» Я согласился, и мы договорились, что если я её запрограммирую и использую по назначению, то просто буду делиться с ним процентом от доходности. Вот и задумал коммерческий проект.

В чём суть: ставится станция (она небольшая — 30 на 30 сантиметров) на территории какого-нибудь жилого дома, заключается договор с управляющей компанией, после чего через станцию проходят все данные со счётчиков дома. Газа, воды, температуры, электричества, охраны, пожарных сигнализаций и прочего. Станция всю эту информацию собирает — очень удобно.

— И как вы видели реализацию проекта?

— Нужно было поставить на станцию одноплатный компьютер Raspberry Pi и, самое сложное, написать на C++ сервер взаимодействия вот этой станции со всеми блоками-датчиками, чтобы информация верно и оперативно передавалась.

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

Одно время Виталий работал наставником в школе. Вместе с учениками они создавали инсталляции со светодиодными лентами на управлении. Ленты крепили на такие кубы
Фото: личный архив Виталия Иртегова

«Готовлюсь к переезду в Германию»: о будущем

— Виталий, какие планы на будущее строите? Чего хотите достичь?

— Сейчас моя жизнь делает крутой поворот: летом посредством большого интернета нашлась успешная и перспективная компании в Германии, которую я заинтересовал как специалист.  Они как раз искали человека для разработки с уверенными знаниями электроники. Прошёл собеседование, профильное тестирование и получил оффер. Заключил контракт. Сейчас жду свою визу D и переезжаю. Работать буду на заводе с довольно сложными приборами.

— Как готовитесь?

— Последние два месяца активно учу немецкий язык. Цель даёт силы. А так я раньше вообще ни одного иностранного языка не знал.

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

— Как планируете совмещать? Это, скорее всего, будет очень непросто.

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

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

Научитесь: Профессия Разработчик на C++ с нуля Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована