Что нужно знать, чтобы сейчас начать работать backend-разработчиком?
Это рубрика, в которой эксперты коротко отвечают на актуальные и волнующие вопросы об IT-профессиях, будущем сферы и ее перспективах.

Освойте профессию
«Fullstack-разработчик на Python»
Backend-разработчики отвечают за внутренние процессы приложений и сайтов, выстраивают обмен данными, находят системы для управления и хранения информации, обеспечивают высокую производительность при минимальном количестве сбоев. Эксперты отвечают на вопрос о том, как стать таким специалистом.
Профориентационный
проект с Сергеем Мезенцевым
Определитесь с профессией, которая подойдет именно вам
22 ноября в 19:00 мск
Записаться

Мнения экспертов

Алексей Шарыпов,
Lead Python Development в ООО «ВК» (VKPay)
Backend-разработчик отвечает за внутреннюю логику работы приложений и сайтов. Отличие этой профессии от большинства других разработчиков заключается в том, что его работу часто не видно невооруженным взглядом. Результат работы сложной логики приложения, написанного backend-разработчиком, пользователь видит в приложениях и на сайтах, нажимая на кнопки, загружая страницы или обращаясь к голосовому помощнику. То, чем frontend отличается от backend’а, мы объяснили на мемах. Кроме привычных сайтов и приложений, в создании которых участвуют backend-разработчики, можно найти множество отраслей, где присутствует идентичная разработка. Среди них финансовые сервисы, сложные агрегаты, промышленное оборудование, умные дома, самолеты.

Станьте веб-разработчиком и найдите стабильную работу на удаленке
- 2–4 backend-разработчика;
- 1 frontend-разработчик;
- 1 тестировщик;
- 1 дизайнер;
- 1 менеджер.
Встречаются разные вариации, но дизайнеры, менеджеры и остальные специалисты чаще тратят только часть рабочего времени на конкретную команду, так как их ресурсы используются в нескольких командах.
С одной стороны, кризис способствовал оттоку IT-специалистов, с другой — ушли многие западные компании. Вместе с ними некоторые российские компании также вывезли бизнес и специалистов в близлежащие страны.
В результате много разработчиков начали поиск стабильных источников дохода за границей. Дефицит IT-специалистов на западном рынке снизился. В России в связи с нестабильностью ситуации многие, кто не смог или не захотел уехать, предпочитают переждать кризис, не меняя работу. Те, кто потерял работу, предпочитают зарплату в валюте и работу на западные страны.
Backend-разработка в ближайшей перспективе будет очень актуальна. Даже до кризиса во всех отраслях наблюдалась нехватка IT-специалистов. Текущая ситуация заставила переключиться в режим ожидания, так как никто пока не понимает, что будет дальше. После выхода из кризиса в России нужны будут разработчики как на места тех, кто предпочел уехать, так и в новые компании независимо от того, вернутся ли после кризиса западные гиганты или возникнут новые решения на базе отечественных разработок.

Антон Губарев,
Senior Backend Engineer в компании «Авито»
Некоторые компании ушли из России. Однако на их место уже пробуют вставать российские стартапы, открываются новые вакансии. Я имею в виду интернет-ресурсы и инфраструктуру для них: инструменты разработки, облачные технологии и т.д. Здесь абсолютно точно требовались и будут требоваться backend-разработчики. Процесс становления не быстрый, но уже заметно появление новых проектов, масштабирование старых, которые занимают освобождающиеся ниши. Также в стране есть и крупные компании вроде Яндекса, VK, Авито, которые продолжают активную деятельность и постепенно начинают открывать приостановленный на время найм.
С начала кризиса в работе backend-разработчика ничего не поменялось. Используются те же технологии. Требования к кандидатам тоже прежние. Очень важно иметь профессиональное образование. Конечно, можно обойтись и без него, но наиболее широкие перспективы открываются в сфере искусственного интеллекта и машинного обучения, где требуются глубокие знания. Можно начать с профессиональных курсов. Наиболее востребованные навыки для старта — алгоритмы и структуры данных, какой-либо один язык программирования, понимание на базовом уровне SQL, контейнеризации и виртуализации. Обязательно иметь навыки работы в Linux. Также не лишним будет знание принципов работы компьютерных сетей.
О том, как стать backend-разработчиком с нуля, мы рассказали в этой статье.
Backend-разработчики будут востребованы в разных нишах. Наиболее важными и перспективными отраслями во всем мире являются искусственный интеллект и машинное обучение. И Россия тут не исключение. Пока что эти отрасли достаточно молоды в нашей стране, но уже в самом ближайшем будущем их совершенно точно ждет рост. Также всегда будут с нами интернет-ресурсы: социальные сети, интернет-магазины, площадки для размещения объявлений и пр.

