Это новый выпуск в цикле статей про профессии и технологии, которые сейчас актуальны в ИТ, на этот раз про разработку на Python и бэкенд. Вот что у нас уже вышло в этой серии:
Чтобы разобраться с тем, что нужно Python-разработчику в 2023 году для работы, посмотрим на курс Практикума — что там за инструменты и как они применяются.
Python и бэкенд-разработка
Python — язык программирования, который используется во многих областях:
- бэкенд — программы, которые работают на сервере и отвечают на запросы или делают какую-то внутреннюю серверную работу;
- управление контентом — Python помогает собирать веб-страницы, на которые заходят пользователи;
- скрипты для администрирования и управления компьютерами и серверами;
- обычные приложения для компьютера;
- скрипты для промежуточной обработки данных;
- нейросети;
- аналитика и биг-дата.
Чаще всего, когда говорят о Python-разработке, имеют в виду бэкенд — программы, которые работают на сервере. Это могут быть телеграм-боты, системы рекомендаций в интернет-магазинах, служба аналитики или почтовый сервис со встроенной нейросетью.
Основной язык программирования: Python
Python — основной язык программирования в современной бэкенд-разработке. Также на нём пишут серверную часть сайтов: Dropbox, Netflix, Spotify, YouTube частично или полностью написан на Python.
Чтобы хорошо программировать на Python, нужно знать:
- синтаксис и конструкции языка;
- основные алгоритмы и их реализации;
- профильные библиотеки и фреймворки (например Numpy для обработки больших объёмов данных).
На старте достаточно синтаксиса и алгоритмов, а остальное придёт в процессе работы над учебными или реальными проектами. Нет смысла изучать все фреймворки мира, если в работе не пригодится ни один из них.
Но одного знания Python мало для бэкенд-разработки: кроме него нужно уметь пользоваться и другими инструментами и технологиями.
Фреймворк для веб-разработки
Django — популярный фреймворк для веб-разработки на Python, с ним можно создавать сайты любых масштабов. Например, Google использует Django для некоторых своих сервисов.
Вот что есть в Django после установки:
- встроенный веб-сервер, чтобы не ставить его отдельно;
- механизмы авторизации пользователей;
- работа с базами данных;
- шаблоны страниц и простых веб-интерфейсов;
- простые способы выводить, наполнять, шаблонизировать и автоматизировать выдачу веб-страниц;
- встроенная система кеширования, чтобы снизить нагрузку на сайт.
Проще говоря, Django — это библиотека элементов, с помощью которых можно быстро собрать работающее веб-приложение со сложной логикой.
База данных
Чтобы сервер мог отдавать на сайт информацию из базы данных (например, о товарах), его нужно этому научить. Для этого разработчик должен уметь работать с SQL и какой-то базой данных типа PostgreSQL.
SQL — специальный структурированный язык запросов для работы с базами данных. SQL расшифровывается как structured query language — язык структурированных запросов. «Структурированный» означает, что каждый запрос должен иметь определённую структуру, чтобы база поняла, как на него реагировать.
С помощью запросов можно вносить и удалять данные, настраивать доступ для разных пользователей, а главное — искать то, что нужно, по любым параметрам.
PostgreSQL — система управления базами данных с открытым исходным кодом. Она поддерживает большинство современных функций для работы с базами данных и управляется с помощью языка SQL. Бэкенд-разработчики используют её для того, чтобы хранить данные о пользователях, товарах, покупках и обо всём остальном.
Серверная часть
Так как бэкенд работает на сервере, то бэкенд-разработчик тоже должен знать, как он устроен, что умеет и как им управлять.
Nginx — веб-сервер, который может обрабатывать десятки тысяч запросов в секунду. Треть всех сайтов в интернете используют nginx. Этот веб-сервер разработали два программиста из России: Игорь Сысоев и Максим Коновалов. Его отличие от других серверов в том, что он управляет запросами как жонглёр: получает запрос, тут же что-то делает и переключается на следующий запрос, не дожидаясь реакции на предыдущее действие, и так по кругу.
Gunicorn — сервер, который связывает Python-фреймворк и веб-сервер, например связывает между собой Django и nginx. Это упрощает разработку и делает её более стабильной и предсказуемой.
Разное
GitHub — сервис для хранения, управления и совместной разработки кода. А ещё это система контроля версий — штука, которая помогает разработчикам ориентироваться в коде, находить и отслеживать изменения. GitHub может вернуть нужные файлы в исходное состояние или показать только те изменения, которые вы сделали за определённое время.
Bash — программная оболочка, которая позволяет взаимодействовать с программами и системами компьютера с помощью команд. Технически это обычная командная строка, когда в консоли можно написать команду компьютеру. В бэкенде командная строка пригодится:
- для установки всего серверного инструментария, например PHP, Apache и MySQL;
- для работы с API и запросами;
- для настройки серверного окружения и разграничения доступа;
- для работы с репозиториями и для создания резервных копий проектов;
- для тестирования сервера под нагрузкой;
- для получения логов для анализа работы серверной части.
Docker позволяет работать с приложениями в изолированной виртуальной среде — в контейнерах. В контейнере может храниться операционная система, файлы программы, веб-сервер и другие нужные вещи для работы приложения. По сути, это возможность передать своё приложение другому разработчику «вместе с компьютером». В бэкенде Докер нужен для того, чтобы быстро запускать приложения и сервисы с уже готовыми настройками.
Сколько платят
По данным Хабр Карьеры, средняя зарплата Python-разработчика — 200 тысяч рублей.
Если говорить про новичков, то джуниоры в среднем получают от 85 до 112 тысяч, а ребята поопытнее — от 191 тысячи рублей. В среднем, чтобы вырасти от джуниора до мидла в средней компании, достаточно 6–9 месяцев — но это зависит ещё от желания самого программиста подтянуть свои навыки.
