Python middle developer roadmap

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Карта развития python-backend разработчика

anton8963kobelev/python-roadmap

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Python Backend Developers Roadmap

Карта развития разработчика поможет максимально эффективно прокачаться от Junior до Middle и от Middle до Senior в изучении python backend разработки. В данном репозитории собраны темы и ресурсы, которые помогут вам в освоении hard skills.

Что с этим делать?

Начните изучение материала с самого нижнего уровня – это необходимо, поскольку даже опытные разработчики порой забывают многие нюансы базовых навыков, если длительное время не сталкиваются с ними в своей работе. После изучения блока материала, когда вы будете уверены в том, что вы понимаете темы, затронутые в выбранном вами блоке, сообщите об этом своему руководителю отдела, чтобы согласовать день для technical assessment (технического интервью/тестирования).

После успешной сдачи уровня, вы также сможете:

  • Перейти к изучению следующего блока этой карты
  • Принимать участие в tech assessment своих коллег на данный уровень
  • Принимать участие в обсуждении вопросов сданного блока и предлагать свои дополнения. (Перед тем как создавать pull request, изучите требования к оформлению вопросов и ресурсов)

Ниже приведены наши субъективные представления стандартных уровней мастерства разработчиков.

Читайте также:  Мультиклассы

Junior backend developer

  • Умеет решать локальные задачи, которые хорошо декомпозированы и укладываются в принятые в проекте соглашения и архитектурные принципы.
  • Хорошо знает основной инструментарий — python, SQL.
  • Уверенно владеет основным стеком проекта (Django/Flask/FastAPI и т.д.) на уровне, который позволяет решать абсолютное большинство стандартных задач, связанных с сервисами.
  • Умеет ясно излагать свои мысли в письменной и устной форме, понимает важность проактивности для командной работы.

Middle backend developer

  • Отлично знает инструментарий, включая 1-2 фреймворка или библиотеки (Django/Flask/FastAPI и т.д.).
  • Имеет навыки проектирования и знает основные принципы разработки поддерживаемого продукта, т.е. владеет ООП, ФП, понимает DDD и SOLID.
  • Умеет спроектировать небольшого и среднего размера стандартные проекты (сервис для проекта до ±100k строк с командой до ±10 участников).
  • Умеет эффективно решать задачи в рамках заданной архитектуры (REST, SOAP, WebSockets, GraphQL и т.д.).
  • Понимает бизнес-ценность своей работы, может предложить пересмотр требований задачи для лучшего достижений этих ценностей, может предложить убрать задачу из бэклога, аргументировав возможными альтернативами или даже доказав ее низкий приоритет.
  • Умеет декомпозировать и довольно точно оценить объем работ для небольших работ (до 2-х человекомесяцев). Умеет явно увидеть области риска при оценке, сузить их наименьшими усилиями и явно фокусировать внимание команды на них.
  • Проявляет эмпатию, не перебивает, умеет выслушать, понять точку зрения оппонента и предложить аргументированные альтернативы.

Senior backend developer

  • Отлично понимает весь контекст проекта, включая пользователей (и их цели), бизнес, всю команду разработчиков.
  • Понимает бизнес-ценности всего продукта и всей команды.
  • Может помочь ясно сформулировать требования к задаче, учитывая стратегические цели компании.
  • Может спроектировать верхнеуровневую архитектуру продукта учитывая весь контекст (пользователи, бизнес, 3rd party services etc).
  • Сам может выбрать необходимый стек для всего комплекса решений, который может состоять из нескольких больших проектов.
  • Умеет самостоятельно эффективно разбираться в неизвестных и достаточно объемных областях, применять изученное для решения поставленных проблем там, где это эффективно (например, быстро изучить AioHTTP и предложить создавать проект на нем, если он действительно лучше подходит).
  • Умеет давать оценки даже для существенного объема работ, запросить все необходимые требования, доработать их при необходимости, заложить риски.

About

Карта развития python-backend разработчика

Читайте также:  Php ограничение длины переменной

Источник

Ультимативный Roadmap для Python-разработчика в 2023 году + источники знаний

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

Рисунок от mdjrn

Если вы уже определились с выбором Python в качестве основного языка программирования, рекомендуется обратить внимание на мой roadmap, который позволит лучше ориентироваться в выборе учебных материалов и понимать, как развиваться в этой сфере.

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

Основы Python:

  • Типы данных и структуры (целые числа, дробные числа, строки, списки, кортежи, словари, множества)
  • Переменные и выражения
  • Условные операторы (if / else)
  • Циклы (for / while)
  • Функции
  • Ввод / вывод (print, input) Мощный и хороший курс по базе PythonТуториал по Питону от создателейБаза от Тимофея Хирьянова В целом пройдя первый курс и просмотрев лекции от Тимофея вы сможете покрыть значительную часть перечисленных далее пунктов.

Объектно-ориентированное программирование:

  • Классы и объекты
  • Наследование
  • Полиморфизм
  • Инкапсуляция
  • Абстракция
  • Переменные класса и объекта Введение в ООПКурс на Youtube про ООП