Игорь Лопушко,
Backend Team Lead в компании RBI Retail Innovation
Профессия backend-разработчика очень востребована , т.к. большая часть приложений (мобильные, компьютерные игры, веб-сайты) чаще всего имеют backend-часть. Именно в ней находится большая часть бизнес-логики, без которой невозможно любое современное приложение.
Профессия затрагивает много разных областей программирования и технологий. Требования к backend-разработчикам меняются не так часто, как к frontend-разработчикам.
О требованиях к frontend-разработчикам мы говорили в этой статье.
Первое, что нужно знать, — базовые алгоритмы программирования и структуры данных. Это поможет получить знания принципов и приемов кодирования. Ведь главное для программиста — не знание языков или технологий, а умение решать задачи и выражать это в виде программного кода. Также критически важными навыками являются знание английского языка и умение быстро обучаться. Технологии развиваются очень быстро, и программистам нужно постоянно узнавать что-то новое. Если вы владеете английским языком, то у вас будет преимущество в доступности англоязычных ресурсов, книг, статей, видеоуроков. Кроме того, чаще всего документация по конкретным технологиям написана на английском языке.
Очень важно владеть одним из языков программирования: Python, Go, C#, Java, JavaScript, Rust, Ruby. Данные языки чаще всего используются для программирования backend-части. Не так важно, каким языком вы владеете, главное — как вы им можете пользоваться.
Для backend-разработчика обязательно знание баз данных, в первую очередь реляционных (SQL): Postgres, MySQL, SQL Server, Oracle. Также желательное знание и нереляционных (NoSQL) БД: Cassandra, MongoDB, CouchDB, Neo4j, RavenDB. Базы данных очень часто используются в приложениях, позволяя сохранять жизненно важные для них данные.
Немаловажным навыком является понимание устройства серверов и интернет-ресурсов, знание API, понимание принципов RESTful-сервисов. Также к обязательным навыкам backend-разработчика можно отнести работу с системами контроля версий, например Git. Особенно важным является навык написания различных видов тестов, таких как модульные или интеграционные. Кроме того, необходимо понимание принципов совместной работы с frontend-разработчиком и верстальщиком.
Backend-разработчики участвуют во множестве проектов практически во всех отраслях: медицине, образовании, банковской сфере, электронной коммерции, сфере развлечений, туризме и многих других. Поэтому специалисты всегда востребованы и им легко найти работу.
Часто задаваемые вопросы
Что такое бэкенд-разработка?
Бэкенд-разработка — это процесс создания программной части веб-приложения, отвечающей за обработку информации на серверной стороне. Бэкенд работает в связке с фронтендом, который отвечает за отображение информации на клиентской стороне. Бэкенд-разработчики работают с серверными языками программирования и базами данных, используя их для обработки и хранения информации. Они также занимаются созданием интерфейсов для взаимодействия с фронтендом. Без бэкенд-разработки веб-приложения не смогут работать.
Чем занимается бэкенд-разработчик?
Бэкенд-разработчик — это специалист, занимающийся разработкой функциональной части веб-сайта или приложения. Его работа заключается в создании серверной части приложения, настройке базы данных и разработке API для взаимодействия с фронтенд-решением. Бэкенд-разработчик работает с кодом на языках программирования Python, Ruby, PHP, Java и других, используя различные инструменты и фреймворки для оптимизации процесса. Он взаимодействует с различными системами и базами данных, обеспечивает хранение и передачу информации между клиентской частью и сервером. Работа бэкенд-разработчика является ключевой для успешной и безопасной работы веб-сайтов и приложений.
Чем бэкенд- отличается от фронтенд-разработки?
Бэкенд-разработка подразумевает создание и поддержку серверной части веб-приложений. Бэкенд-разработчики занимаются обработкой данных, управлением базами данных, реализацией бизнес-логики и взаимодействием с другими системами. Фронтенд-разработка — создание пользовательского интерфейса.
Преимущества и недостатки у бэкенд-разработки
Преимущества
- Креативная работа для людей с аналитическим образом мышления.
- Большая ответственность.
- Высокая заработная плата.
- Большая востребованность на рынке.
- Возможность работать удаленно или в иностранных компаниях.
- Возможность стать фулстек-программистом после изучения фронтенда.
Недостатки
- Нужны серьезная подготовка и обширные знания.
- Новичкам бывает непросто найти работу.
- Нужно быть в курсе все время меняющихся технологий, чтобы оставаться востребованным специалистом.
- Для перехода с уровня на уровень требуется учиться и работать минимум 2-3 года.
Fullstack-разработчик на Python
Fullstack-разработчики могут в одиночку сделать IT-проект от архитектуры до интерфейса. Их навыки востребованы у работодателей, особенно в стартапах. Научитесь программировать на Python и JavaScript и создавайте сервисы с нуля.
Как стать web-разработчиком на Python за полгода: конкретный план действий
Всем привет! Меня зовут Евгений Степанов, и я Python Full Stack-Developer в компании PVS-Studio. В этой статье вы узнаете, что нужно сделать, чтобы за полгода стать Python backend-разработчиком. После прочтения данной публикации у вас будет чёткий план, который останется только реализовать. Поехали!

Веб для тех, кто постоянно развивается
В IT необходимо постоянное развитие. Без него вас просто могут «съесть» более любопытные и совершенствующиеся программисты. Веб не исключение. Пожалуй, это одна из тех сфер, где больше всего технологий, и их число постоянно растёт. Поэтому для backend-разработчика самосовершенствование — лучший друг. Если вы к нему не готовы — чтение данной статьи будет бесполезным (почти).
Насколько глубоки ваши знания в Python?
Надеюсь, вы понимаете, что без хорошего знания Python реализация этого плана невозможна. Циклы, условия, функции, классы, миксины — во всём этом вам нужно так же легко разбираться, как в чистке зубов. Если вы уже знаете этот язык программирования — отлично, можно приступать к выполнению плана. Если нет — вот 2 хорошие книги, которые помогут его изучить:
A byte of Python
Число страниц: 158
Коротко о книге: Данная книга, на мой взгляд, является лучшей для изучения Python с нуля. В 158 страницах автор лаконично и понятно объясняет все основы этого чудесного языка.

Сам себе программист
Автор: Кори Альтхофф
Число страниц: 209
Коротко о книге: В книге объясняются основы Python и немного затрагиваются Git, bash, алгоритмы, регулярные выражения и pip (пакетный менеджер для Python). А задачи для практики помогут лучше понять теоретический материал.

После прочтения любой из этих книг вы получите ликбез по Python (а также по программированию в целом) и сможете приступить к выполнению плана.
При чтении книг по программированию важно понимать, что это не художественная литература. Чтобы получить максимум пользы от этих руководств, необходимо практиковаться параллельно с их изучением. Например, после прочтения каждой главы можно придумывать задачи (или находить в Интернете) и использовать полученные знания для их решения. Это не только поможет вам закрепить пройденный материал, но и сделает более интересным дальнейшее чтение книги.
Стратегия для составления и реализации плана
«Если бы у меня было восемь часов на то, чтобы срубить дерево, я потратил бы шесть часов на то, чтобы наточить топор».
Авраам Линкольн
План – важнейшая составляющая достижения любой цели. Поэтому его необходимо уметь грамотно составлять. Это сэкономит ваше драгоценное время и сократит ненужную работу.
Каждый год люди составляют кучу планов и ставят множество задач. Вначале всё у них идёт хорошо, но уже через пару месяцев начинается откладывание дел на потом – ведь времени ещё полно, почти целый год (да и вообще, устал я, дам себе немного отдохнуть). Так длится вплоть до осени, когда сроки начинают поджимать. И вот в последние 2,3 месяца уходящего года люди увеличивают нагрузку, пытаясь наверстать упущенное. Но, конечно же, сделать это не удаётся, и достижение целей переносится на следующий год.
Такой подход, как можно заметить, не очень эффективен, тем более для веб-разработчика. Поэтому необходимо выбрать другой. Есть много разных стратегий для составления и реализации плана. Лично я пользуюсь способом из книги «12 недель в году» (авторы Брайан Моран и Майкл Леннингтон) и рекомендую его вам (как и саму книгу). Суть стратегии заключается в том, чтобы представлять год как 12 недель, а не как 12 месяцев. Отсюда и название. При таком мышлении, у целей на год будет дедлайн – 12 недель. Данный способ помогает сильно повысить производительность и начать по-настоящему ценить каждую неделю (ведь теперь 1 неделя — это 1 месяц).
При составлении плана я использовал данную стратегию. Полгода — это 6 месяцев. 6 месяцев — это примерно 24 недели. А 24 недели — это 2 года по 12 недель. Таким образом, можно сказать, что время реализации плана — два 12-недельных года.

