Как стать Python-разработчиком: история Алексея Курылева
В отличие от многих моих коллег я не был рожден программистом. Я был рожден музыкантом. Я не учился программировать в ВУЗе и до определенного времени даже и не собирался связывать свою жизнь с IT.
Зато меня всегда привлекала Москва, с ее широкими тротуарами, длинными набережными и огромными парками. Но оказавшись там, ты чувствуешь потребность в деньгах более чем в любом другом городе нашей удивительной родины. В то время мой старший брат снимал квартиру вместе с двумя программистами, работающими в каком-то банке. Так, в одной из кухонных бесед, я первый раз погрузился в мир Python. С того момента прошло еще немало времени перед тем как я устроился на первую работу в качестве Python-developer.
Первые шаги в программировании
Так вот, оказавшись в Москве, мне нужно было искать работу, так как долго жить в гостях я не мог. На тот момент моих навыков хватило только чтобы устроиться работать в техподдержку одной крупной и безнравственной компании. Я принимал заявки по телефону и ходил туда-сюда по длинным коридорам здания, чтобы подключать мышки к системным блокам, которые по очереди вылетали из гнезд у всех сотрудников офиса.
Именно там, понимая абсурдность происходящего, я и написал свою первую программу. В свободное от рутины время я изучал возможности языка и писал скрипты для системного администрирования. Старшие админы быстро заметили это и стали мне давать задания написать ту или иную программу, и я с удивлением для себя обнаружил, что даже с моим минимальным опытом программирую я лучше их и в этом могу быть им полезен.
Первая работа
На удивление, я никогда не работал junior-ом. Сразу в middle пошел. Но попытки устроиться младшим разработчиком у меня были. Я хорошо помню то собеседование.
Два прекрасно образованных программиста (что забавно, это были муж и жена) целых два часа тестировали мои знания и мышление, после чего сделали вывод, что знаний у меня явно недостаточно, но мне не отказали, а дали список литературы и отправили доучиваться. Через две недели я вновь пришел на собеседование и продемонстрировал фантастическую способность к обучению, ответив на множество вопросов, на которые прежде ответить не мог. На следующий день мне позвонили и сказали, что я принят. Мне озвучили зарплату, которой мне не хватило бы даже на аренду жилья и еду, не говоря уже о каких-то излишествах. Я сразу отказался и ни разу не пожалел об этом, так как устроился системным администратором в компанию с мировым именем, где и продолжил самообучение как программист. Из этой истории я извлек один важный момент — ничто так хорошо не направляет и не подталкивает как собеседование!
А что дальше
В какой-то момент, устав от офисной жизни и работы админом, я скопил немного денег и на полгода уехал путешествовать в Индию. Ох, если бы я мог описать что это были за полгода, то не хватило бы и книги, не то что этой статьи. Вернувшись, я уже знал, что буду снова пробовать устроиться работать программистом, и на этот раз удача улыбнулась мне, да и я был куда лучше для этого готов. За полгода путешествий я очень-очень хорошо подтянул разговорный английский, что сейчас мне ежедневно помогает в общении с коллегами. Попасть в языковую среду оказалось куда эффективнее любых учебников (кстати тоже самое можно сказать и о программировании). Но прыгать туда лучше уже понимая основы, иначе те условия, в которых можно стать продвинутым, вы будете использовать для изучения азов.
Так вот. На моей первой работе программистом я был единственным бекенд-разработчиком в компании! Вот уж хуже не придумаешь! Ну, что хотел, то и получил. Зато на второй работе я попал в замечательный коллектив, где работали настоящие профессионалы с огромным опытом. Благодаря им я приобрел культуру кода и узнал про высокие стандарты в разработке. Миша Корсаков и Андрей Беляк — респект и уважуха!
Сейчас
А сейчас я работаю удаленно в одной международной компании и в этом есть свои плюсы! Только не подумайте, что я сейчас лежу на пляже с ноутбуком и наслаждаюсь жизнью по полной. Я все также много работаю и много устаю, но в офис ходить не нужно. Живу в Питере, иногда путешествую. Успел пожить в Португалии, в Италии, в Грузии, но не скажу, что я там как-то особо отдыхал. Организация путешествия накладывает много дополнительных сложностей, и в сочетании с работой это может быть в два раза тяжелее, чем работа из дома или офиса. Но увидеть можно очень много нового, красивого и интересного. И это явный плюс!
Менторство
А мое менторство началось очень забавным образом и без моего участия. Как-то раз я был в гостях у друга и случайно забыл у него книжку по Python и Django. А в следующий раз встретились мы только через год, и тогда он меня удивил. Говорит, а я теперь работаю программистом! Помнишь ты у меня книжку забыл, так вот я ее прочитал, сделал по ней свой сайт и недавно получил первую работу.
Позже мое менторство продолжилось тем, что я стал обучать одного своего друга. Несмотря на то, что он почти каждый день проводит на другой работе, наше дело идет очень быстро и хорошо. Первая работа программистом не за горами!
Как стать успешным Python разработчиком? Алексей Курылёв поделится опытом как с начинающими, так и с опытными программистами Нанять
Вопросы
Какой совет дашь новичкам, который редко встречается или считается необычным, спорным?
Вписывайтесь в любую движуху! Не упускайте ни одной возможности практиковаться! Будьте открыты всегда и к любым предложениям!
И что очень важно:
“Встретив двусмысленность, отбрось искушение угадать.” — zen of python
Как ты сохраняешь свои навыки актуальными? Как постоянно растёшь и становишься лучше как разработчик?
Ну, работа не позволяет становиться неактуальным. Каждый день приходится делать что-то новое. Ну, и читаю, конечно. Изучаю другие языки. Общаюсь с другими разработчиками. Разрабатываю в команде с друзьями разные веб-сервисы, без зарплаты, просто ради интереса. И отдыхаю побольше при возможности, это тоже необходимо, так саморазвитие идет легче и быстрее.
Топ 3 книжек для новичка
- Марк Саммерфилд — «Программирование на Python 3. Подробное руководство»
- Уэсли Чан, Пол Биссекс, Джеффри Форсье — “Django. Разработка веб-приложений на Python”
- Роберт Мартин — “Чистый Код” — Читайте ее даже если не понимаете Java, там очень много просто хороших советов. А заодно и Java начнете изучать.
Фото рабочего стола
Об эффективности обучения у Алексея и остальных менторов mkdev мы рассказывали в цифрах подписчикам нашей рассылки. Получить отчёт об успехах наших учеников ты можешь, подписавшись через эту форму:
© Copyright 2014 — 2023 mkdev | Privacy Policy
Как стать Python-разработчиком с нуля — личный опыт
Это мой первый пост, прошу сильно не пинать. Для начала немного расскажу, кто такой тестировщик. Это специалист, который отлавливает ошибки на всех этапах разработки проекта. Работа рутинная, но ответственная. Получают тестировщики на 20-30% меньше, чем программисты: от 30 000 руб. и выше, всё зависит от опыта.
Становление тестировщиком – самый простой путь старта в IT, есть куда расти (тест-менеджмент, веб-дизайн, чистая разработка).
Эту информацию я почерпнул из открытых источников и подумал, что вот, я не умею программировать, а получать астрономическую зарплату работать в IT – хочется. Думал, что начну с ручного тестирования, устроюсь на работу – а дальше, как пойдёт.
Но на практике оказалось не всё так просто. Кругом полно таких же людей, который думают точно также же, и такие специалисты маловостребованны. Для чего вообще берут на работу стажёров? Работодатель ожидает, что в ближайшем будущем навыки стажёра охрененно вырастут и он будет приносить огромную пользу фирме с дальнейшим повышением зарплаты (но не всегда таким, какую ожидает стажёр). Поэтому чаще всего стажёры, получив опыт, либо настаивают на значительном повышении з/п или уходят к конкурентам.
Несмотря на грустные мысли, я поставил цель – изучить навыки тестирования на Python хотя бы на уровне продвинутого стажёра.
Открыв гугл, я стал искать полезные статьи по языку с нормальными ссылками на учебные материалы. Как ни странно, толковых статей очень мало. Могу отметить только несколько, которые мне понравились больше всего:
- professii.su/programmirovanie/python-razrabotchik.html— обзорная статья, много полезной информации про Python + большой список ссылок на полезные сервисы/статьи/видеоуроки для начинающих;
- digitology.tech — перевод официальной документации по Python;
- ru.stackoverflow.com/questions/420125/Книги-и-учебные-ресурсы-по-python — рекомендуемая литература, курсы и документация по Python от сообщества Stackoverflow;
- github.com/vera-l/python-resources#books_online — обучающие материалы по питону (roadmap).
Итак, я внимательно изучил предложенные ссылки и начал учиться. Начал изучение языка Python со следующих бесплатных материалов:
- stepik.org/course/58852 — «Поколение Python»: курс для начинающих с кучей тренировочных задач, удобный как для самостоятельного изучения.
- youtube.com/c/ТимофейХирьянов — отличные видеолекции от Т. Хирьянова.
Через пару месяцев, когда я, обучаясь практически всё свободное время, освоил базу по языку, я прошёл ещё несколько, для получения более глубоких навыков программирования. Мне очень понравилось выполнять задачки по Python, над некоторыми пришлось поломать голову, но зато получаешь реальный кайф, когда всё получается. Думаю, программисты знают, о чём я говорю :).
Вот курсы для опытных Пайтон-разработчиков, которые я смог осилить:
- stepik.org/course/68343 — «Поколение Python»: курс для продвинутых.
- stepik.org/course/512 — курс посвящен базовым принципам языка Python, подойдёт тем, кто уже может писать простейшие программы на Python .
- stepik.org/course/1547 — алгоритмы: теория и практика. Структуры данных.
- andreyolegovich.ru/qa/pytest — учебник по Pytest – классный фреймворк для тестирования на Python.
- pywinauto.readthedocs.io — офиц. документация по Pywinauto — библиотеке Python для автотестирования десктопных приложений на Винде.
- docs.qameta.io — документация Allure, крутой библиотеке Python для красивеньких отчетов о результатах тестов.
Есть ещё сотни других библиотек, но я выбрал именно эти.
Затем я проанализировал с пару десяток вакансий на должность тестировщика без опыта работы и выписал повторяющиеся требования. Да, я псих :). Оставалось дело за малым – получить основные навыки работы с этими инструментами. Вот что я стал изучать дальше.
Основы разных видов тестирования: unit, функциональное, интеграционное и другие. В этом мне помогли следующие учебные материалы:
- stepik.org/course/16478 — теория тестирования ПО.
- stepik.org/course/575 — автоматизация тестирования с помощью Selenium и Python.
- testengineer.ru — большой учебник по тестированию.
Далее нужно научиться работать с ключевыми инструментами тестировщика, я выбрал только те, владение которыми реально нужны работодателям:
Selenium — автотестирование web-страниц:
- Учебник Selenium на coderlessons.com.
- dzen.ru — шпаргалка по Selenium WebDriver 4 + Python.
- rukovodstvo.net — статья по основам работы с Selenium и Python.
Jenkins – это опен сорс (фреймворк, проект с открытым исходным кодом), поможет автоматизировать деплой и исправить ошибки для CI/CD:
- Видеокурспо Jenkins на русском.
- Краткое руководство на coderlessons.com.
Postman – он позволяет посылать запросы к сервисам и работать с их ответами, им можно протестировать бэкенд:
- testengineer.ru/gajd-po-testirovaniyu-v-postman — большой гайд по тестированию с Postman для начинающих.
- Учебникпо POSTMAN.
Jmeter — Java-апплет, который умеет всё (поиск неуловимого бага, тестирование бэкенда и много чего ещё):
Разумеется, ещё нужно изучить дополнительные технологии и инструменты, без них никак:
GIT – удобная система для командной работы и работе с версиями кода:
- git-scm.com — большое руководство на русском языке.
- stepik.org/course/4138 — курс на Степике.
- Аккуратный, необходимый, слегка «продвинутый» видеокурс по Git, который делает жизнь разработчика проще.
Linux:
- stepik.org/course/73 — курс для новичков по основам Linux.
- Видеокурспо Linux на примере дистрибутива Ubuntu.
Docker:
- stepik.org/course/1612 — курс по Docker для тех, кто имеет навыки работы с операционной системой Linux.
- Видеоуроки, которые помогут вам понять как устроен Docker (контейнеризация) и где его можно использовать.
- stepik.org/course/74010 — курс по основам (установка, написание собственных образов).
- stepik.org/course/123300 — курс Docker для начинающих + практический опыт.
Язык SQL для работы с БД:
- stepik.org/course/551 — основы базы данных SQL.
- stepik.org/course/63054 — интерактивный тренажер по SQL.
- Большой видеокурспо SQL для новичков.
Это все эти учебные материалы, которые я внимательно изучил, чтобы иметь начальные навыки тестирования. Вы можете найти в сети любые другие, какие вам больше понравятся. На всё это я потратил примерно около 10 месяцев, я учился почти каждый день по 6-7 часов в день, спать ложился далеко за полночь. И при этом я ещё работал на основной работе. Большое спасибо моей девушке, она меня всё это время поддерживала.
Важный совет! Вы должны развить навыки грамотного поиска информации в интернете, а также учиться чему-нибудь новому каждый день. Даже Senior учится новым технологиям и инструментам. Как сказал однажды Генри Форд «Любой, кто перестает учиться, стареет, и не важно, сколько ему лет: двадцать или восемьдесят. Любой, кто продолжает учиться, остается молодым. Самая великая вещь в жизни — это сохранять свой разум молодым».
Ну вот, вы теперь готовы к поиску стажировки тестировщиком (будет хорошо, если она будет оплачиваемой). Но есть один нюанс. Если вы не студент ВУЗа, то в некоторых стажировках вам могут отказать, так как компаниям интересны именно студенты или выпускники высших учебных учреждений. Но не сдавайтесь! Выполняйте все тестовые задания, прокачивайте свои скиллы, чтобы каждое следующее собеседование давалось вам легче и легче. На практике вы можете пройти 10-15 собеседований, но так и не найти работу. Это нормально, потому что кроме вас на эту должность претендуют еще десятки/сотни соискателей. Поэтому рассматривайте каждый отказ как полезный опыт, который делает вас сильнее.
Как правило для джунов тестовые задания будут с подвохом, поэтому очень внимательно читай задание и не отчаивайся, если ты провалил собеседование. Запомни – рано или поздно тебя возьмут в штат.
Сколько нужно учиться, чтобы стать Python-программистом? Моё личное мнение: если у вас нет склонности к математике (вы больше гуманитарий), то придётся учиться очень долго и очень часто. А если вы математик в душе, то всё равно придётся обучаться долго и много. Такая история. Ещё — у вас будут случаться время от времени нервные срывы. Что делать, это плата за знания, сам через это прошёл.
Запомните! Если у вас не получается что-то ни с 1 или 15 раза, то в программировании – это норма. Обычное дело – постоянно гуглить, шерстить документацию и дебажить код again and again. Если на каком-нибудь курсе вам было легко, но потом вы начали самостоятельную практику = обучение через страдания. НО потом, когда ты осознаёшь, то приходит понимание, что на курсе было лишь смутное понимание программирования. Как-то так.
Поэтому нужно быть морально готовым к тому, чтобы потом не впасть в депрессию от того, что ничего не получилось. Python простой язык, но если придётся разрабатывать сложные системы на любом языке, хоть на Пайтоне, C++ или Java, вам придётся тяжело. Python имеет более читаемый код, и изучить его довольно просто – на базовом уровне (!). Если вы столкнётесь со сложными алгоритмами, то придётся задействовать мозги на все 200%.
Вывод: маловероятно, что вы освоите профессию тестировщика на Python за месяц и начнёте получать по $10k в месяц. Учиться будет тяжело, придётся люто вкалывать каждый день, если хотите добиться результатов. Если есть желание – то всё получится. Поверьте.
Накидал типовые задачи, которые могут дать на собеседовании тестировщику-стажёру:
- Проверить функциональность логина в приложении и написать баг-репорт о найденных ошибках.
- Протестировать платёжный сервис в интернет-магазине.
- Составить баг-репорт для неработающего холодильника.
- Написать чек-лист для проверки формы авторизации на сайте.
- Не работает кнопка «Добавить в корзину». Проблема на стороне клиента или сервера?
Какие вопросы могут примерно задать:
- Какие уровни тестирования вы знаете?
- Можете объяснить разницу между функциональным и нефункциональным тестированием?
- Какие категории ошибок с выполнением требований вы можете назвать?
- Почему Selenium стал стандартом де-факто в автоматизации тестирования?
- В чем заключается разница между абсолютным и относительным путями XPath?
- Как определить, когда пора прекращать тестирование?
- Что делать в случае отсутствия тестовой документации?
- Может ли статическое тестирование обнаружить утечки памяти?
- Опишите своими словами нагрузочное тестирование.
- Назовите этапы жизненного цикла тестирования.
Дерзайте, всем удачи!
P.S. Список полезных материалов для обучения языку Python, думаю, это вам очень пригодится:
- CS50— Гарвардский курс по основам программирования на русском.
- PEP 8 — руководство по написанию кода на Python.
- PyCheckIO — интерактивный тренажер на Python с проверкой решений.
- pythonworld.ru/samouchitel-python — неплохой самоучитель Python.
- Курсы с задачами от Информатикс.
- Oнлайн-тренажёр Python.
- pythontutor.ru — хороший курс по программированию с нуля.
- kodesource.top/python-exercises —практические уроки для начинающих.
- timus.ru — задачи с проверяющей системой.
- Сборник упражнений и задач по основам Python — okpython.net/python/python_zadachnik/python_zadachnik.html.
- Хендбук по Python от Яндекса.
Параллельно с прохождением курсов и просмотром видео читайте такие книги, как «Изучаем Python» Марка Лутца (4-е изд.) или «Программируем на Python» Майкла Доусона. А вообще обязательно к прочтению крутая книга «Укус Питона» (русский перевод).
- python
- тестирование
- карьера программиста
- полезная информация
- личный опыт
- новичкам
Как я стал 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, думаю каждый найдёт для себя что-нибудь интересное:
- PEP 8 — руководство по написанию кода на Python;
- PyCheckIO — интерактивный тренажер на Python;
- Самоучитель Python;
- Checkio.org — задачи по Python в игровой форме;
- LeetCode — задачи, разбитые на разные уровни сложности;
- Алгоритмы и структуры данных на Python — видеолекции;
- Oнлайн-тренажёр Python;
- Питонтьютор — классный бесплатный курс по Пайтону;
- kodesource.top — упражнения для новичков;
- Хендбук по Python;
- Видеокурс от Яндекса на Хабре;
- Бесплатный курс по Python для новичков на code-basics.com;
- CS50 — курс для получения общих знаний по программированию;
- Много видеоуроков «Python для начинающих» для абсолютных новичков;
- Основы Python 3 — курс на Udemy;
- youtube.com/c/ТимофейХирьянов — замечательные видеолекции от преподавателя от бога.
На этом всё, будут вопросы — пишите в комментариях. Всем удачи в начинаниях!
Python-разработчик: что должен знать и как им стать
Кто такой Python-разработчик? Рассказываем все о сфере Python-разработки: вникаем в процессы и задачи специалиста, какие навыки нужны для каждого грейда и как стать Python-разработчиком с нуля.
886 показов
5.7K открытий
Введение: коротко о Python
Python является популярным и активно развивающимся языком программирования. Придуманный нидерландским программистом Гвидо ван Россумом более тридцати лет назад, Python, на сегодняшний день возглавляет рейтинг языков программирования по данным индекса популярности TIOBE.
В чем заключается секрет его популярности?
По сравнению с другими языками, Python считают простым для понимания, дружелюбным языком даже для новичков, совершающих первые шаги в области программирования. Одним из главных принципов Python является легко читаемый синтаксис, позволяющий изучить его быстро.
Несмотря на гибкие и понятные инструменты, Python остается многофункциональным языком, на котором можно создавать сложные проекты и сервисы с высокой нагрузкой. Такие компании, как Intel или HP, используют Python для тестирования аппаратного обеспечения, а Pixar – для создания анимации в мультипликационных фильмах.
В связи с популярностью языка Python в различных областях и компаниях, рынок труда наполнен предложениями для Python-разработчиков, даже Junior специалисты сегодня могут рассчитывать на стартовую зарплату в 100 тысяч рублей.
Что должен знать Python-разработчик?
В первую очередь Python-разработчику необходимо владеть синтаксисом языка, правилами и командами, также важно изучить хотя бы одну, а лучше несколько библиотек, использующихся в интересующей для разработчика сфере (например, Django для веб-разработки). Большим преимуществом будет и понимание принципов ООП, так как Python является объектно-ориентированным языком.
Как и для любого другого языка, задачи для Python-разработчика и навыки, необходимые для их решения, зависят от квалификации. Давайте познакомимся с навыками для каждого грейда ближе:
Junior (начинающий специалист с опытом от 0 до 12 мес)
Как мы уже писали ранее, Python – язык программирования с низким порогом входа, поэтому базовых навыков владения языком, будет достаточно, чтобы претендовать на должность Junior-разработчика и начинать работать. На начальном этапе разработки задачи касаются сферы, которую начинающий разработчик выбрал для старта карьеры.
Middle (специалист среднего уровня с опытом от 2 до 3 лет)
От претендентов на должность Middle-разработчиков ожидают тех же базовых навыков с более высоким уровнем владения Python. В процессе работы также могут потребоваться дополнительные навыки и языки, зависящие от выбранной IT-сферы (например, применение метода статистического анализа в области аналитики данных или знание другого языка программирования в области веб-разработки).
Senior (специалист с опытом от 5 лет)
Помимо знания языка Python в претендентах на должность Senior-разработчиков ожидают увидеть и лидерские качества, так как нередко такие специалисты распределяют задачи между членами команды, принимают стратегические решения и выстраивают проекты с нуля. На продвинутом этапе разработки требуются самый высокий уровень владения языком Python и другими языками, а также более глубокие познания в выбранной сфере (например, знание матанализа, теории вероятностей и статистики для аналитики данных).
Чем занимается Python-разработчик?
Владение языком Python даёт возможность работать в маркетинге, веб-разработке, бизнес-автоматизации и аналитике данных, ставшей крайне популярной среди разработчиков в 2022 году. Работа и задачи Python-разработчика в первую очередь зависят от выбранной им сферы.
Аналитик данных на языке Python структурирует информацию, тестировщик ПО – создаёт автотесты, повышая скорость своей работы, а веб-разработчик – создает сайты и приложения. Стоит отметить, что с Python чаще работают для backend-разработки, хотя многофункциональность этого языка программирования позволяет пользоваться им и для frontend-разработки.
Что должен знать Junior Python-разработчик?
Python отлично подходит для начала карьеры в области программирования. Как мы уже писали выше, знания синтаксиса языка и хотя бы одной библиотеки достаточно для карьерных начинаний в некоторых крупных компаниях, среди которых, например, «СберБанк» и «МТС».
Количество предложений для Python-разработчиков продолжает расти, начинающие специалисты могут выбрать привлекательную для них сферу. В 2022 году сайт hh.ru предлагает более 1,5 тысяч вакансий, помимо тех, в которых владение Python не является единственным основным запросом для работы.
Зарплата Python-разработчика зависит от опыта и региона. В Москве и Санкт-Петербурге зарплаты выше, однако и регионы не отстают, средняя зарплата по всей стране, согласно исследованию «Хабр.Карьеры», составляет 140 тысяч рублей. Разработчики уровня Senior могут претендовать на заработную плату в 300-450 тысяч рублей, уровня Middle – в 200 тысяч, стартовая зарплата Junior-разработчика может составлять 100 тысяч рублей.
Как стать Python-разработчиком?
Профессия Python-разработчика скорее всего уже заинтересовала многих читателей. Как им стать?
В первую очередь необходимо получить и закрепить первичный набор навыков, уметь правильно писать команды, разбираться в коде языка, продолжать осваивать библиотеки и фрэймворки. Большим плюсом для начинающего Python-разработчика станет портфолио. Его можно составить даже из самых простых проектов, выполняя, например, тестовые задания на собеседованиях и дополнительных курсах. Владение английским языком упростит, как изучение языка программирования, так и дальнейшую работу с ним, поэтому начинающим специалистам стоит прокачивать английский язык.
Специалисты выделяют 3 основных пути получения необходимых навыков для Python-разработчика:
- Обучение в ВУЗе
В связи с высоким спросом на профессию программиста российские ВУЗы увеличивают количество мест по IT-направлениям, в том числе бюджетных. Этот путь, наиболее комплексный и фундаментальный, подходит для тех, у кого есть, как минимум, 4 года на изучение языков программирования и разработки. Стоит также отметить, что обучение в ВУЗе зачастую обеспечивает только поверхностное знание некоторых языков, поэтому для более глубокого изучения придётся заниматься самообразованием.
- Самостоятельное обучение
Изучить Python можно и самостоятельно, этот язык часто хвалят за его «простоту». Для начинающих разработчиков сейчас существует множество путей получения информации: видео-пособий и статей, книг. Этот путь подходит для тех, кто готов потратить свои ресурсы на пытливый поиск информации об интересующем языке, так как зачастую информация не систематизирована.
- Обучение на онлайн-курсе
Онлайн-курсы дают возможность изучить Python наиболее быстро, совмещая обучение разработке с постоянным местом работы и яркой личной жизнью. Этот путь подходит для тех, кто получает дополнительное образование с перспективой смены сферы деятельности, или для углубления уже имеющихся знаний в программировании. Современное разнообразие онлайн-курсов позволяет выбрать комфортный ритм изучения языка и финальные цели обучения, например, в онлайн университете ProductStar на курсе “Профессия: Python-разработчик” эксперты из Центра Карьеры начинают подбирать стажировки, опираясь на пожелания, уже во время обучения и гарантируют дальнейший оффер.