Как я стал Python-разработчиком за 10 месяцев
До того момента, как я захотел стать Python-программистом, я около 8 лет работал инженером в небольшой компании по производству кабельной продукции. Затем я получил повышение и стал руководить отделом и… перестал получать удовольствие от работы. Очень много волокиты с документами, проведение бесполезных собраний – всё это стало всё сильнее меня угнетать, так как я очень любил свою прежнюю должность инженера.
Так вышло, что по чистой случайности увидел бесплатный интенсив по Python-разработке, записался и прошёл несколько уроков. Я настолько увлёкся этой темой, что каждый день после работы бежал домой, садился за комп и решал простенькие задачки на Питоне. Как я узнал позже, этот язык один из самых простых в освоении, на практике так и не было, подтверждаю. Например, Java или C++ имеют более сложный синтаксис, это даже видно по официальной документации.
Я задумался, а не переквалифицироваться ли мне в Python-разработчики. Поглядел вакансии на hh.ru, отметил про себя, что чаще всего компаниям нужны специалисты с опытом работы от 1 года, но и было много предложений стажировок. Решил посвятить ближайшие 8-10 месяцев изучению Python’у, уж очень мне хотелось сменить свою работу.
Итак, с чего я начал? Решил начать обучение с бесплатных материалов. Стал искать полезные ссылки, нашёл несколько полезных статей:
- Обзорная статья по Python - много полезных советов о том, как начать изучение языка, включая большой раздел с ссылками на обучающие материалы;
- Книги и учебные ресурсы по Python на stackoverflow.com - подборка разных ссылок для новичков и опытных программистов;
- Дорожная карта по изучению Python на github.com.
Изучив статьи и отобрав понравившиеся мне материалы, я стал проходить бесплатные курсы на Stepik:
- stepik.org/course/58852 - "Поколение Python": курс для начинающих;
- stepik.org/course/122813 - Курс для будущих Python-разработчиков.
Через месяц освоил курсы посерьёзнее:
- stepik.org/course/68343 - "Поколение Python": курс для продвинутых;
- stepik.org/course/107365 - Многопоточность и многопроцессорность Python;
- stepik.org/course/107335 - Регулярные выражения в Python.
Параллельно читал книги "Укус Питона" и "Изучаем Python" М. Лутца. Книги обязательны к прочтению!
Разумеется, найти время было сложно, у меня 2 маленьких ребёнка, которые не бывает очень шумят, поэтому пришлось перебраться в маленькую комнату, чтобы сосредотачиваться на учёбе. Детьми занималась в основном жена и тёща, за что я им очень благодарен. Учился по 4-5 часов в день, ложился далеко за полночь, включая выходные и праздники. У меня была цель – получить начальные навыки, чтобы устроиться стажёром или джуном.
Процесс обучения мне очень нравился, когда получается решить сложную задачу самому – я получаю нереальный кайф, думаю многие программисты со мной согласятся.
Учиться было не так сложно как я себе представлял – всё-таки сыграла свою роль техническое образование и много лет стажа работы инженером. Ничего особенно сложного не было, все необходимое я находил в Гугле или форумах.
Кроме Python’а дополнительно мне пришлось изучать дополнительные инструменты – все те, которые работодатели указывали в вакансиях. Вот что я изучал параллельно с изучением Python:
Linux. OS для программистов:
- stepik.org/73 - Развивающий курс по Линуксу;
- Видеообучение “Linux для начинающих”.
Docker. Крутая штука, помогает запустить приложение на любой OS:
- stepik.org/1612 - Профессиональный курс по Docker;
- Серия видеоуроков по Docker для начинающих;
- Видеоинструкции по Docker.
Ansible. Система управления конфигурациями:
- stepik.org/course/123806 - Ansible для начинающих + практический опыт;
- stepik.org/course/123300 - Docker для начинающих + практический опыт;
- Уроки по Ansible на русском языке.
Kubernetes. Сложная штука для контейнеров, изучил только основы:
- stepik.org/course/99188 - курс "Kubernetes для пользователей";
- Хорошие видеоуроки по Kubernetes.
SQL – язык для баз данных:
- stepik.org/course/551 - Образовательный курс “Основы баз данных”;
- sql-tutorial.ru/sqlbook/ru - Классный интерактивный учебник по SQL.
Django – фреймворк для веб-разработки:
- stepik.org/course/82067 - интересный курс "SPA сайт на Django Rest Framework и NuxtJS";
- Видеоуроки от selfedu по Django 3.
Flask - легковесный веб-фреймворк на Python для создания веб-приложений:
- stepik.org/course/97540 - Основы Web-фреймворка Flask;
- Видеоуроки по Flask с нуля.
REST API - код, который позволяет двум приложениям обмениваться данными с сервера:
- stepik.org/course/120679 - Курс профессиональной подготовки по API;
- Видео по разработке API с нуля;
- Статья на Хабре по основам в REST API.
Ещё я завёл профиль на https://github.com/, у любого программиста так должно быть размещено портфолио, куда я выкладывал свои небольшие проекты, которые мне удавалось делать во время обучения. Вот скрин профиля, после 7 месяцев разработки:
Через 7 месяцев интенсивной учёбы я составил резюме и опубликовал его на паре сайтов (hh.ru и superjob.ru). Затем я стал откликаться на вакансии, причём не только на позицию джуниора, но и миддла. За первую неделю я получил 50 отказов: некоторые работодатели сразу писали, что я им не подхожу, другие давали тестовые задания, с которыми я плохо справлялся. Но я не отчаивался, так как всё это полезный опыт, а рано или поздно я работу всё равно найду. У меня не было в портфолио реальных проектов, поэтому я стал брать за бесценок заказы на фрилансе, чтобы прокачать своё портфолио. Вот как выглядят задания, которые публикуют исполнители на Кворке:
В течение 2 месяцев мне удалось сделать 2 хороших проекта по веб-разработке, и я стал опять усиленно заниматься поиском работы. Спустя неделю со мной связался работодатель и дал сложное тестовое задание (по API), на выполнение дал мне 12 часов. Я сделал всё , что смог и отправил результаты. Был уверен, что провалил задания, но через 5 дней мне прислали оффер. Как оказалось, я выполнил эти задания лучше других кандидатов, хотя и не совсем правильно, поэтому взяли в штат именно меня. Возможно мне просто повезло, но я всегда знал, что я смогу найти работу. :)
На начальном этапе меня взяли стажёром, на 3 месяца, дали наставника. С прежней работы уволился. На протяжении трех месяцев я учился ещё интенсивнее, мало спал, информации было очень много, было очень тяжело. Но затем стало полегче, усвоил то, что нужно было в стеке компании и меня перевели на должность джуна. Что я понял в работе программиста – что учиться нужно всегда, независимо джун ты или сеньор. Профессия такая, что нужно всё время быть на волне. Что по зарплате? Получаю 80 000 рублей на руки, это на 20 тыс. меньше, чем на прежней работе. Я остался очень доволен, думаю, через 2-3 года будут тянуться к позиции мидла, а там и зарплата совсем другая.
Сейчас я работаю в крупной компании по разработке сайтов (в отделе тестирования), у меня отличный коллектив и каждый день у меня встречается интересные задачи, над которыми я могу залипнуть на много часов. Скажу честно, несмотря на мой возраст (мне 39 лет) мне ни разу не отказали, сославшись именно на это. Только в одной из компаний меня сразу предупредили, что средний возраст разработчиков в компании 20-25 лет и будет ли мне комфортно работать среди молодёжи. На этот вопрос я ответил утвердительно, но в итоге туда устраиваться я не стал, но не по этой причине.
На данный момент ясно понимаю, в каком направлении мне нужно развиваться (хочу попробовать себя в ИИ). Денег стало немного поменьше, но моя жена меня поддерживает и помогает, мы уже не в первый раз привносим что-то новое в свои жизни, включая смену работы. Например, когда были помоложе, то у нас было несколько бизнесов, включая онлайн-магазин.
Моя цель – это вырасти до позиции Middle и получать от 120 000 р. и больше.
Мои советы для тех, кто хочет освоить новую профессию, желательно к ним прислушаться:
- Посидите и подумайте, чем именно хотите заниматься по-настоящему. Уделите этому хотя бы полчаса своего времени, прислушайтесь к душе.
- Напишите план обучения. Сложные темы разбейте на более мелкие. Напишите, сколько времени у вас уйдёт на обучение и умножьте эту цифру на 2. На практике вам понадобится больше времени на обучение.
- Чтобы не потерять мотивацию, выделите определённые часы для занятий, например по выходным с 16:00 до 22:00 или в будни после 20:00. Ставьте себе жёсткие сроки, без этого обучение может затянуться надолго.
- При поиске работы не нужно бояться отказов. Нужно лишь понять, почему вам отказывают и нарабатывать практику.
В заключение хочу поделиться полезным ссылками по обучению языку Python, думаю каждый найдёт для себя что-нибудь интересное:
- Самоучитель Python;
- Checkio.org - задачи по Python в игровой форме;
- LeetCode - задачи, разбитые на разные уровни сложности;
- Алгоритмы и структуры данных на Python - видеолекции;
- Питонтьютор - классный бесплатный курс по Пайтону;
- kodesource.top - упражнения для новичков;
- Видеокурс от Яндекса на Хабре;
- Бесплатный курс по Python для новичков на code-basics.com;
- CS50 - курс для получения общих знаний по программированию;
- Много видеоуроков "Python для начинающих" для абсолютных новичков;
- Основы Python 3 - курс на Udemy;
- youtube.com/c/ТимофейХирьянов - замечательные видеолекции от преподавателя от бога.
На этом всё, будут вопросы - пишите в комментариях. Всем удачи в начинаниях!
Иди говна въеби со своими онлайн курсами
на степике куча бесплатных и довольно качественных курсов, так что, правда, лучше отдохни - уже поздно довольно
Комментарий недоступен
Комментарий недоступен
Ну ты че, дадли
Комментарий недоступен
А потом этот человек пишет 100500 постов с оправданиями виабу-чертей