Как правильно ставить цель
При составлении качественного плана у каждой цели должны быть:
- Дедлайн — крайний срок, когда нужно закрыть цель. Будет поджимать вас при каждом взгляде на него;
- Время, за которое нужно её выполнить. Поможет вам рассчитать дедлайн и понять, укладываетесь вы в него или нет;
- Детальное описание. Чем детальнее расписана задача, тем быстрее вы её сделаете и тем меньше времени потратите на лишнюю работу;
- Наличие инфинитива в формулировке цели. Заставит вас больше думать о том, чтобы выполнить (сделать) эту задачу. (Например: разобрать команду commit).
Составляем план
Внимание! Установка дедлайнов не дорого идёт с расчётом на то, что вы можете уделять реализации плана 6-8 часов в день.
1. Изучить книгу «ProGit» до 171 страницы
Дедлайн — конец 2-й недели 1-го 12-недельного года
Время на выполнение — 2 недели
VCS (Version Control System) – инструмент, без которого не обойтись ни одному уважающему себя программисту. Он поможет откатить программу на рабочую версию, если вдруг в текущей вы слегка накосячили.
Самая популярная VCS и, пожалуй, самая лучшая — Git. Он прост в понимании, изучении и очень быстр – что ещё надо? (Кстати, создан он разработчиками ядра Linux). Самый лучший вариант разобраться в нём — изучить книгу «ProGit» от Скотта Шакона. На старте всю читать нет смысла. Достаточно дойти до главы «GitHub» (не включительно). Таким образом, изучив всего 171 страницу, вы сможете понять смысл VCS и то, как работает Git вместе с его основными командами: commit, add, push, pull, clone, remote. Именно эти команды вы будете использовать в 80% случаев.
Конечно, не все компании используют Git. Но даже если ваша будущая организация применяет другую VCS, вам не составит особого труда изучить её (все, кто использует SVN, нервно закурили в сторонке), поскольку команды систем контроля версий очень похожи.

2. Изучить книгу «PostgreSQL для начинающих»
Дедлайн — конец 4-й недели 1-го 12-недельного года
Время на выполнение — 2 недели
Backend-разработчику необходимо знать базы данных. Это даже не обсуждается. На первых порах у вас может отсутствовать необходимость с ними работать, но однажды этот день обязательно наступит. Помимо понимания баз данных, необходимо уметь работать с СУБД (Система Управления Базами Данных). Чаще всего в Python-проектах используется PostgreSQL. Именно эту технологию я и рекомендую изучать. Книга «PostgreSQL для начинающих» даст вам общее представление о базах данных и обучит основным командам Postgres (синоним слова PostgreSQL). Для начала этой книги будет достаточно. В будущем можно почитать официальную документацию. Она, несомненно, улучшит ваши знания в этом инструменте.
Кстати, выучив основные команды PostgreSQL, вы сможете легко сделать то же самое и для других СУБД, например MySQL. Тут все так же, как и с системами контроля версий, т. е. команды и смысл в разных технологиях очень похожи.

3. Понять, что такое Веб и какие у него есть составляющие
Дедлайн — конец 5-й недели 1-го 12-недельного года
Время на выполнение — 1 неделя
Плавно переходим к веб-программированию. Вначале нужно понять, что вообще за фрукт такой – этот Веб. Узнать, что такое адрес, домен, хост, сервер, HTTP, HTTPS, POST и GET методы, что такое куки, как работает кеширование и т. д. В этом вам помогут лекции на YouTube. Просто введите в поисковой строке фразу «веб лекции», и у вас появится много различных вариантов для изучения данной темы. Лично я рекомендую эти 2 плейлиста: «Основы веб-разработки» и «Web-технологии».
Дедлайн — конец 6-й недели 1-го 12-недельного года
Время на выполнение — 1 неделя
HTML — технология, знание которой необходимо как backend, так и frontend-разработчику. Он несложный от слова совсем. Благодаря шикарному самоучителю, понимание HTML не станет для вас серьёзным препятствием. Дальше дело за практикой и постоянным изучением новых и повторением изученных тегов. В этом, кстати, вам поможет справочник.
5. Изучить части №1 и №2 книги «Django 3.0. Практика создания веб-сайтов на Python»
Дедлайн – конец 6-й недели 2-го 12-недельного года
Время на выполнение — 12 недель
Переходим к самому сложному и самому интересному — фреймворку для веб-программирования на Python. Django и Flask занимают тут лидирующие позиции. Именно их выбирает большинство питонистов.
У Django много встроенного функционала, и за счёт этого на нём можно быстро писать сайты. Flask же не предоставляет такой возможности и почти всё требует создавать с нуля (в этом тоже полно своих плюсов). Мы остановимся на Django. К Flask можно будет вернуться позже. Его изучение сильно улучшит ваше понимание как Django, так и в целом веб-программирования.
При изучении Django я пользовался и до сих пор пользуюсь великолепной книгой Владимира Дронова «Django 3.0. Практика создания веб-сайтов на Python». Рекомендую изучить её полностью, но на старте хватит разбора частей №1 и №2. Читая их, не забывайте о практике, без неё Django выучить невозможно. Придумайте какую-нибудь тематику и сделайте простенький сайт. Например, блог о котах. Желательно практиковаться параллельно с чтением. Также не пытайтесь выучить всё, что есть в книге. Изучите основное, а второстепенное сможете подсмотреть, когда будет необходимость. И да, не забывайте добавлять код своего сайта на GitHub.
Кстати, у Django есть отличная документация, с которой точно стоит ознакомиться в дальнейшем.

