Рассказываем, кто такой разработчик Python, почему он так востребован, какие задачи решает каждый день и без каких hard skills ему не обойтись.
Почему Python такой популярный
Python — универсальный язык программирования высокого уровня, который используется IT-специалистами в разных областях. В 2022 году, например, Python чаще всего использовался в анализе данных (43% респондентов), веб-разработке (43%) и машинном обучении (39%). На четвертом месте было системное администрирование (31%), а затем разработка веб-парсеров (30%) и тестирование ПО (27%).
Рост популярности Python начался в 2010-х годах и продолжается до сих пор: Питон — лидер индекса TIOBE с 2022 года. Также он занимает первое место в рейтинге языков программирования GitHub и считается самым востребованным среди российских IT-специалистов.
У такой популярности есть несколько причин:
Низкий порог входа. У Python простой и понятный синтаксис, который легко читать и воспринимать человеку, потому что он похож на обычный английский язык. Поэтому новички часто начинают изучать программирование именно с Python, а бэкендеры выбирают его в качестве основного языка.
Интерпретируемость. Код, написанный на Python, не компилируется в машинный, а сразу выполняется с помощью программы-интерпретатора.
Кроссплатформенность. Python-разработчик может запустить свою программу на любой платформе, где установлен интерпретатор, — например, на Windows, Linux или macOS.
Инструменты. Для Python доступно огромное количество фреймворков и библиотек, которые содержат готовые шаблоны кода и помогают веб-разработчикам, дата-аналитикам или ML-инженерам решать задачи любой сложности.
Единый стиль. PEP8 — документ от создателя Python Гвидо ван Россума, который описывает стандарты внешнего вида и структуры кода: максимальную длину строки, использование пустых строк, пробелы, табуляции и др. PEP8 формирует единый стиль разработки на Python, что помогает программистам легко читать чужой код и упрощает работу в команде.
Развитое сообщество. Python собрал вокруг себя активное комьюнити, где можно найти полезные материалы, задать вопрос и просто пообщаться с другими питонистами. Вот несколько интересных ссылок:
— крупнейший англоязычный телеграм-чат Python-сообщества из 120 000+ участников, которые ежедневно общаются и помогают друг другу;
— еще один активный и полностью русскоязычный чат по разработке на Python в телеграме;
— база вопросов с меткой «Python» на сайте StackOverflow, где также можно задавать свои вопросы;
— российский форум Python-сообщества для поддержки и взаимопомощи.
Откуда берутся мемы
Несмотря на рост популярности Питона, его полюбили далеко не все разработчики. Оказывается, многие из них считают Питон языком для новичков, которому нечего делать в «серьезном» программировании.
Причина неприязни проста — слишком легкое и быстрое обучение: пока одни программисты мучаются с длинным синтаксисом, питонисты могут освоить язык всего за несколько недель.
Давайте разбираться наглядно. Для этого напишем простую программу «Hello, World!» на трех конкурирующих языках — Python, Java и C++, — а затем сравним их синтаксис.
class App { public static void main(String[] args) { System.out.println("Hello, World!"); } }
main() { std::cout << "Hello, World!"; }
print('Hello, World!')
Код на Python действительно получился самым коротким и простым. Впрочем, низкий порог вхождения и понятный синтаксис — скорее преимущество, чем недостаток. А хейтеры, которые утверждают, что Python не подходит для разработки сложных проектов, сильно ошибаются: именно на Питоне написаны крупнейшие веб-ресурсы Reddit, Pinterest, YouTube и Spotify, поисковые системы Google и стриминговый сервис Netflix.
Язык Python недолюбливают программисты других языков. Основная причина — в динамическом исполнении кода и из-за этого слабой проверки ошибок на этапе компиляции проекта. Такие языки, как Java, C#, Rust, C/C++, а также в большей части Golang и TypeScript, имеют огромное количество автоматических проверок. Например, функция, принимающая строку, выдаст ошибку при передаче массива или числа в качестве аргумента во время сборки программы. В то же время Python будет готов принять почти любой тип. Если вы случайно передали число, то ошибку увидите только во время запуска программы. Бывает, что проблемы с кодом обнаруживаются на самом позднем и неприятном этапе — у клиентов.
Еще один камень, который бросают в сторону Python, — скорость работы фреймворков. Отчасти это правда: для финансовых операций на биржах, как правило, используют Java, .NET и C++. Тем не менее лучше не кидать камни, а использовать языки и утилиты под задачи, для которых они хорошо подходят. Например, библиотеки Python для работы со статистическими данными, такие как NumPy, написаны на C и C++, а Python просто является оберткой над вызовами. Скорость обработки будет почти одинакова как для Python, так и для C++ в этом случае. Также есть альтернатива для ускорения Python-проектов с добавлением типов в код и статической компиляции под названием Cython — от смешения C и Python.
Хотя у Python есть свои недостатки, он остается одним из самых красивых и простых языков программирования. Python обладает лаконичным синтаксисом и легко читается. Примеры на «псевдокоде» часто являются действующим кодом и на Python. Это делает его популярным выбором для обучения студентов и начинающих программистов.
Разработчик на Python: что делает и где работает
Python Developer — это программист, который использует Python в качестве своего основного языка, пишет на нем код, разрабатывает веб-сайты, приложения, десктоп-программы и даже небольшие игры.
Рабочий день программиста на Python состоит из написания кода, проведения проверочных юнит-тестирований и исправления ошибок. Также разработчик может оптимизировать код, вместе с командой участвовать в обсуждении архитектуры продукта, писать SQL-запросы к базам данных и выполнять другие обязанности, характерные для сферы его деятельности.
Специалисты по работе с Python в нескольких областях:
Веб-разработка. Python обычно используется бэкенд-разработчиками для создания серверной части веб-ресурсов, так как не подходит для разработки элементов фронтенда. Также на Python иногда разрабатывают бэкенд для десктопных и некоторых мобильных приложений. Популярные фреймворки — Django и Flask.
Аналитика данных и Data Science. C помощью Python аналитики и дата-сайентисты анализируют, очищают, обрабатывают и визуализируют большие массивы данных. Раньше для этих целей использовался язык R, но потом его вытеснил Python. Популярные библиотеки — Pandas, NumPy, SciPy, Matplotlib и др.
Машинное обучение. С помощью библиотек для Python ML-специалисты создают и тренируют модели ИИ, пишут системы по распознаванию лиц и речи, а также проводят глубокое машинное обучение. Популярные библиотеки — scikit-learn, Seaboarn, TensorFlow и Keras — надстройка над TensorFlow для Deep Learning.
Тестирование ПО. Прежде чем выкатывать решение в прод, бэкенд-разработчики тестируют готовый код на предмет багов и недочетов. Библиотеки — unittest для юнит-тестирований и Pytest.
Геймдев. Несмотря на то что на Python не пишут игровые движки из-за низкой скорости, вы все равно можете написать на Python простую 2D-игру с помощью библиотеки PyGame.
Python можно назвать королем среди языков программирования в машинном обучении. Как только вы попробуете создать модель для искусственного интеллекта, скорее всего, придете к применению следующих известных пакетов: PyTorch, Tensorflow.py, Keras или scikit. Все они написаны на Python. Предупрежу, что такие современные облачные провайдеры, как Azure, AWS, Google, Yandex, предоставляют решения по дообучению существующих мощных моделей на данных пользователей, и Python в этом случае уже не применяется. Тем не менее для создания своих моделей с нуля и как минимум для понимания того, что происходит в области машинного обучения, без Python не обойтись. Так, для одного медицинского проекта мне приходилось создавать как свою модель ИИ, так и модели на основе Google Auto ML и сравнивать результаты.
Для анализа данных Python и R являются наиболее популярными языками. В сообществе Python-разработчиков существуют известные пакеты, такие как SciPy, NumPy, Pandas и Matplotlib, которые позволяют проводить статистический анализ данных и их визуализацию. Надежные данные являются основой для моделей искусственного интеллекта, и Python-библиотеки обеспечивают эффективную подготовку и очистку данных. Мне приходилось готовить данные по пациентам, например фильтровать пустые ячейки таблиц, людей с неправдоподобным возрастом, с регистрацией со спам-email-адресов.
Еще одна область применения языка — DevOps. Инженерам по развертыванию и настройкам инфраструктуры удобнее писать небольшие скрипты на Python, чем на языке bash под Linux или Powershell для Windows. Мне приходилось писать скрипты с вызовом REST-запросов о результатах развертывания виртуальных машин, а также скрипты для автоматических проверок кода разработчиков перед коммитами в систему версий GIT.
Какие навыки нужны для работы на языке Python
Чтобы прокачать знания Python с нуля и до Junior, вы должны выучить синтаксис, а также переменные, структуры и типы данных, циклы, функции, классы, объекты и другие базовые принципы.
Из hard skills также пригодится:
— знание популярных фреймворков и библиотек;
— умение пользоваться Git и GitHub;
— знание SQL и умение работать с базами данных;
— работа с платформой для контейнеризации приложений Docker;
— написание юнит-тестов.
Среди soft skills работодатели оценят коммуникативные навыки, умение работать в команде, логическое мышление и высокую ответственность.
Востребованность на рынке труда
Сейчас на hh.ru открыто свыше 9600 вакансий для программистов Python по России. По данным Хабр.Карьеры, средняя зарплата всех Python-разработчиков за 1-е полугодие 2023 года — 188 000 рублей в месяц.
А теперь рассмотрим перспективы и зарплаты программистов на Python для каждого из трех грейдов по отдельности.
Junior Python: 390+ вакансий на hh.ru, средняя зарплата Junior Python — 76 000 рублей в месяц.
Middle Python: 760+ вакансий на hh.ru, средняя зарплата Middle Python — 186 000 рублей в месяц.
Senior Python: 3200+ вакансий на hh.ru, средняя зарплата Senior Python — 272 000 рублей в месяц.
Как стать Python-разработчиком: пошаговая инструкция
Благодаря интуитивно понятному синтаксису выучить Python сможет даже новичок без технического образования и опыта в программировании. Рассказываем, как правильно начать погружение в Python.
Шаг первый. В первую очередь подготовьте Python Junior Roadmap — дорожную карту с пошаговым планом освоения навыков. С помощью роадмап можно не только быстрее добиться поставленной цели, но и понять, куда вам двигаться дальше.
Полезные ссылки:
— роадмап для новичков, которые только начинают изучать основы и синтаксис языка Python;
— подробный роадмап для начинающих Python-разработчиков, актуальный на 2023 год.
Шаг второй. Приступайте к чтению профильной литературы. В интернете вы найдете множество учебников как для начинающих, так и для продвинутых питонистов. Если у вас совсем нет опыта работы с Python, начните с учебников М. Доусона «Программируем на Python» и М. Лутца «Изучаем Python». Тем, кто уже знаком с разработкой на среднем уровне, подойдет книга Д. Бейдера «Чистый Python».
Если вы решили развиваться в Data Science и аналитике данных, то учебник У. Маккини «Python и анализ данных» — ваш must read. Для изучения Python в сфере машинного обучения рекомендуем книгу А. Мюллера «Введение в машинное обучение с помощью Python».
Полезные ссылки:
— электронная версия книги «Программируем на Python»;
— официальный сайт Python, где собрана целая библиотека обучающих книг для разработчиков разных уровней подготовки;
— лучшее пособие для Python-разработчиков любого грейда — официальная документация, которая содержит инструкции и примеры кода.
Шаг третий. Когда вы освоите теорию, начинайте решать задачи и закреплять материал. Чем больше задач решите, тем лучше. Надоели упражнения? Пройдите квест и учитесь писать код прямо во время игры.
Полезные ссылки:
— Проект Эйлера — сайт, куда русскоязычное сообщество питонистов выкладывает задачи, переведенные с английского языка;
— okpython — сборник неплохих упражнений для начинающих;
— Exercism — бесплатная англоязычная платформа, где доступны 137 упражнений по Python;
— квест PythonChallenge, где ваша задача — составить алгоритм для перехода на следующий уровень;
— детская игра CodeMonkey, где игрок помогает обезьянке собрать бананы с помощью команд, написанных на Python.
Шаг четвертый. Постепенно углубляйте свои знания: начните изучать основы объектно-ориентированного программирования, популярные библиотеки и фреймворки, научитесь работать с системой управления Git и GitHub.
Полезные ссылки:
— официальная документация по фреймворку Django с полезной информацией для начинающих;
— небольшой видеокурс на YouTube, посвященный введению в работу с фреймворком Flask.
Шаг пятый. Установите на своем компьютере среду разработки — например, стандартный редактор IDLE, Sublime Text или Visual Studio от Microsoft — и начинайте писать. Сначала вы напишете один фрагмент кода, затем — небольшую программу, а потом создадите собственный pet-проект, который будет хорошо выглядеть в вашем портфолио и резюме Junior Python-разработчика и поможет быстрее найти работу.