Как я стал разработчиком и что бы сделал иначе, начиная путь заново: история студента онлайн-магистратуры ИТМО

от автора

Привет, Хабр! Меня зовут Влад Лундышев, мне 23 года, я учусь в онлайн-магистратуре ИТМО в партнёрстве с Яндекс Практикумом на направлении «Фронтенд-, бэкенд-разработка и ИИ-решения» и параллельно работаю Python-разработчиком. Если бы несколько лет назад меня спросили, что самое сложное на пути в IT, я бы ответил: изучить язык программирования и алгоритмы, освоить сложный стек. Сейчас я думаю иначе. Самым сложным оказалось найти первую работу, научиться взаимодействовать с командой и выстроить систему развития, которая не приводит к выгоранию. В этой статье я расскажу, какие подводные камни встретились мне на пути и что я бы посоветовал себе самому несколько лет назад.

Из маленького города в разработку: почему я вообще выбрал IT

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

В старших классах я окончательно понял, что хочу связать свою жизнь с IT. После школы поступил на бюджет в РТУ МИРЭА, в Институт искусственного интеллекта, на направление «Информатика и вычислительная техника».

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

Почему найти первую работу оказалось сложнее, чем вырасти до мидла

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

На втором курсе я начал искать стажировку. На это ушло несколько месяцев. Самыми сложными для меня были алгоритмические и поведенческие секции собеседований.

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

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

Почему софтскилы оказались важнее знания языка

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

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

Почему я решил поступать в онлайн-магистратуру

Совмещать работу и учёбу на очном отделении было очень непросто: я работал в гибридном графике, поэтому иногда приходилось пропускать семинары и лекции — это часто осложняло мне сессию.

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

На тот момент у меня был опыт работы около трёх лет и я уже был на позиции Middle Python Developer. Поэтому при выборе магистратуры мне было важно, чтобы была практика. У меня есть несколько друзей, которые уже учились в магистратуре ИТМО и на курсах в Практикуме, они хорошо отзывались об учёбе, это тоже повлияло на мой выбор магистратуры. 

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

Ещё из плюсов онлайн-магистратуры: можно самостоятельно планировать нагрузку, внутри дедлайнов самостоятельно распределять время. Лекции можно пересматривать, конспектировать, смотреть на высокой скорости и возвращаться к сложным темам. Многие процессы автоматизированы: например, часть заданий проверяется автотестами. Это экономит время и студентам, и преподавателям.

С какими трудностями я столкнулся при изучении языка С++

Для новичка C++ действительно сложный язык. Как минимум, у него очень сложная документация. Ещё в языке есть очень много конструкций и паттернов, которых нет, например, в Python или Java. Первое время во время учёбы я испытывал трудности из-за пробелов в знаниях и опыте на этом языке. Мне помогло то, что я тщательно конспектировал все уроки. Через какое-то время я уже ориентировался в чужом коде и мог спокойно выполнять задания. Ещё я решил, что буду решать задачи из дополнительной дисциплины «Алгоритмы и структуры данных» на C++ (вместо привычного питона). Это и практические проекты помогли мне получить hands-on опыт решения задач и привыкнуть к языку и его особенностям. 

Я пришёл к тому, что Python удобен, но скрывает многие детали (например, управление памятью через сборщик мусора). C++ заставляет разбираться в памяти, указателях и ресурсах, это делает разработчика более глубоким и понимающим.

Что бы я посоветовал себе несколько лет назад

Если бы я мог дать совет себе в начале пути, он был бы таким:

  • не торопиться, 

  • не переживать из-за карьерного роста, 

  • уделять больше внимания фундаментальным знаниям,

  • выбирать востребованное направление,

  • развивать навыки общения;

  • использовать современные инструменты, но не полагаться на них полностью.

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

ссылка на оригинал статьи https://habr.com/ru/articles/1062358/