6. Пройти первые 4 главы части №1 учебника по JavaScript
Дедлайн – конец 9-й недели 2-го 12-недельного года
Время на выполнение — 3 недели
Да-да! Великий и могучий JavaScript. Пришло его время. Что тут можно сказать? Изучение JS – это интересно, весело и порой больно. А ещё оно необходимо для всех, кто хочет подвизаться в веб-разработке. Бэкендеру будет достаточно базового понимания языка. На момент написания этой статьи лучшим руководством по JavaScript я считаю учебник от javascript.ru. В нём есть вся необходимая информация, она хорошо структурирована и понятно излагается. Для backend-разработчика достаточно пройти первые четыре главы из части №1.
Дедлайн — конец 11-й недели 2-го 12-недельного года
Время на выполнение — 2 недели
И последний инструмент из привычного всем набора JS/HTML/CSS – это CSS. Бэкендеру знание этой технологии особо не пригодится, но базовое понимание не помешает. Помните сайт для изучения HTML? Так вот, у него ещё есть самоучитель по CSS, который и поможет вам в освоении этой непростой технологии.
8. Составить резюме и откликнуться на подходящие вакансии
Дедлайн — середина 12-й недели 2-го 12-недельного года
Время на выполнение — 2 дня
Итак, с технологиями покончено. Минимальный набор backend-разработчика у вас в кармане. Пришло время для поиска работы. Первое, с чего стоит начать – составление резюме. Да, возможно, это самый простой этап, но он очень важен. То, как вы себя преподнесёте работодателю, скажется на скорости и качестве трудоустройства. Вот список рекомендаций, как улучшить своё резюме:
1. Если можете самостоятельно составить резюме на английском — сделайте это;
2. В списке технологий не надо писать свои личные качества, например целеустремлённость, трудолюбие и т. д. Это бесполезная информация, которую может написать про себя любой кулхацкер. Указывайте только технологии, которыми владеете (Python, Django, Git, JavaScript и т. д.);
3. Хорошо, если вы можете подтвердить знание указанных технологий. Для этого будет достаточно ссылки на репозиторий с кодом нужного инструмента (у вас же есть репозиторий на GitHub?);
4. В поле с названием профессии пишите именно название профессии, а не набор ваших технологий (такое часто можно увидеть в разных резюме). Например, в вашем случае это может быть «Junior Django Developer»;
5. Если вы раньше работали в IT, помимо названия компании, укажите, чем в ней занимались. Если есть, что показать, приложите ссылки с материалами. Также добавьте список используемых в работе технологий;
6. Напишите о себе. О своих хобби, о том, как начали изучать программирование, о любимых песнях и т. д. Лучше хотя бы что-то, чем ничего. Подойдёт даже имя кота;
7. Обязательно приложите свою фотографию. Она не только подчеркнёт вашу индивидуальность, но и покажет, что вы серьёзно подошли к составлению резюме.
Вот пример хорошего резюме (фото и данные кота конечно же надо заменить на свои):

Резюме готово? Отлично! Смело выкладывайте его на HeadHunter, даже если не считаете, что оно безупречно. Не забудьте открыть для него полную видимость.
Теперь остаётся только откликнуться на подходящие вакансии. Вводим в поисковой строке всё того же HeadHunter фразу «Python Django», ставим соответствующие фильтры и откликаемся на выпавшие варианты. Важно понимать, что даже если у вас нет всего стека технологий, указанного в вакансии, вы тем не менее можете заинтересовать работодателя, и он пригласит вас на собеседование.
9. Подготовиться к собеседованию
Дедлайн — конец 12-й недели 2-го 12-недельного года
Время на выполнение — 5 дней
Резюме — это хорошо, но без собеседования (а может, даже и тестового задания) вас никто на работу не возьмёт. Что может быть на «собесе»? Обычно вопросы бывают 2 типов: hard и soft skills. Soft skills – это ваши навыки работы в команде, ответственность, лидерские качества и т. д. Hard skills – это технические вопросы, т. е. вопросы по технологиям, указанным в вашем резюме. Оба типа вопросов важны. Подготовиться к техническим вопросам, конечно, сложнее. Вначале нужно понять, какие вопросы могут задать. В этом вам поможет умение гуглить. А если у вас его нет или вы просто не хотите тратить на это время, то вот список вопросов, который когда-то составлял я. Просматривая его и отвечая на вопросы, попробуйте представить себя на реальном собеседовании. И да, если вдруг какой-то вопрос непонятен, обязательно разберитесь в нём.
Что же, вы проделали большую работу. Теперь можно немного отдохнуть, выпить кружку ароматного чая и покурить самый дымный кальян вашего города.
Что дальше?
На изученном стеке технологий далеко не уедешь. Важно, как говорилось ранее, постоянно изучать новые инструменты. Как понять, какие из них нужны? Элементарно! Заходите на наш любимый HeadHunter, в поисковой строке вбиваете фразу «Python Django» и открываете полученные вакансии. Но теперь не откликаетесь на них, а выписываете себе указанный стек технологий. И так нужно сделать хотя бы с 15 вакансиями. После этого из всех выписанных технологий выбираете 3,5 самых часто встречающихся и начинаете их изучение в порядке важности. Данный метод поможет вам изучить самые необходимые инструменты.
Спасибо всем, причастным к написанию этой статьи и вам, дорогие читатели. Уверен, был хоть немного полезен. Удачи и до скорых встреч!
Дополнительные ссылки
И в конце несколько ссылок на публикации моих коллег, так или иначе связанные с темой работы, обучением и собеседованиями. Надеюсь, что-то из этого тоже может оказаться вам интересным.
- Глубина кроличьей норы или собеседование по C++ в компании PVS-Studio.
- Дизайн: Фриланс vs Офис.
- Собеседование на дизайнера в IT: вопросы, тестовое, подводные камни.
Что должен знать Python разработчик в 2020 году

![]()
29.01.2020
![]()
24705
Рейтинг: 5 . Проголосовало: 13
Вы проголосовали:
Для голосования нужно авторизироваться

