Как я стал Python-разработчиком с нуля с з/п 100k в месяц

Прежде чем я стал Python-разработчиком, я работал охранником, барменом, помощником инженера на кабельном заводе, затем устроился в фирму по ремонту компьютеров. Иногда брал заказы по настройке домашних компьютеров, и даже не думал о том, что я когда-нибудь стану программистом. Зарплата на всех этих работах была максимум 50k, что естественно меня не устраивала (была ипотека, на которую уходила половина зарплаты).

Уволился с последней работы, и так вышло, что мне знакомые помогли в трудоустройстве в отдел внедрения (небольшая аналитическая компания), но с обязательным условием – мне дали 4 месяца на то, чтобы я изучил основы Python, Linux и SQL. Сказали, что будут тестовые испытания, и если я их пройду – возьмут в штат на позицию джуна. На тот момент мне было 32 года, согласитесь, возраст весьма солидный, чтобы начать свою карьеру в IT.

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

С чего я начал обучение? Для начала мне нужно было найти список всех доступных учебных материалов по языку Python. Открыл Яндекс, вбил запрос “Python обучение с нуля”, прошерстил с десяток статей, больше всего меня устроила вот эти:

Как я стал Python-разработчиком с нуля с з/п 100k в месяц

Там много интересной информации по Пайтону + огромный список учебных материалов для самостоятельного обучения, оформленного в удобную табличку. Пересмотрел их все и для себя подобрал следующие обучалки:

Как я стал Python-разработчиком с нуля с з/п 100k в месяц

Это 2 бесплатных курса, которые научат кодить даже домохозяйку (это не шутка, там реально очень разжевано всё расписано). Первый курс прошёл за 2 недели, второй за 3 недели. Чтобы не сдаться, нужно, чтобы у вас вошло в привычку садиться за учёбу хотя бы 1 час в день, тогда вы увидите результаты.

Итак, основы языка были изучены, но знаний всё равно было недостаточно. Много чего не знал (типа ООП и прочих премудростей). А ещё мне хотелось реальной оценке своих знаний. Поэтому подобрал себе платный курс одной известной онлайн-школы, где помимо языка Python обучали Git, SQL и Docker. Это самый простой способ получить структурированные знания за короткий период времени. Время шло, впереди были неизвестные мне тестовые задания и мечта о работе программистом.

Скажу сразу, курс я проходил быстро, так как там не было дедлайнов, а у меня за плечами был кое-какой опыт программирования благодаря Степику и просмотру видео на Ютубе. Крайне советую видеолекции от Тимофея Хирьянова.

Учился по 10-14 часов в день, тратил свободное время на сон и еду, благо моя девушка всё понимала и поддерживала меня во всём. Что не понимал – гуглил, читал официальную документацию, смотрел видео на ютубе, читал статьи на Хабре. Моя задача была овладеть хотя бы 50% курса (он сам длился около года), чтобы не ударить в грязь лицом на собеседовании. Иногда встречались реально тупиковые задачи, над которыми приходилось биться по 2-3 дня. Но вдруг что-то в голове щёлкает и всё становится понятно. Это невероятное чувство, реально кайф!

Можете и не проходить платные курсы, у меня поджимало время и мне надо было быстро получить недостающие знания с проверкой моих знаний грамотным специалистом. Думаю, если вы неспеша будете обучаться по бесплатными материалам, то чтобы устроиться стажёром вам потребуется где то 10-12 месяцев ежедневной учёбы по 3-4 часа. Но лучше не лениться, иначе будет ох как тяжело взять себя в руки. Если хотите отдохнуть – позанимайтесь в этот день хотя бы 1 час и идете отдыхать. Это будет лучше, чем вообще ничего не делать и потом заставлять себя сесть за компьютер.

