Программирование  •  19 мая 2022  •  5 мин чтения

Серьёзный язык для backend: что такое Python и как стать Python-разработчиком

Python — язык программирования, на котором пишут код для сайтов, приложений и программ. Это один из самых востребованных инструментов в разработке. В рейтинге Tiobe, который оценивает популярность языков программирования по всему миру, Python находится на первом месте.
Руслан Юлдашев
Яндекс Практикум
Наставник на курсе для продолжающих «Python-разработчик»
Такая востребованность объясняется просто. Python — очень дружелюбный и при этом серьёзный язык, на котором можно делать даже самые сложные программы.

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

В некоторых языках, например Java или C++, код выглядит устрашающе: как длинное полотно непонятных знаков. Так происходит, когда в языке используется много вспомогательных спецсимволов и нет структурного деления, пробелов и абзацев. Python, напротив, визуально понятный и легко читаемый язык. Это один из его главных принципов, прописанный в PEP-8, официальном своде правил по стилю Python.

Там говорится, что «код чаще читают, чем пишут», поэтому у языка должен быть понятный синтаксис. В работе обязательно используются отступы и пробелы, за счёт которых код становится похожим на привычный текст с пробелами, абзацами и списками.

При этом Python — профессиональный язык, в котором есть зрелые инструменты для создания высоконагруженных сервисов и сложных проектов: платёжных систем, систем компьютерного зрения, алгоритмов на базе ИИ.

Где используется Python

Исторически Python создавался как инструмент для работы с данными. Его автор, голландский разработчик Гвидо ван Россум, придумал этот язык, чтобы работать с конфигурационными файлами — текстовыми документами, которые содержат информацию для настройки программы. Таких файлов может быть тысячи, и Python создавался специально для того, чтобы автоматизировать и упростить работу с ними.
Гвидо ван Россум — «великодушный диктатор» проекта Python. Источник
Именно поэтому сегодня этот язык чаще всего используется там, где нужно работать с данными. На Python создают алгоритмы для машинного обучения и анализа данных, бэкенды приложений. Очень многие известные сервисы — DropBox, Instagram — изначально были написаны на Python. По мере развития платформ и перехода на микросервисную архитектуру количество используемых языков росло. Но Python по-прежнему остаётся важной составляющей бэкенда этих программ.

А ещё Python — классический язык для машинного обучения. Это тоже объясняется характером кода и историческими предпосылками. Простой в обращении язык с самого начала активно использовался в академической среде, где в основном и изучались возможности машинного обучения и компьютерного зрения. Учёным и лаборантам было удобно обрабатывать на нём большие объёмы данных. А когда машинное обучение и нейросети вышли за пределы научной среды и стали использоваться повсеместно — в маркетинге, медицине, городской жизни, — Python сохранил за собой место главного языка для алгоритмов.

Кажется, что с помощью Python можно решать практически любые задачи. Но у него тоже есть ограничения. Например, в этом языке не слишком хорошо развиты инструменты для создания работы с интерфейсами. Поэтому Python практически не используется во фронтенд-разработке: на нём не пишут трёхмерные игры, мобильные приложения. Технически это можно сделать, но фактически для этого есть более удобные и эффективные инструменты.

Где работает Python-разработчик

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

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

Пример такой программы, написанной на Python, — сервис для системы обязательного медицинского страхования. Чтобы поликлиники получали финансирование из бюджета, а мы могли бесплатно ходить к врачам, нужно обработать очень много данных. Зафиксировать каждое обращение в районную поликлинику, отметить, какую помощь и в каком объёме получил пациент, а в конце месяца свести эти данные, чтобы рассчитать объём финансирования для каждой больницы.

Вести такой учёт вручную очень сложно: слишком высока вероятность ошибок и потери данных. Зато благодаря программе, написанной на Python, по ОМС могут работать сотни и тысячи больниц. Алгоритм будет автоматически собирать все данные в течение выбранного времени, а затем объединит их и сделает точные расчёты по нужным показателям.

Что нужно знать, чтобы работать с Python

В первую очередь синтаксис языка. Это основные правила, по которым пишутся команды. Нужно знать, как обозначаются типы данных, операции с числами, условия и циклы. Уметь подключать основные библиотеки — готовые функции, которые можно подключить к языку, чтобы быстро решить задачу.

Скорее всего, понадобится навык работы с Flask, Django или FastAPI, одними из самых популярных фреймворков для Python. Нужно научиться работать с Git — системой, которая позволяет управлять версиями проекта.

Всё это — базовые знания, необходимые для того, чтобы считаться Junior-специалистом. Программисту Python уровня middle важно не только знать сам язык, но и разбираться в инфраструктурных особенностях.

