Из инструктора космонавтов в Python-разработчика: зачем менять космос на карьеру в IT с нуля
Павел Солошенко — fullstack-разработчик в Центре экспертизы и контроля качества медицинской помощи и выпускник курса Нетологии «Python-разработчик» рассказал tutortop, как начать карьеру в программировании после 30 лет, справляться с падением мотивации и доводить начатое до конца, а также развиваться в Fullstack-разработке.
Как пришла идея стать разработчиком, если мечтал работать учителем
Почти 10 лет я проработал в «Центре подготовки космонавтов» в городе Щелково, Московской области. Я был инструктором экипажей космонавтов — проводил у них различные занятия, лекции и тренировки. Последние несколько лет я инструктировал экипаж корабля «Союз» и был на связи с космонавтами в реальных полетах.
Эта деятельность уникальная и очень интересная и разноплановая. Но меня настораживало, что моя специализация слишком узкая и редкая в России. И если в сфере космонавтики произойдут кардинальные изменения и полеты прекратятся, то я останусь без работы. А ничего другого я не умею. Тогда мне было 32 года, и я решил попробовать что-то новое, пока еще могу контролировать ситуацию и влиять на свою жизнь.
Раньше я мечтал работать в школе. Мне нравилось работать с детьми, я с удовольствием проводил для них лекции о космонавтике. Так я устроился в программу «Учитель для России», где каждый человек может стать учителем. Единственным условием участия была необходимость преподавания в какой-нибудь российской глубинке. И я уехал работать учителем английского языка в маленькую сельскую школу под Великим Новгородом. Но пробыл там всего два месяца — одну школьную четверть.
Оказалось, что разница между привычным крупным городом и селом гораздо больше, чем я себе представлял. А работа в школе была тяжелой — поведение и воспитание школьников оставляли желать лучшего, и мне с ними было трудно взаимодействовать. Я даже сорвал голос. Стало понятно, что так дальше работать нельзя и нужно увольняться. Это был сложный момент, я находился в другом городе и думал, как же дальше быть, ведь я никому не нужен, а на старую работу возвращаться не хочется.
Позже я обдумал ситуацию иначе. При трудоустройстве в центр космонавтов я ничего не знал об их работе. Но за несколько лет я стал ведущим специалистом и достиг в этой профессии всего, чего я хотел. Это значит, что и теперь я смогу все и ничто не помешает мне освоить новую профессию. На инструктора экипажей космонавтов меня учили два года — столько же люди учатся в магистратуре. Сейчас мне нужно было переучиться гораздо быстрее. И я решил учить программирование. Я и раньше пытался его осваивать, но всегда не хватало мотивации дойти до конца.
Я понимал, что мне предстоит трудный путь — с нуля дойти до специалиста высокого уровня. Но у меня был уже предыдущий опыт, и я понимал, что достаточно вкладывать усилия, влиться в комьюнити единомышленников, общаться и обмениваться знаниями. И ничто не мешает пройти этот путь проторенной дорожкой, но только в другой отрасли.
Почему я выбрал язык Python и как искал онлайн-школу
Я вообще ничего не знал о Python, а со школы помнил про языки С и С++, но не более того. Я гуглил и искал информацию, какие сейчас есть языки программирования и где они применяются. В большей степени интересовало, какой язык лучше выбирать в качестве первого. Так мой выбор остановился между Python и Java.
Оба языка привлекали тем, что они перспективны, высоко ценятся и оплачиваются на рынке и на протяжении многих лет занимают лидирующие позиции в мировых рейтингах языков программирования. Я попробовал немного покодить на Java, и мне он совсем не понравился. Так и решился вопрос о выборе в пользу Python.
Изучать язык с нуля я решил сразу на специализированном курсе, хотя на YouTube можно найти множество бесплатных роликов для самостоятельного изучения. Но я выбирал именно онлайн-платформу, потому что рассчитывал попасть в комьюнити — сообщество преподавателей и других студентов, которые помогают друг другу.
Онлайн-платформу я выбирал по нескольким критериям. Во-первых, школы предлагают разные системы оплаты и поступления на курс. На одной из платформ нужно было сначала сделать тестовое задание — достаточно сложное для человека с нулевым бэкграундом в программировании. Зато потом ничего не платишь — тебя обучают бесплатно, с тобой занимается персональный преподаватель, а по окончании курса гарантировано трудоустройство.
Но с момента начала работы по новой специальности необходимо будет в течение двух лет платить онлайн-школе около 10-15% с каждой зарплаты. Сначала мне такая система показалась классной. Но потом я прикинул примерную сумму, которую я буду получать как специалист, посчитал проценты, которые я выплачу за 2 года, и итоговая стоимость обучения оказывалась очень высокой.
Во-вторых, при знакомстве с онлайн-платформами меня настораживали заверения о «гарантированном трудоустройстве» — это было странно и не понятно, как они могут такое гарантировать. Ни одна образовательная компания не может такого сделать на 100%. Поэтому такие онлайн-школы я стал обходить стороной.
В-третьих, я обращал внимание на соотношение содержания учебной программы и стоимости курса. Цены на примерно одинаковые курсы по Python в разных онлайн-школах существенно различались, хотя более дорогой вариант мог состоять только из записанных видеороликов с преподавателем. И не было уверенности, что точно такие же ролики нельзя найти в YouTube.
В итоге я выбрал курс Нетологии по нескольким причинам:
- Он стоил в два раза дешевле, чем у других крупных платформ
- Оплатить обучение можно было по частям в рассрочку
- Программа включала в себя вебинары, где можно было вживую пообщаться с преподавателем и задавать ему вопросы по ходу лекции или после нее
А еще мне понравилось, что можно вернуть деньги за обучение, если курс окажется трудным или какие-то другие обстоятельства помешают проходить обучение.
Как учиться в онлайне и не потерять мотивацию
Раньше как такового дистанционного обучения у меня не было, кроме подготовки к программе «Учитель для России» — сюда входило очень много лекций, которые проходили в Zoom-конференциях. Поэтому я знал, что собой представляет онлайн-формат, и он меня устраивал. К тому же, я начал обучение в декабре 2020 года, когда вовсю бушевал ковид, и онлайн-обучение было кстати.
Первое время учеба мне казалась слишком легкой. Я даже просил координатора курса перевести меня на 1 группу вперед, так как основы программирования на Python я уже прошел самостоятельно. Но посередине первого блока начался модуль по системе контрольных версий — я погуглил, и описание показалось страшным. Это был очередной момент неуверенности в том, что смогу осилить новое. Так что я остался в своей группе и изучал все постепенно без попыток убежать вперед.
Программа курса длилась 9 месяцев. И за это время пришлось не раз испытать взлеты и падения. Впервые серьезный спад мотивации случился спустя 4 месяца обучения. Все шло хорошо, я во многом чувствовал себя уверенно. В конце блока «Продвинутый Python» была лекция по подготовке к собеседованию. Мне показалось, это сигнал — пора делать резюме и выходить на рынок труда. Раньше я никогда не искал работу на HeadHunter, не проходил собеседований, поэтому мне было страшно начинать поиски работы.
После лекции я составил резюме, начал искать подходящие вакансии и сильно расстроился — в одной только Москве было 11 000 вакансий для Python-разработчиков, но моего текущего уровня подготовки было недостаточно. Хотя я рассчитывал, что уже могу трудоустроиться. Тогда я стал сравнивать программу курса с требованиями, которые указывали в тексте вакансий. И обрадовался, что все недостающие знания еще впереди курса. Это помогло справиться с разочарованием, и я продолжил обучение. Но уже с большим фокусом на ключевые навыки, прописанные работодателями.
Помощь комьюнити, участие в реальном проекте разработки и новая работа
Как я и думал, комьюнити курса сильно помогает в процессе обучения. Все общение проходило в Slack или Telegram-чатах, где в обсуждениях участвовали и преподаватели, и одногруппники. Если у меня что-то не получалось, я всегда мог задать вопрос «коллегам». Конечно, у преподавателей не всегда хватает времени погрузиться в каждую проблему студентов, потому что их в группе много. Но даже когда мы с одногруппниками сами что-то обсуждали, нам удавалось найти множество решений к задачам.
Еще большую поддержку оказывали аспиранты — выпускники, которые уже закончили обучение и остались на курсе помощниками для студентов. На последних блоках курса с одним из аспирантов мы просидели 6 часов в Zoom, разбирая накопившиеся у меня вопросы. А теперь я сам аспирант, и это большой плюс, потому что, объясняя что-либо студентам, я возвращаюсь к пройденному материалу, вспоминаю его и оптимизирую свои знания.
После окончания курса пришлось снова столкнуться с отказами работодателей. Основной причиной были — отсутствие опыта в программировании, а мой предыдущий опыт не играл роли. Пока я унывал из-за отсутствия откликов, Нетология запустила проект по разработке интернет-магазина собственного мерча. Основная идея проекта заключалась в том, чтобы созданием сайта занимались сами студенты с различных курсов — маркетинга, дизайна, аналитики и программирования. Я откликнулся, прошел небольшое собеседование и вошел в проект.
Участие не оплачивалось, но я расценил его как возможность наработать портфолио и лично пообщаться с другими участниками проекта и менторами. Одним из менторов, например, был мой преподаватель с курса по Python — консультации с ним и его поддержка имели существенное значение при разработке сайта для Нетологии.
В проекте я отвечал за Backend-часть интернет-магазина на Django — фреймворк, который я проходил на курсе. Вместе со мной в команде Backend-разработки было еще три студента и ментор. И поначалу мне было непривычно работать в команде. Даже самые простые операции из системы контроля версий (Git) получались не спервого раза. Однако ментор всегда подсказывал, как улучшить код — он ничего не делал за нас, только направлял. Его поддержка и общение с коллегами-студентами по мере участия в проекте и помогло наработать первый опыт в профессии.
Однажды я обсуждал свою работу в проекте Нетологии со знакомым-программистом. Он предложил пройти тестовое задание на вакансию разработчика в его компании. Задача заключалась в следующем: нужно было считать данные из Excel, перевести их в базу данных, обработать эти данные и вывести их на HTML-страницу. На выполнение этого задания мне потребовалось полтора дня — впервые я быстро разобрался в том, чего раньше не делал.
Знакомый остался доволен моим тестовым и предложил поработать у них в компании. Но оказалось, что должность предполагает работу не только по части Backend-разработки, но и Frontend. Так параллельно с проектом Нетологии я самостоятельно занялся изучением Frontend-разработки. Первым шагом было изучение JavaScript. Базовый синтаксис нового для меня языка я прошел всего за неделю и сразу начал делать собственный пет-проект для отработки навыков. Какие-то задачи выполнялись по аналогии с Python, другие — быстро гуглились под конкретную цель. Сложно было с фреймворком Vue.js, и на его изучение ушел месяц. Обучался ему так же на своем проекте — игре для браузера.
После окончания проекта Нетологии я официально трудоустроился Fullstack-разработчиком к знакомому в «Центр экспертизы и контроля качества медицинской помощи». Компания создает решения для сотрудников в части упрощения работы с ежедневными рутинными задачами по экспертизе лекарственных средств и медицинской помощи. В мои компетенции входит и Frontend-, и Backend-разработка — я решил продолжить свое развитие в обоих направлениях, чтобы быть универсальным специалистом.
Зарплатные ожидания на этом месте работы оказались чуть выше, чем в «Центре подготовки космонавтов». А спустя 1-1,5 месяца после начала работы разработчиком руководство повысило зарплату, потому что я быстро и активно включился в работу и сразу начал показывать результаты. Также у меня появился еще один фриланс-проект, которым я занимаюсь по вечерам или в выходные. Здесь я полностью отвечаю за Backend-разработку на Python, и это приносит мне дополнительный заработок.
Инсайты для тех, кто только планирует начать обучение
С некоторыми преподавателями у меня сложились хорошие отношения. Хотя, конечно, на курсе были и те, чьи лекции мне было тяжело слушать. Но так бывает и в вузе, когда стиль изложения материала одним студентам дается легче, а другие совсем его не воспринимают. Это нормально, поэтому и на онлайн-курсах не будет такого, что все преподаватели вам понравятся на 100%.
Будучи аспирантом, я замечал таких студентов, которые ожидали, что учиться будет легко — пройдут курс от начала до конца, сдадут все домашки и выпустятся специалистами. Это очень острый момент и стоит понять, что ни одна учебная программа не охватывает всего, что нужно знать программисту. Ее стоит воспринимать как хорошую направляющую с контрольными точками для проверки знаний.
Все равно придется искать много дополнительной информации самостоятельно. Для любого — даже опытного — разработчика «гугление» остается одним из самых необходимых навыков в ежедневной работе. Поэтому после лекции специально дают домашнюю работу, которая немного или существенно отличается от пройденной темы — так получаешь стимул включать мозг и искать решение задачи своими силами.
Работодателю не столько важно, есть ли у вас корочка об окончании какого-либо курса, сколько реальные проекты в портфолио. Это может быть один проект или несколько, но главное — портфолио демонстрирует работодателю, что вы умеете и как справляетесь с задачей. Далеко не все студенты находят работу во время или сразу после окончания обучения. Многие сначала проходят стажировки (некоторые из них даже оплачиваются), участвуют в социальных и учебных кросс-функциональных проектах.
На старте зарплата начинающего разработчика может быть ниже, чем была на предыдущем месте работы. Однако рост зарплаты в IT происходит достаточно быстро, и в среднем уже через полгода работы специалист может рассчитывать на повышение. А если погружаться в изучение программирования дальше и регулярно учиться новому, то зарплата будет расти пропорционально вашим наработанным навыкам.
Самое главное — вера в себя: если вы видите, что у кого-то получилось, то и у вас получится!
Что такое JSON и почему он так популярен? JSON (JavaScript Object Notation) — легковесный формат обмена данными, который легко читается как человеком, так и машиной. Представьте, что вам нужно быстро передать структурированную информацию между...
Основные методы удаления элементов из строки Давайте начнем с обзора наиболее эффективных методов работы со строками в Python. Каждый из них имеет свои преимущества в зависимости от конкретной задачи. Метод replace() — замена с удалением...
Виртуальное окружение (virtual environment) — это изолированное пространство, где Python может хранить зависимости, необходимые для конкретного проекта, не влияя на другие проекты или системные библиотеки. По сути, это как отдельная комната для ка...
Что такое Telegram-бот и почему стоит его создать Telegram-бот — это специальная программа, которая работает в мессенджере Telegram и может выполнять различные функции: от простых ответов на сообщения до сложных операций с данными. По статистик...
Что такое словарь в Python и почему он так важен? Словарь в Python — это неупорядоченная коллекция пар "ключ-значение". В отличие от списков, где элементы индексируются числами, в словарях для доступа к данным используются ключи, которые могут...
Почему возникает необходимость преобразования Python в EXE Прежде чем погрузиться в технические детали, давайте разберемся, почему вообще стоит заморачиваться с созданием EXE-файлов: Простота распространения – пользователям не нужно...