Через 2,5 месяца обучения нашёл типовые тесты на собеседованиях, и по нескольку раз их прорешал – оставалось пара недель до даты X. Например, это такие вопросы, как:

  • В чём разница между списками и кортежами?
  • Как производится отладка программы на Python?
  • Что такое декораторы и когда их стоит использовать?
  • Что такое @classmethod, @staticmethod, @property?
  • Что значит *args, **kwargs и зачем их нужно использовать?
  • В чём разница между многопроцессорностью и многопоточностью?
  • Как можно использовать тернарные операторы в Python?

… и множество практических заданий по написанию простых программ на Python. Это нужно изучить и прорешать в обязательном порядке, а лучше по 2-3 раза. Вот вам статья для размышления.

Что в итоге? Собеседование прошёл без проблем, вопросы были типовые, а тестовые задания были по аналогии, которые я уже решал несколько раз. Счастья не было предела! На работе меня приняли радушно, я писал код под контролем наставника, который мне очень сильно помог. Разумеется, к основному коду меня не пускали, а всю мою работу проверяли по нескольку раз. Но это было первые 5 месяцев, затем мне начали доверять некоторые куски кода в проекте.

Проработав 7 месяцев мне подняли зарплату – к этому времени у меня на руках был диплом об образовании (я как раз закончил курс) и неплохой опыт разработки. З/п в среднем 100k в месяц, зависит от курса валют. Несмотря на это я до сих пор учусь программированию (изучаю фреймворк Flask, библиотеки NumPy и Retrying, и бэкенд - Django, Модель OSI), так как понимаю, что моих знаний явно недостаточно для позиции мидла, куда я очень стремлюсь.

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

Вакансий на Пайтон-программиста реально много, на март 2023 года на hh.ru опубликовано более 10 000 предложений работы. Так что дерзайте, всё у вас получится!

P.S. Полезные материалы для тех, кто хочет стать Python-программистом:

  • "Официальная документация" - это, понятное дело, твое первое место для ознакомления с Python. Но будь готов, что там можно утонуть в океане технических терминов и синтаксических конструкций.
  • PEP 8. Здесь описаны рекомендации по стилю написания кода на языке Python. Не забывай, что читаемость кода - это очень важно!
  • HackerRank - сайт для тренировки и проверки навыков программирования на Python. Тут тебе и задачки, и курсы, и всякие тесты.
  • PyCheckIO - это как игра на выживание, только на Питоне. Здесь тебе предстоит решать задачи, которые проверяют твои знания языка программирования Python. Если ты не сдаешься перед сложными задачами, то этот интерактивный тренажер - для тебя!
  • CodeWars - это как попасть на поле боя, только вместо оружия - Питон. Здесь тебе будут предложены задачки по программированию на Python. Но осторожно, некоторые из них могут быть очень сложными!
  • Самоучитель Python - это как библия для начинающих программистов на Питоне. Здесь ты найдешь все, что нужно для изучения языка программирования, начиная от основ и заканчивая продвинутыми техниками.
  • https://python-scripts.com/ - здесь много полезных статей про Python, которые помогут тебе разобраться в сложных темах.
  • Адаптивный тренажер Python - это как тренировка на спортивной площадке, только вместо отжиманий - программирование на Питоне. Ты будешь решать задачки, которые будут увеличивать уровень твоих знаний и навыков в Python.
  • Checkio.org - это как путешествие в цифровой мир, где ты будешь решать задачки на Python. Тут есть возможность получить комментарий от самого Гвидо ван Россума! Ты сможешь узнать, что думает создатель этого языка о твоих решениях задач.
  • Projecteuler.net - это как сборная солянка из задач на математику и программирование на разных языках, включая Python. Здесь ты найдешь множество интересных заданий, которые помогут тебе улучшить свои навыки в программировании и математике. Но будь готов к тому, что многие из них будут очень сложными и потребуют от тебя много усилий и терпения.
  • Codingame - это отличный сайт для тех, кто любит игры и хочет научиться программированию. Здесь ты найдешь тысячи увлекательных проектов для начинающих, которые помогут тебе освоить программирование и при этом управлять космическим кораблем и выполнять интересные миссии.
  • LeetCode - еще один крутой сайт для тех, кто хочет улучшить свои навыки в программировании. Здесь ты найдешь множество задач, которые разбиты на три категории сложности.
  • Computer Science Center - это курс видеолекций, который позволит тебе изучить Питон и компьютерные науки. Этот курс предоставляет все необходимые материалы, чтобы выучить Питон, а также затронуть темы, связанные с компьютерными науками. Обязателен к изучению!
  • Видеолекции "Алгоритмы и структуры данных на Python 3"
  • Сборник примеров - это неплохой ресурс для тех, кто хочет научиться программированию на Питоне.
  • informatics.msk.ru - это еще один отличный ресурс для тех, кто хочет научиться программированию на Питоне. Здесь ты найдешь курсы с задачами на Питоне, которые помогут тебе улучшить свои навыки программирования.
  • Сайт с олимпиадными задачами - прокачивай свои навыки и подготовься к собеседованиям.
  • Онлайн-тренажер по Python - получай реальный опыт программирования и тренируйся на практике.
  • Тесты от https://skills4u.ru/school/informatika/python/ - еще один онлайн-тренажер, где ты сможешь проверить свои знания Python.
  • PythonTutor - бесплатный курс для начинающих, работающий прямо в браузере. Ты сможешь изучить Python с нуля.
  • http://www.kodesource.top/python-exercises/ - отличный ресурс для начинающих, где ты найдешь много полезной информации.
  • Сборник задач с решениями - решай задачи и прокачивай свои навыки программирования.
  • Timus Online Judge - архив задач с проверкой решений.
  • Сборник упражнений и задач по основам Python для начинающих - прокачай свои знания Python.
  • Клавиатурный тренажер - попрактикуйся в наборе кода на Python.
  • Хендбук по Python от Академии Яндекс.

