Как инженер холодильных установок увлёкся разработкой на C++: история Ивана Волкова
Много лет в качестве хобби Иван пишет программы для подбора холодильных установок. И если раньше использовал язык Delphi, то теперь переходит на C++.
Иллюстрация: Kouji Tsuru / Unsplash / Adjima / Rawpixel / Annie для Skillbox Media
Иван Волков
Россия, Москва
Пройденные курсы
Достижения
Освоил язык C++, успешно защитил диплом и теперь планирует внедрить полученные знания в свой проект.
Привет! Меня зовут Иван Волков. Я многодетный отец и инженер холодильных установок. А ещё вот уже более десяти лет, увлекаюсь разработкой: на своей основной работе создаю полезные программы — каталоги для подбора оборудования. Всё начиналось с простого интереса, а переросло в большую страсть. Специально для своего проекта я даже освоил язык C++, но останавливаться на этом не планирую.
«Программирование — прикладной навык»: как я начинал свой путь
Я окончил Бауманку по специальности «Холодильная, криогенная техника» и сразу после выпуска устроился инженером холодильных установок. Шесть лет в вузе подарили много полезных знаний, в том числе по программированию на Delphi, поэтому уже на второй год в компании я стал проявлять инициативу и писать программы для подбора оборудования.
На мой взгляд, программирование — прикладной навык. Чтобы использовать его эффективно, нужно иметь ещё одну, основную специальность. У меня это холодильные установки. Будучи погружённым в направление, я вижу, что именно могу улучшить и автоматизировать.
Компания, где я работаю, «Промышленные холодильные системы», не только производит установки, но и продаёт их. Наши клиенты — крупные юрлица. Например, Samsung. Поэтому однажды мне и пришла мысль: а почему бы не сделать удобную программу-каталог всего нашего оборудования? Чтобы облегчить выбор необходимых агрегатов заказчикам, да и внутренние процессы в организации упростить. На дворе был 2013 год.
Прежде чем прийти к руководству, я предварительно создал демоверсию программы. Идею мне одобрили, и я приступил. Делал как мог. Потихоньку писал программу на Delphi в свободное от основных задач время. Наконец в 2014 году выпустил: с тех пор мы с коллегами ею пользуемся, а я периодически её дорабатываю — добавляю новую технику, расчёты и другие функции.
«Как из Москвы дороги уходят в разные стороны, так и из C++ можно перейти в любое направление»
И всё же годы идут: в последнее время разработка просто улетела в космос. Пару лет назад я понял, что если хочу оставаться «в ногу со временем»: развивать свой продукт и в целом развиваться в программировании, то должен освоить новый язык.
К тому же я рассудил: если однажды уволюсь из компании и захочу передать ведение своей программы-каталога другому специалисту — вряд ли с лёгкостью отыщу разработчика на Delphi. Этот язык уже не в почёте. А значит, со временем, мне нужно перенести все функции на другой «движок».
Когда-то я интересовался языком C, поэтому самым логичным мне показалось развивать имеющуюся базу. Поизучал, посмотрел предложения на рынке и выбрал комплексное обучение по C++ от Skillbox.
C++ — классика программирования. Разработчики, владеющие этим языком, ценятся на рынке и получают хорошую зарплату. Я изучил предложения на сайтах по поиску работы.
Как из Москвы идёт много дорог в разные стороны, так и из C++ можно перейти в любое направление. Например, в программирование контроллеров. А с помощью фреймворка Qt — в разработку кросс-платформенного ПО.
Трудности в самоорганизации: какие и как я с ними боролся
Курс я проходил довольно долго, два года. Благодаря бэкграунду в программировании проблем с технической стороной практически не возникало (а если изредка и случались — выручал куратор). Зато сталкивался с трудностями иного характера — в самоорганизации.
1. Приходилось постоянно мотивировать себя не лениться и не пропускать.
Онлайн-обучение рассчитано на самостоятельных людей — вас никто не будет дёргать и напоминать: «Пройди урок, сделай домашнее задание». Нужно мотивировать себя самостоятельно: заранее выстраивать график, задаваться целями.
2. Было непросто находить свободное время для учёбы.
У меня большая семья: пять детей, ждём шестого. Дома всегда шумно. Проходить курс и выполнять практические задания я мог только ночами, после 21:00, или по утрам, до 08:00, пока дети спят.
3. Учился концентрироваться при любых обстоятельствах.
Иногда, конечно, занимался и днём, когда дети бегали вокруг. Например, на выходных. В таких случаях пытался максимально погрузиться в тему и абстрагироваться от внешнего шума. Или же выполнял только короткие задания и делал их в несколько подходов.
4. Чтобы не спасовать в последний момент, напоминал себе о больших целях.
Повторял себе: «Одна профессия — хорошо, а две лучше. Поэтому сиди и доделывай диплом, готовь презентацию, выступай». В сегодняшнем мире иметь лишь одну специальность — опасно. Последние события показали, что работу можно потерять в любой момент. Например, когда европейская продукция ушла с рынка, моя компания чуть не закрылась — благо успела перейти на китайские комплектующие.
Обучение — лишь один из возможных источников информации. Никто не запрещает вам задействовать несколько: интернет, видеоролики. Изучать, сравнивать, пробовать. Наоборот, это только улучшит результат.
О разработке дипломного проекта
В качестве дипломного проекта я разрабатывал поисковый движок на C++. Этакий аналог поисковой строки «Яндекса» или Google. Сперва было необходимо считать данные, запросы и тексты из файла JSON. Далее — составить формулу и словарь релевантности для набора слов. От правильности и подробности этого действия зависит точность результатов поисковой выдачи.
Чаты с однокурсниками нередко оказываются полезны: когда ввели санкции, россиянам заблокировали возможность устанавливать фреймворк Qt. А ребята в чате подсказали, что нужно просто включить VPN и с ним всё получится.
Три цели, которые двигают меня вперёд
Дальнейших планов у меня много: углубиться в C++, освоить Python и веб-разработку. Хочу овладеть целым стеком технологий — всё это поможет мне сразу с несколькими целями.
1. Переложить свою рабочую программу по подбору холодильного оборудования на современные «рельсы».
Пересобрать полноценное приложение. На клиентской части — на JavaScript, на серверной — что-то на C++, что-то на Python.
2. Взять в работу новые корпоративные проекты и сразу делать их на C++.
Недавно мне поступила задача: создать ещё одну программу под новое оборудование (кожухотрубные теплообменники), в которой можно было бы проводить конструкторский расчёт, осуществлять подбор оборудования из списка и применять фильтр под конкретные условия. Рассматривал вариант создания на C++ для своей же практики.
3. В будущем — найти работу джуниор-программистом.
Пока я не планирую и не могу сменить работу и полностью уйти в разработку: у меня пять детей, мы ждём шестого, и пока они ещё маленькие, мы с женой должны быть постоянно на подхвате. Отвести в садик, забрать, покормить. Моя текущая работа — в километре от дома, так что это очень удобно. Что до проектов для портфолио — пока «выгрызаю» себе на основной работе 🙂
«Самое главное — не терять интереса»: как я восполняю свой ресурс
На мой взгляд, самое главное в учёбе и работе — не терять интереса и любопытства. Именно эти стремления двигают вперёд. Ведь часто большие достижения и открытия часто начинаются именно с маленького «А почему бы мне не сделать…» Вот эта внутренняя неусидчивость и толкает вперёд и, как по мне, мотивирует сильнее любых денежных вознаграждений.
Да, иногда вы будете уставать, и это нормально: отдохните день-два или неделю, если нужно. Восстановитесь. И интерес вернётся. У меня именно так и происходит.
Секрет восполнения ресурса у каждого свой. Я всё своё свободное время провожу с семьёй: мы гуляем по паркам, ходим в музеи, встречаемся с друзьями. А ещё люблю кататься на велосипеде.