Функциональное программирование:

  • Чистые функции
  • Функции высшего порядка
  • Рекурсия
  • Лямбда-выражения
  • Map, filter, reduce, zip Про функциональное программирования на канале Тимофея ХирьяноваПро функциональное программирование подробнееПро Map, filter, reduce, zip

Модули и библиотеки:

  • Импортирование модулей
  • Создание модулей
  • Использование сторонних пакетов (pip)
  • Написание документации (docstrings) Про модули с документацииИнтересные библиотеки python

Работа с файлами:

  • Открытие и чтение файлов
  • Запись в файлы
  • Закрытие файлов
  • Работа с CSV / JSON / XML-файлами Про работу с файламиCSV

Разработка графических интерфейсов (GUI):

Регулярные выражения:

  • Поиск шаблонов
  • Метасимволы
  • Квантификаторы
  • Группы
  • Подстановка Плейлист про регулярные выражения на Youtube

Тестирование:

  • Модульное тестирование (unittest)
  • Интеграционное тестирование
  • Разработка через тестирование (TDD)
  • Отладка Про unittestХороший гайд на Хабре

Управление версиями в GIT:

  • Рабочий процесс и управление версиями в системе Git
  • Ветвление и объединение
  • Запросы на слияние и обзоры кода
  • Управление конфликтами слияния Полный гайд по GitПро гит подробнееCтатья на Хабре про Git

Оптимизация:

  • Профилирование
  • Управление памятью
  • Анализ времени выполнения
  • Рефакторинг кода Статья про оптимизацию кодаНа Youtube про рефакторинг кодаУправление памятью
Читайте также:  Css темы на телефон

Параллельное выполнение:

Управление базами данных:

  • SQL
  • Реляционные базы данных (MySQL, PostgreSQL)
  • Нереляционные базы данных (MongoDB)
  • Объектно-реляционное отображение (ORM) Курс по базам данных от VK team на YoutubeМой roadmap по SQL

Сетевое программирование:

  • Программирование сокетов
  • Подключения TCP / UDP
  • Отправка / получение электронной почты (smtplib, imaplib) Про сокеты и т.п.Про TCP и UDP

Развертывание:

  • Виртуальные среды (venv)
  • Распространение пакетов (wheel)
  • Непрерывная интеграция / непрерывное развертывание (CI / CD)
  • Docker Про venvDocker
  • Интерфейс командной строки (Click)
  • Работа с API-интерфейсами
  • Сериализация / десериализация данных (pickle, json, yaml) Pickle

Веб-разработка(опционально):

  • HTML / CSS
  • Запросы HTTP
  • Flask / Django
  • REST API
  • Веб-скрапинг (BeautifulSoup) DjangoHTML & CSSREST API

Анализ данных(опционально):

  • NumPy / SciPy
  • Pandas
  • Matplotlib / Seaborn
  • Обработка естественного языка (NLTK) Введение в PandasNumPyMatplotlib

Кроме того, существует ряд нескольких важных компетенций, которые необходимо развивать во время пути к становлению опытного Python-разработчика:

Структуры данных и алгоритмы:

  • Базовые структуры данных (стеки, очереди, связные списки, деревья, графы)
  • Поиск и сортировка алгоритмов
  • Анализ сложности (нотация O большое)
  • Динамическое программирование
  • Рекурсия Структуры данных и алгоритмыРекурсия

Решение проблем и критическое мышление:

  • Анализирование проблем и требований
  • Разбиение проблем на более мелкие части
  • Генерация творческих решений

Жизненный цикл разработки программного обеспечения:

  • Анализ требований
  • Проектирование архитектуры программного обеспечения
  • Реализация кода
  • Тестирование и отладка кода
  • Развертывание и поддержка
  • Методологии Agile-разработки (например, Scrum) Статья на ХабреAgile

Качество кода:

  • Обзоры кода и лучшие практики чистого кодирования
  • Справочники по стилю кодирования (например, PEP8)
  • Тестирование и разработка через тестирование
  • Рефакторинг кода для улучшения качества и обслуживаемости PEP8

Коммуникация и сотрудничество:

  • Написание четкой и краткой документации
  • Средства совместной работы, такие как Jira
  • Эффективное общение с коллегами и заинтересованными сторонами
  • Работа в команде с использованием систем управления версиями, таких как Git Кратко про документациюКраткий курс по Jira

И самое главное — непрерывное обучение:

  • Дополнительное образование, такое как статьи, книги и онлайн-курсы,
  • Слежение за тенденциями в индустрии и обновлениями в Python и связанных технологиях,
  • Изучение лучших практик и новых подходов к разработке.

Хорошая книга по Python — «Изучаем Python» от Марка Лутца

Учебник по алгоритмам и структурам данных: https://habr.com/ru/post/241696/

Больше практики по Python:

Таким получился Roadmap. Спасибо за твое доверие, если ты будешь следовать по нему.

Так же можете ознакомиться с моим roadmap по SQL.

Источник

Оцените статью