Найти в Дзене
Никита Кадилин

Начинаю путь программиста с нуля в 2023 году

Привет, дорогой читатель!

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

Я бы хотел начать свой рассказ с небольшой предыстории. Любовь к технике и информационным технологиям мой отец мне старательно прививал еще с самого детства. Первым языком программирования, изученным мной, оказалась Java 7. Изучалась она самостоятельно по соответствующей книге Гербарта Шилдта на любительском уровне, а знания тратились исключительно на написание мелких программ для собственного пользования.

В общем и целом, спустя несколько лет я оказался инженером качества с достаточными знаниями для должности специалиста по сертификации. Ежедневная работа с техникой и новыми технологиями, а также желание упростить некоторые рабочие процессы вынудили меня открыть книгу Стивена Прата "Язык программирование C++". Это оказалась любовь с первого кода... Весь процесс написания программ снова показался настолько увлекательным, что в какой-то момент я поставил себе цель, к которой, по моим меркам, иду уверенно и по сей день: стать программистом (превратить хобби в основной вид деятельности).

Первым делом, появились вопросы: "А что надо учить?", "Какие знания требуются?" и "Как их систематизировать?". Поиски в интернете, прохождение различных видео-гайдов давали определенные результаты, но порой на поиски некоторой актуальной информации требовалось много времени. Ощутимо не хватало времени и хоть какого-то наставничества. Всего для себя было поставлено две основные задачи: изучить синтаксис и приемы языка с учетом 11-го и 17-го стандартов; разобраться с алгоритмами.

Вторая задача казалась более выполнимой, чем первая. Тут помогали leetcode.com, e-maxx.ru, куча статей на habr.com и уже приобретенные до этого базовые знания алгоритмов. Со второй задачей были свои трудности, поэтому было решено попробовать пройти курсы по программированию на плюсах. Выбирал долго, и только в ноябре 2022 года я решился купить курсы в Яндекс.Практикум по специальности "Программист C++". Сказать, почему именно эта платформа - не могу, просто понравился тренажер и подход к обучению.

Началось обучение. В самом начале то и дело казалось, что ты делаешь слишком простые задания. Однако, вместе с этими простыми заданиями постепенно стали давать полезные знания и рекомендации. Если относится к учебе с ответственностью - то всех недель (всего обучение длится 9 месяцев), выделенных на каждый спринт - хватит. Так как я был очень заинтересован в результате - ни одного академа я не брал, но периодически приходилось учиться по ночам. Приблизительно с третьего месяца пошли уже более серьезные проекты, и степень увлеченности учебой достигла 100%. Материала, данного на площадке, хватает для решения задач, но не стоит ограничиваться только этим. Кураторы то и дело настоятельно рекомендуют различные статьи для ознакомления, но, к сожалению, не все это понимают.

В целом, впечатления остались положительные. Откладываются ли реальные знания, заявленные Практикумом? Да, но есть большое "НО": подходить к учебе надо как к чему-то, что необходимо тебе, а не кому-то еще. В обязательном порядке надо читать дополнительную литературу. Если есть вопросы - следует обсудить с куратором, порой они могут накинуть еще более интересные и понятные статьи. Не стоит ждать, что тебе в лоб дадут ответ. Надо понимать, что свободным временем жертвовать придется очень много.

Итак, что я имею на данным момент, что хоть как-то приближает меня к моей цели? С курсов я имею: навыки: Git, STL, Дебагинг, Юнит-тестирование, ООП, UML-диаграммы, RAII, Protobuf, CMake, ANTLR, C++20 Ranges, Библиотеки, Move-семантика; с самообучения: некоторую часть алгоритмов, QT на "студенческом" уровне (можно было бы добавить SFML, Boost, но тут, скорее, нужно не знание, а желание и умение читать документацию, пользоваться и компоновать); практика написания кода (в этом очень помогают советы и рекомендации ревьюеров).

Что делать дальше? Если честно - каждый раз кажется, что знаешь мало, и пытаешься узнать все больше и больше. Благо, всегда под рукой есть stackoverflow и habr. На данный момент я нахожусь в отпуске, после чего собираюсь воспользоваться "Карьерным треком" - небольшой помощью при трудоустройстве, но на чудо не рассчитываю, поэтому постоянно мониторю основные вопросы с технических собеседований и стараюсь быть готовым к алгоритмическому. Так или иначе, надеюсь, что у этой истории будет счастливый конец, и следующий пост будет про реальный опыт собеседования на позицию джуна в 2023.

Спасибо, дорогой читатель, что дочитал этот пост до конца! Очень надеюсь, что каким-либо образом помог или показал, как на деле проходит постепенная трансформация обычного человека в IT-шника.