- Общие знания, которые нужны каждому Python разработчику
- Что должен знать Python Developer, работающий в сфере Data Science
- Python BackEnd Developer
- Python Developer в сфере DevOps
- Automation QA Engineer (Python)
- Desktop, Mobile, Game Python Developer
- Итоги
Добрый день, дорогие читатели блога ITVDN! Предлагаем вашему вниманию новую публикацию в рубрике “Что должен знать разработчик. ”, в которой мы пишем о самых популярных IT-профессиях. Ранее уже были опубликованы обзоры по FrontEnd и .NET. В этот раз в центре внимания язык Python. В каких сферах он успешно применяется, а в каких буквально незаменим? Какими знаниями нужно обладать, чтобы стать, к примеру, Python BackEnd разработчиком? Все это вы узнаете в нашей статье. Приятного чтения!
В последние годы язык программирования Python стремительно набирает популярность. По данным Stack Overflow Developer Survey 2019, в котором приняли участие более 87 тысяч IT специалистов из разных стран, Python в 2019 году опередил даже таких постоянных и несомненных лидеров как Java, С# и С++. Сейчас он широко используется в Data Science (машинное обучение, анализ данных, визуализация), разработке встроенного программного обеспечения и в реализации серверной части веб-приложений. Также при помощи Python можно создавать игры, десктопные и мобильные приложения, писать тесты для ПО, а также упрощать администрирование ОС.
Как видите, сферы применения довольно обширны. Мы постараемся затронуть самые популярные, в которых Python используется в качестве основного средства программирования.
Начнем с технологий, которые должен знать любой Python-разработчик вне зависимости от специализации.
Python
Многие сходятся во мнении, что язык программирования Python — один из самых легких для изучения, его часто рекомендуют в качестве первого языка начинающим программистам. В то же время это высокоуровневый язык программирования общего назначения, с большим потенциалом повышения производительности программиста, скорости разработки и читаемости кода. Каждый Python-девелопер должен владеть таким набором знаний:

- Синтаксис языка Python: типы данных, строки и символы, операции с целыми и вещественными числами, отступы, условные и циклические конструкции, функции, списки, словари, классы, файловый ввод-вывод, логические операции и операции сравнения.
- Популярные библиотеки и фреймворки. Этот пункт зависит от выбранного IT-направления. К примеру, если вы планируете себя реализовать в веб-разработке, отличным выбором станет библиотека Requests, которая облегчит процессы составления HTTP-запросов, также будут полезны фреймворки Django и Flask. Если же вас увлекает машинное обучение, то Theano, TensorFlow, Keras и другие библиотеки помогут с построением и тренировкой нейронных сетей.
- IDE и редактором кода. Проекты лучше создавать в интегрированной среде разработки (IDE) или в редакторе кода. Это позволяет сделать написание кода максимально удобным: подсветка синтаксиса, автодополнение, инструменты сборки, возможность отладки код и прочее. Самыми популярными платформами являются PyCharm, WingWare IDE, Komodo.
Открытым остается и вопрос, какую версию Python стоит изучать: 2.x либо 3.х? Согласно информации из официального источника разработчиков python.org, в 2020 году прекращается поддержка Python 2.7. Соответственно, стоит сконцентрировать усилия на изучении именно версии 3.х.
Разработчик должен иметь глубокие знания языка Python, понимать и уметь применять на практике принципы объектно-ориентированного программирования (ООП).
Английский язык
Знание английского языка — естественное требование для каждого разработчика в IT, поскольку большинство новых сведений о технологиях, курсы, учебные и справочные материалы появляются в первую очередь на английском. Для работы в команде разработчиков обычно знаний языка на уровне чтения технической документации и комментирования кода вполне достаточно, однако если вы планируете самостоятельно вести переговоры и переписку с иностранным заказчиком, ваш уровень должен быть выше.
Git & GitHub
Git — наиболее популярная система контроля версий, которая позволяет вести историю разработки проекта с возможностью доступа к каждой сохраненной версии.
Помимо этого, стоит уметь работать с сервисом онлайн-хостинга проектов, использующих систему контроля версий. В данном случае это GitHub. В тандеме с Git он позволяет разработчикам сохранять свой код онлайн, а затем взаимодействовать с другими разработчиками в разных проектах.
Данные системы позволяют команде программистов работать над одним проектом одновременно, сохраняя внесенные изменения, а также отслеживать выполнение задач каждым членом группы.
Алгоритмы и структуры данных
Понимание алгоритмов и структур данных является очень важным для любого программиста. Исключением могут быть разве что FrontEnd разработчики.
Данные используются во всех сферах нашей жизни: от банковских счетов и медицинских карт вплоть до списка оплаченных покупок в супермаркете. Знание структур данных поможет вам хранить информацию в упорядоченном виде, что упростит работу с ней. Также это повысит общую производительность ваших программ.
Тема связана со специальностями:
Знание алгоритмов позволит вам создавать сложные конструкции для эффективного решения широкого спектра задач.
Методологии разработки Agile/Scrum
Методологии разработки — это своеобразные путеводители по процессам эффективной разработки ПО. Их применение помогает организовать максимально продуктивную работу всех участников, которые напрямую или косвенно задействованы в разработке продукта в соответствии с выбранной стратегией.
Agile — семейство гибких методологий разработки программного обеспечения, которое позволяет выпускать продукт небольшими частями, постоянно его дополняя и совершенствуя. При таком подходе технические и бизнес-подразделения работают совместно, ПО постоянно обновляется, обеспечивается быстрое принятие решений и выявление неправильных подходов, приложение проще обслуживать, а качество кода готового продукта более высокое. Agile имеет собственный манифест, который подробно описывает основные принципы, на которых строится гибкая разработка.
Scrum является одной из реализаций agile-подхода. Его используют многие команды, поэтому знание особенностей работы со scrum-моделью для разработчика серверного ПО является востребованным и весьма полезным.
Итак, мы рассмотрели технологии, которыми должны владеть все Python разработчики, не зависимо от прикладной области, в которой они работают. Теперь давайте рассмотрим наиболее популярные специализации, в которых может себя реализовать Python разработчик, а это:
- Data Scientist
- BackEnd Developer
- DevOps Engineer
- Automation QA Engineer (Python)
Проанализируем каждое направление, затронув основные технологии. Также расскажем, каким образом Python используется в Desktop, Mobile и Game разработке.
Что должен знать Python Developer, работающий в сфере Data Science
Легкий и лаконичный Python нашел себе широкое применение в такой важной сфере разработки, как Data Science. Почему именно Python? Он прост в изучении и способен в несколько строк кода создать искусственный интеллект, который будет способен к самообучению, либо посчитать матрицу внушительных размеров.
Data Science подразумевает работу с большими объемами данных и включает в себя сбор, анализ, структурирование и дальнейшую визуализацию информации. Каждый специалист данной области занимается:
- сбором большого количества неупорядоченных данных и преобразованием их в удобный формат;
- решением бизнес-задач с использованием данных;
- программированием на Python, R и других языках;
- работой со статистикой;
- использованием Machine Learning, Deep Learning и текстовой аналитике;
- сотрудничеством с IT и бизнесом в равной мере;
- изучением современных тенденций, которые могут помочь в разработке, которая ведется на данный момент в компании.
Итак, какими технологиями необходимо владеть, чтобы стать Data Scientist?
Линейная алгебра и математический анализ
Data Science — это как раз та область, в которой без знаний математики ну никак. Работа с колоссальным объемом данных предусматривает в обязательном порядке применение аппарата линейной алгебры. А это матрицы, векторы, линейные уравнения, различные алгоритмы классификации и кластеризации, которые широко используются (подробнее в следующих разделах). Также необходимо знать оптимизацию средствами матанализа.
Статистика
Наука, которая применяет совокупность методов и приемов по сбору, обработке, представлению и анализу числовых данных, чтобы впоследствии на их основании сделать те или иные выводы.
Статистика содержит такие важные разделы, как: выборка, распределение частот, среднее значение, взвешенное среднее значение, медиана, вероятность, распределения вероятностей, тестирование значимости, а также ряд других тем и понятий. В интернете есть множество хороших англоязычных курсов, которые помогут освоить разделы статистики, которые обязательны для специалиста Data Science.
Библиотеки и дополнительные инструменты Python
Для всевозможных математических вычислений используется Python, а точнее — его библиотеки. К примеру, Matplotlib и Seaborn используются при необходимости визуализации данных, NumPy для работы с уже упомянутой линейной алгеброй. Для научных вычислений прибегают к использованию SciPy. Pandas позволяет выполнять быстрый анализ, очистку и подготовку данных из разных источников — Excel, SQL, веб-страницы, файлы CSV. Таким образом, библиотеки Python предоставляют отличный набор для анализа данных и визуализации.
Среди дополнительных инструментов особого внимания заслуживает Jupyter Notebook, который позволяет создавать очень наглядные и информативные аналитические отчеты путем совместного хранения кода, иллюстраций, комментариев, формул и графиков.
Базы данных
Поскольку работа Data Scientist-а плотно связана с обработкой большого количества информации, очевидно, что без баз данных тут не обойтись. Необходимо знать, как извлекать и обрабатывать данные, уметь писать и выполнять сложные запросы.
Существуют реляционные базы данных (так называемые, SQL базы данных) которые используют структурированный язык запросов, и нереляционные (NoSQL), которые предлагают динамическую структуру для определения и обработки данных. К системам управления баз данных (СУБД) первого типа относят MySQL, PostgreSQL, Microsoft SQL Server, Oracle. Ко второму типу — MongoDB, Cassandra, BigTable, Redis, RavenDB и прочие.
Несмотря на широкое распространение NoSQL, специалисты Data Science все же используют SQL технологии, поскольку зачастую работают именно с упорядоченным множеством данных (медицинские карты пациентов, транзакции клиентов и т. д.). Здесь наилучшим выбором станет PostgreSQL/MySQL/SQL Server.
Машинное обучение
Это ответвление искусственного интеллекта, основная идея которого состоит в следующем: компьютер должен не просто использовать заранее написанный алгоритм, а самостоятельно обучаться решению поставленной задачи (например, задачи определения символов по отсканированному изображению текста, опознавания лиц и голосов, подборки видеороликов на YouTube с учетом просмотренных ранее).
Минимальный набор базовых алгоритмов машинного обучения, который необходимо знать: линейная регрессия, логистическая регрессия, SVM (метод опорных векторов), random forest (“случайный лес”), дерево принятия решений, Gradient Boosting, РСА (метод главных компонент), k-means (кластеризация методом k-средних), k-NN (классификация методом k-ближайших соседей), ARIMA (интегрированная модель авторегрессии скользящего среднего).
Видео курсы по схожей тематике:
Backend-разработчик: кто это такой и чем он занимается
Backend-разработчик отвечает за внутреннюю — серверную сторону веб-ресурса.