Полезные книги:

  • "Изучаем Python" от Марка Лутца - здесь ты найдешь всё, что нужно знать, чтобы стать настоящим Python-гуру! В книге есть и программирование игр, и визуализация данных, и создание веб-приложений. Книга - Библия по Python.
  • "Программируем на Python" от Майкла Доусона - это книга для начинающих. Здесь пошагово описаны основы языка, а также приводятся примеры простых программ.
  • "Программирование на Python 3. Подробное руководство" от Марка Саммерфилда - эта книга написана очень доступно, и в ней подробно описываются основы языка. В книге есть и упражнения, чтобы закрепить знания.
  • "Совершенный код" от Стива Макконнелла - хоть эта книга и не о Python, но здесь есть много полезных советов по написанию хорошего кода на любом языке программирования. Если ты хочешь писать красивый и эффективный код, то обязательно загляни в эту книгу.

  • "Python. Подробный справочник" от Дэвида Бизли - эту книгу можно использовать как справочник, чтобы быстро находить ответы на вопросы. Здесь подробно описаны все функции и методы, которые есть в Python.

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

2121
5 комментариев

Интересный опыт. Успехов вам!

1
Ответить

Спасибо! Толковая статья

1
Ответить

Хотелось бы посмотреть на тестовые задания. Хотя бы примерно какими они были.

Ответить

Заданий было несколько. По памяти напишу, какие они примерно были. 1. Реализация алгоритма сортировки списка чисел разными способами (пузырьковая, быстрая, слиянием). 2. Создание программы для анализа текста, анализ и вывод статистики (количество слов, предложений и т.п.). 3. Создание простого телеграм-бота по тз. 4. Самое сложное, как мне показалось задание. Надо создать базу данных, написание скрипт для добавления данных в БД, скрипта для выборки данных из базы и вывода их на экран. Запросы были сложные, нужно знание SQL.

1
Ответить

спасибо бро!

Ответить