По Python много бесплатных материалов в свободном доступе, есть даже учебники по фреймворкам — как это пособие Марти Элчина.
Инфраструктурные навыки — это умение глубоко работать с базами данных, в том числе со специфическими нереляционными СУБД, которые используются, например, для поиска или аналитики. Нужно разбираться в индексах, структурах хранения данных и понимать, где и когда возможны замедления работы базы данных.

Программу для автоматизации сталелитейного завода быстрее и проще напишет тот программист, который сам разбирается в сплавах. Ему не придётся звать на помощь отраслевых специалистов, а доработок в сервисе будет намного меньше. Именно поэтому отличные разработчики зачастую получаются из тех, кто пришёл в IT из смежных отраслей: финансовой отрасли, логистики, геологии, экономики.

Наконец, ещё важно для программиста на языке Python — высокий уровень культуры разработки и отличные soft skills, или личностные качества. Важно уметь проводить code review другого разработчика и писать собственный код так, чтобы его мог проверить коллега; работать в команде, выстраивать коммуникацию, находить компромиссы и правильно расставлять приоритеты.

Сколько зарабатывают Python-разработчики

Зависит от региона и опыта. Средняя зарплата Python-программиста во втором полугодии 2021 года составляла 150 тыс. рублей.
Статистика зарплат в IT-среде с разбивкой по языкам. Источник
Больше всех зарабатывают программисты Python в Москве, Санкт-Петербурге и Воронеже. Но это не значит, что специалисты в других регионах обречены на низкую зарплату. Многие компании предлагают удалённую работу: можно жить в любом городе страны, работать на московскую компанию и получать хорошее вознаграждение.
5 самых высокооплачиваемых городов, согласно опросу Хабр. Карьеры. Источник
На уровень зарплаты серьёзно влияет и опыт. Junior-специалисты по Python могут рассчитывать на 50—100 тыс. рублей. Зарплата питон-разработчика уровня middle — от 200 тыс. рублей, senior могут претендовать на 300—450 тыс. рублей.

Перспективы профессии

Python разменял второй десяток, а новые языки программирования появляются едва ли не каждые пять лет. В 2007 году был создан Go, в 2014 году Swift, в 2016 году Kotlin. У каждого из них — своё комьюнити, которое верит в перспективы и возможности нового языка и всячески убеждает, что он лучше и быстрее старого.
Классический спор на Хабре между приверженцами языка Rust и Python-разработчиками. Источник
Но, несмотря это, Python стабильно держится в лидерах топа самых популярных языков. Причина не только в его возможностях, но и в перспективах, связанных с машинным обучением, где Python является основным инструментом. Искусственный интеллект, компьютерное зрение и машинное обучение — одни из самых трендовых направлений. Согласно отчёту BCC, мировой рынок машинного обучения может вырасти с $17,1 млрд в 2021 году до $90,1 млрд к 2026 году. Технологии будут активно развиваться во всём мире, и востребованность data-science-специалистов будет расти, а значит, Python сохранит популярность надолго.

Где и как научиться Python-разработке

Чтобы овладеть профессией «python-разработчик», не обязательно иметь диплом технического вуза. Язык можно изучить самостоятельно: для этого есть множество книг, лекций, статей и готовых задач.

Например, популярный среди новичков учебник Натана Кларка Python: Programming Basics for Absolute Beginners. Или бесплатное пособие Марка Пилгрима Dive into Python.
В интернете можно найти бесплатные задачи по Python, например на проекте Эйлера, где можно решить задачу, а потом обсудить её с другими участниками.

Пример решения задачи с проекта Эйлера. Источник
Но проще всего стать python-разработчиком, если изучать язык на конкретном проекте. Решение практической задачи поможет быстрее сориентироваться, изучить основные паттерны и найти решения для ошибок, когда они возникнут.

В Яндекс Практикуме есть несколько курсов по разработке на Python: для начинающих специалистов, которые хотят выучить язык с нуля, и для тех, кто уже умеет программировать и хочет вырасти до уровня middle python-разработчика. В рамках курсов можно научиться работать с базами данных, контролировать версии кода и тестировать код, работать с Django. На продвинутом курсе детально разбирают архитектурный паттерн ETL, пишут сервис для миграции данных из PostgreSql в Elasticsearch и разбираются с асинхронным Python.

При этом вся работа ведётся в команде на примере конкретных практических заданий. Например, можно создать собственную соцсеть, написать бота или, на продвинутом курсе Python-разработчика, панель для онлайн-кинотеатра. Можно выбрать любой проект, главное, чтобы вам было интересно и действительно хотелось с ним работать. Тогда вы точно не свернёте на полпути и сможете сделать разработку своей профессией.

Поделиться 
Tue Sep 20 2022 18:44:01 GMT+0300 (Moscow Standard Time)