Виктория Дербенченко
Автор статьи
2 апреля 2023 в 17:00
Backend-разработчик — программист, который пишет серверный код, отвечает за реакцию ресурса на действия пользователя и выдачу информации. Работа бэкендера внешне незаметна: пользователь не думает, как устроен сайт изнутри. Но если серверный код написан с ошибками, он не будет нормально работать.
Рассказываем главное о backend-разработке: чем занимается, какие навыки нужны и сколько зарабатывает.
В каких сферах востребован backend-разработчик
Бэкендер нужен компаниям, которые взаимодействуют с клиентами через сайт, приложение и другой веб-сервис. За счет цифровой трансформации во всех отраслях бизнеса такие специалисты нужны везде. Интернет-магазины, маркетплейсы и агрегаторы услуг, сайты компаний, банковские онлайн-сервисы — это только несколько примеров, где нужны backend-девелоперы.
Чем отличается от frontend-разработчика
У любого веб-ресурса две стороны: внешняя (frontend) — клиентская, внутренняя (backend) — серверная. Фронтенд — это живая картинка, всё что мы видим на сайте. Бэкенд — скрытая. То есть код «внутри», благодаря которому работают кнопки и функции сайта.
Вот простой пример. Вы хотите заказать товар в интернет-магазине. В каталоге видите кнопку «Купить». Жмете на нее и переходите в корзину. Заполняете поля, нажимаете «Оплатить» и попадаете на сайт платежной системы. Строка поиска товара в каталоге, кнопки, формы — это область фронтенд-разработки.
Чтобы интерфейс был дружелюбным и понятным, веб-разработчику нужно владеть инструментами адаптивного дизайна. Так сайты будут правильно отображаться на разных устройствах. Этому учат на курсе Skypro «Веб-разработчик» — а еще дают основы backend-разработки, чтобы начинающий специалист работал в команде более эффективно и создавал интерфейс, опираясь на понимание серверной части веб-продукта.
Все за кадром — за интерфейсом — относится к бэкенду. Идентификация пользовательских данных, соединение с платежным шлюзом, передача информации — результаты труда backend-разработчика.
Если провести параллель со строительством, то фронтэндер — это архитектор, а бэкендер — инженер-конструктор. Первый отвечает за красоту и удобство, а второй — за прочность и долговечность.
Преимущества и сложности профессии
К профессии бэкенд-разработчика привлекают высокая зарплата и востребованность. Другие плюсы: возможность роста до Middle и Senior, то есть специалистов среднего и продвинутого уровня. А еще перспективы трудоустройства в иностранную компанию. Некоторым круто, что можно выбирать формат работы — в офисе или удаленно.
Есть и сложности. Профессия требует концентрации. К примеру, если бэкендер ошибется в коде — не сработает передача информации из формы заявки. В итоге компания не получит данные клиента. Потеряет и его, и прибыль. Кроме того, разработчики должны следить за трендами в IT-индустрии, получать новые навыки и повышать квалификацию. Это требует много времени и сил.
Веб-разработчик: новая работа через 9 месяцев
Получится, даже если у вас нет опыта в IT

