В среде разработки говорят, что у Python низкий порог входа. Это значит, что в нём будет несложно разобраться и можно быстро получить первые результаты, даже если вы абсолютный новичок в программировании.
В некоторых языках, например Java или C++, код выглядит устрашающе: как длинное полотно непонятных знаков. Так происходит, когда в языке используется много вспомогательных спецсимволов и нет структурного деления, пробелов и абзацев. Python, напротив, визуально понятный и легко читаемый язык. Это один из его главных принципов, прописанный в PEP-8, официальном своде правил по стилю Python.
Там говорится, что «код чаще читают, чем пишут», поэтому у языка должен быть понятный синтаксис. В работе обязательно используются отступы и пробелы, за счёт которых код становится похожим на привычный текст с пробелами, абзацами и списками.
При этом Python — профессиональный язык, в котором есть зрелые инструменты для создания высоконагруженных сервисов и сложных проектов: платёжных систем, систем компьютерного зрения, алгоритмов на базе ИИ.
Гвидо ван Россум — «великодушный диктатор» проекта Python. Источник
Именно поэтому сегодня этот язык чаще всего используется там, где нужно работать с данными. На Python создают алгоритмы для машинного обучения и анализа данных, бэкенды приложений. Очень многие известные сервисы — DropBox, Instagram* — изначально были написаны на Python. По мере развития платформ и перехода на микросервисную архитектуру количество используемых языков росло. Но Python по-прежнему остаётся важной составляющей бэкенда этих программ.
А ещё Python — классический язык для машинного обучения. Это тоже объясняется характером кода и историческими предпосылками. Простой в обращении язык с самого начала активно использовался в академической среде, где в основном и изучались возможности машинного обучения и компьютерного зрения. Учёным и лаборантам было удобно обрабатывать на нём большие объёмы данных. А когда машинное обучение и нейросети вышли за пределы научной среды и стали использоваться повсеместно — в маркетинге, медицине, городской жизни, — Python сохранил за собой место главного языка для алгоритмов.
Кажется, что с помощью Python можно решать практически любые задачи. Но у него тоже есть ограничения. Например, в этом языке не слишком хорошо развиты инструменты для создания работы с интерфейсами. Поэтому Python практически не используется во фронтенд-разработке: на нём не пишут трёхмерные игры, мобильные приложения. Технически это можно сделать, но фактически для этого есть более удобные и эффективные инструменты.
На Python можно создать программу для ведения учёта на складе или скрипт для email-рассылки. Разработать сервис предиктивной аналитики, который будет рассчитывать модели поведения и вероятность реализации разных сценариев. Построить банковское приложение или программу для автоматизации какого-нибудь сложного процесса, где нужно собрать большое количество данных и сделать на их основании расчёт.
Пример такой программы, написанной на Python, — сервис для системы обязательного медицинского страхования. Чтобы поликлиники получали финансирование из бюджета, а мы могли бесплатно ходить к врачам, нужно обработать очень много данных. Зафиксировать каждое обращение в районную поликлинику, отметить, какую помощь и в каком объёме получил пациент, а в конце месяца свести эти данные, чтобы рассчитать объём финансирования для каждой больницы.
Вести такой учёт вручную очень сложно: слишком высока вероятность ошибок и потери данных. Зато благодаря программе, написанной на Python, по ОМС могут работать сотни и тысячи больниц. Алгоритм будет автоматически собирать все данные в течение выбранного времени, а затем объединит их и сделает точные расчёты по нужным показателям.
В первую очередь синтаксис языка. Это основные правила, по которым пишутся команды. Нужно знать, как обозначаются типы данных, операции с числами, условия и циклы. Уметь подключать основные библиотеки — готовые функции, которые можно подключить к языку, чтобы быстро решить задачу.
Скорее всего, понадобится навык работы с Flask, Django или FastAPI, одними из самых популярных фреймворков для Python. Нужно научиться работать с Git — системой, которая позволяет управлять версиями проекта.
Всё это — базовые знания, необходимые для того, чтобы считаться Junior-специалистом. Программисту Python уровня middle важно не только знать сам язык, но и разбираться в инфраструктурных особенностях.
По Python много бесплатных материалов в свободном доступе, есть даже учебники по фреймворкам — как это пособие Марти Элчина
Программу для автоматизации сталелитейного завода быстрее и проще напишет тот программист, который сам разбирается в сплавах. Ему не придётся звать на помощь отраслевых специалистов, а доработок в сервисе будет намного меньше. Именно поэтому отличные разработчики зачастую получаются из тех, кто пришёл в IT из смежных отраслей: финансовой отрасли, логистики, геологии, экономики.
Наконец, ещё важно для программиста на языке Python — высокий уровень культуры разработки и отличные soft skills, или личностные качества. Важно уметь проводить code review другого разработчика и писать собственный код так, чтобы его мог проверить коллега; работать в команде, выстраивать коммуникацию, находить компромиссы и правильно расставлять приоритеты.
Зарплата разработчика на Python зависит от региона и опыта. По данным Хабр Карьера, средняя зарплата IT-специалиста со знанием Python составляет 204 тыс. руб. Начинающий специалист без опыта может рассчитывать на зарплату от 52 тыс. руб., а старший специалист — сеньор, — может получать 330 тыс. руб. и больше.
Примеры вакансий на hh.ru для специалиста без опыта и с опытом от 3 лет
Но, несмотря это, Python стабильно держится в лидерах топа самых популярных языков. Причина не только в его возможностях, но и в перспективах, связанных с машинным обучением, где Python является основным инструментом. Искусственный интеллект, компьютерное зрение и машинное обучение — одни из самых трендовых направлений. Согласно отчёту BCC, мировой рынок машинного обучения может вырасти с $17,1 млрд в 2021 году до $90,1 млрд к 2026 году. Технологии будут активно развиваться во всём мире, и востребованность data-science-специалистов будет расти, а значит, Python сохранит популярность надолго.
Например, популярный среди новичков учебник Натана Кларка Python: Programming Basics for Absolute Beginners. Или бесплатное пособие Марка Пилгрима Dive into Python.
В интернете можно найти бесплатные задачи по Python, например на проекте Эйлера, где можно решить задачу, а потом обсудить её с другими участниками.
Пример решения задачи с проекта Эйлера. Источник
В Яндекс Практикуме есть несколько курсов по разработке на Python: для начинающих специалистов, которые хотят выучить язык с нуля, и для тех, кто уже умеет программировать и хочет вырасти до уровня middle python-разработчика. В рамках курсов можно научиться работать с базами данных, контролировать версии кода и тестировать код, работать с Django. На продвинутом курсе детально разбирают архитектурный паттерн ETL, пишут сервис для миграции данных из PostgreSql в Elasticsearch и разбираются с асинхронным Python.
При этом вся работа ведётся в команде на примере конкретных практических заданий. Например, можно создать собственную соцсеть, написать бота или, на продвинутом курсе Python-разработчика, панель для онлайн-кинотеатра. Можно выбрать любой проект, главное, чтобы вам было интересно и действительно хотелось с ним работать. Тогда вы точно не свернёте на полпути и сможете сделать разработку своей профессией.
* сервис предоставляется организацией, признанной экстремистской на территории РФ