Требования к backend-разработчику
Для старта в профессии нужна серьезная база знаний, умений и навыков. Она формирует профессиональные компетенции — hard skills. Не обойтись и без особых личных качеств — soft skills.
Профессиональные навыки
Требования зависят от сферы и уровня компании. В большинстве вакансий есть базовые условия. Бэкендеру нужно:
- владеть несколькими языками программирования — C++ или C#, PHP, Python, GoLang, Java, Ruby;
- уметь проектировать базы данных и писать запросы к ним — в MySQL или другой СУБД;
- понимать протоколы передачи информации между клиентом и сервером — HTTP и HTTPS;
- владеть инструментами сетевой безопасности;
- знать функционал серверов — NGINX, Apache и других;
- уметь подключать API;
- обладать навыками разработки приложений в популярных веб-фреймворках;
- иметь опыт юнит-тестирования;
- знать систему контроля версий Git;
- понимать базовые принципы frontend-разработки.
Какие личные качества нужны бэкенд-разработчику и для чего
Аналитические способности и логика, чтобы анализировать большое количество информации.
Навыки планирования, чтобы соблюдать дедлайны.
Внимательность, чтобы замечать мельчайшие детали, которые влияют на результат.
Скорость реакции, чтобы оперативно переключаться с одной задачи на другую и закрывать проблемы.
Навыки командной работы, чтобы доносить до коллег идеи, отстаивать правоту или принимать чужое мнение.
Любознательность, чтобы узнавать больше и становится лучше.
Иностранные языки
Большинство мануалов для разработчиков — на английском. Лучше читать их в оригинале. Перевод технических текстов сильно искажает смысл. А последние руководства пока и вовсе не переведены на русский. Так что английский на уровне не ниже Intermediate для backend-разработчика обязателен. Придется освоить пласт технической лексики, чтобы свободно ориентироваться в документации. Еще знание языка нужно, чтобы обмениваться опытом с иностранными коллегами или работать за границей.
Какие языки используются в backend
Бэкендеру нужно знать серверные языки. С их помощью описывают бизнес-логику веб-ресурса, передают информацию клиентам, проверяют введенные данные и работают с безопасностью. Серверных языков программирования множество. Популярных — единицы.
PHP
Один из самых востребованных языков с открытым исходным кодом. Создан для веб-разработки, внедряется в HTML. Это универсальный язык: работает во всех известных ОС, совместим с основными СУБД, подходит для объектно-ориентированного программирования. Многие CMS написаны на PHP.
Java
По результатам отчета Хабр за 2022 год, Java занимает первое место в списке популярных языков программирования для бэкендера. Это язык общего назначения: Его применяют в веб, мобильной разработке, программировании бытовой техники и промышленного оборудования. На Java пишут корпоративные приложения, программы для финансовых организаций, игры.
Освоить этот язык можно на курсе Skypro «Java-разработчик». За 11 месяцев научитесь писать код и тестировать его под руководством опытных наставников. А еще пройдете техническое собеседование, выполните несколько тестовых заданий, чтобы найти работу по новой профессии после обучения.

https://sky.pro/media/kakoj-yazyk-programmirovaniya-vybrat-novichku/
Python
Этот язык стал популярным в контексте прорывных технологий — искусственного интеллекта и машинного обучения. В марте 2023 года он был лидером среди всех языков, по данным TIOBE Index.
Он подходит еще и для разработки серверной части. У Python много инструментов для конкретных типов задач. К примеру, для игр и мультимедийных приложений, работы с базами данных. С использованием Python написали YouTube и популярную соцсеть, систему автоматизации NASA. Синтаксис языка — простой. Подходит для начинающих программистов.
Онлайн-курс Skypro «Python-разработчик» — отличный вариант для тех, кто решил начать карьеру в IT. За 10 месяцев можно освоить навыки, которые нужны для старта в новой профессии. А центр карьеры поможет составить цепляющее резюме и подготовиться к собеседованию. Тем, кто не найдет работу через четыре месяца, Skypro возвращает деньги за обучение.
Ruby
Для работы с Руби устанавливают специальную программу-интерпретатор. У Руби есть фреймворк для веб-приложений — Ruby on Rails. За что его и любят в стартапах: с его помощью можно быстро развернуть прототип проекта. Совместим с основными операционными системами и поддерживает разные парадигмы программирования. На Ruby пишут мобильные игры и приложения для Android и iOS, сайты со сложной структурой.
Swift
Язык программирования от Apple. На нем создают приложения для iOS, Mac, Apple TV и Apple Watch. Swift имеет полную обратную совместимость с языком Objective-C. То есть можно переписывать проекты с одного языка на другой. А также использовать функционал Objective-C внутри самого Swift. Еще у Swift есть Playground — интерактивная песочница. Разработчик пишет код и сразу видит результат.
Kotlin
Язык для создания мобильных приложений для Android и iOS, веб-разработки и мультиплатформенного программирования. Kotlin — компилируемый язык. Его основное преимущество — возможность компиляции кода в Java и JavaScript. Из-за этой особенности разработка на Kotlin’е быстрее, чем на Java.
Обязанности backend-разработчика
Обязанности отличаются в зависимости от компании и проекта. Одни ищут бэкендеров со знанием PHP и Java, другим достаточно Python. Общий список обычно такой:
- написание кода для корректной работы веб-ресурса;
- программирование баз данных и управление;
- разработка логики приложения;
- настройка API для интеграции с внешними системами;
- тестирование компонентов приложения;
- обеспечение информационной безопасности ресурса.
Типичный день backend-разработчика
Рассказывает Александр Захаров, руководитель группы дирекции разработки компании-разработчика ПО МойОфис:
От 1/10 до 1/3 времени почти любой задачи занимает исследование того, что необходимо изменить, обдумывание возможных вариантов и их анализ. Часто полезно обсудить проблему с коллегами. Причем это полезно не только для задачи, но и для профессионального роста самого разработчика.
Еще некоторое время — от получаса до нескольких часов — занимает чтение документации по используемым технологиям. Часто их много, и весь объем знаний держать в голове невозможно. К тому же при повторных просмотрах документации проще заметить упущенные детали,.
Когда в голове (или на бумаге) появляется решение, разработчик понимает, какими инструментами его можно реализовать, начинается воплощение в коде. Пожалуй, это самое интересное в работе backend-разработчика. Он реализовывает идею в рабочую функциональность.
Еще есть задачи на исправление багов. Некоторые разработчики их не любят, но я не очень понимаю, почему. Это интересно — разобраться, что имел в виду другой разработчик, как видел развитие системы, почему что-то пошло не так.
Важнейшая часть дня любого backend-разработчика — это обучение. Оно бывает разным: лучше понять, как работает продукт, изучить функциональность и реализацию. Можно повышать технический кругозор, общаясь с коллегами. Или глубже погружаться в стек технологий — находить, как решать задачи проще и эффективнее.
Карьерный рост и зарплата
Карьерная лестница в IT состоит из трех ступеней — Junior, Middle и Senior. На каждом уровне больше требований, но и зарплата выше:
Junior — младший специалист. Он владеет хотя бы одним языком программирования, разбирается в базах данных. Джуниор пока не готов к самостоятельной работе и выполняет поручения руководства. Средняя зарплата новичка в марте 2023 года — 104 000 ₽.
Middle — специалист среднего уровня. Он знает несколько языков программирования, работает с фреймворками, разбирается в Docker и Kubernetes, ООП, микросервисах. Бэкенд-разработчик уровня мидл самостоятельно планирует и решает задачи. Зарабатывает в среднем 192 000 ₽.
Senior — старший backend-разработчик. Специалист этого уровня решает задачи повышенного уровня сложности. Например, продумывает архитектуру системы, следит за состоянием серверов и исправляет ошибки. Еще он обучает средних и младших сотрудников, иногда возглавляет отделы. Средняя зарплата — 271 000 ₽.
Доход бэкендера зависит не только от уровня, но и от региона. В Москве и Питере платят больше. Правда, географическая привязка уже утрачивает актуальность: бэкендером можно работать удаленно из любой точки мира.

Бэкендеры в топе по зарплатам среди всех разработчиков
Перспективы и востребованность на рынке
Бэкенд-разработчики будут востребованы в 2023 году, так как в России сейчас курс на импортозамещение. Специалисты нужны на места тех, кто уехал из страны в прошлом году, так и в новые компании.
Вакансий достаточно: в апреле 2023 года на Хэдхантере их было более 400, на Хабре более 1000.



Что предлагают бэкендерам работодатели: вакансии на Хабре
Backend-разработчик может учить новые языки, развивать профессиональные и личностные скиллы и расти до сеньора. В результате становиться более востребованным, увеличивать доход, управлять командой разработчиков. Или может перейти в смежную область. Например, стать Fullstack-разработчиком. Этот специалист работает и с серверной, и с браузерной частью веб-ресурса. То есть совмещает обязанности бэкенд- и фронтенд-разработчиков.
Как стать backend-разработчиком с нуля
Фундамент — высшее техническое образование. В идеале это IT-специальность. Backend-разработчиком могут стать выпускники математического или физического факультетов. Выходцам из непрофильных вузов сложнее получить профессию.
Академическое образование дает теоретическую базу и развивает аналитические способности. Но на backend-разработчиков не учат в вузах. Так что для старта в профессии нужно дополнительное профильное образование.
Где учиться
Первый путь — самообразование. В сети много обучающих материалов: бесплатные книги, статьи, видеоуроки, блоги и форумы. Преимущество самообразования — относительная дешевизна. Но такой путь — долгий и сложный. Информация в сети не систематизирована, а качество — неоднородно. Есть риск наткнуться на слишком сложный материал и опустить руки. Или попасться на блог инфоцыгана, у которого нет ничего общего с IT-сферой.
Второй путь — онлайн- или офлайн-обучение. Онлайн-обучение подходит тем, кто совмещает учебу с работой. Или тем, у кого в городе нет очных курсов. Офлайн — для тех, кому важен личный контакт с преподавателем. На курсах дают теоретические и практические знания для старта.
Skypro поможет освоить Python и Java. Курсы подойдут тем, кто чувствует перспективность IT-сферы, но не знает, с чего начать. Тем, кто работает в смежной области и хочет сменить профессию. Онлайн-университет учит быть разработчиком, а не только писать код. Наставникам задают вопросы в чатах. Домашние задания разбирают на живых вебинарах. Преподаватели — руководители направлений разработки и практики.
Что читать
Важно изучать дополнительные источники. Но если бессистемно читать всё подряд, в голове будет хаос. Не запутаться помогут роадмапы — дорожные карты изучения языка. Их находят на форумах, в изданиях и в сообществах программистов. Например, tproger.ru предлагает дорожную карту по Java.
Будущим backend-разработчикам пригодятся:
- мануалы по языкам программирования;
- книги зарубежных гуру разработки — «Джоэл о программировании» Дж. Х. Спольски, «Чистый код» Р. Мартина, «Шаблоны корпоративных приложений» М. Фаулера, «Экстремальное программирование» Б. Кента;
- обучающие ресурсы — codecademy.com, сообщество «Библиотека программиста» в ВК, уроки на YouTube;
- телеграм-каналы — BackendQuiz, задачи с собеседований по бэкенду, Бэкендер.
