Python — один из самых популярных языков программирования в мире. Статистика современного рынка свидетельствует о том, что Python желаемый навык, и что его использование широко распространено в различных сферах, таких как наука, инженерия, бизнес, аналитика данных и многих других. Если вы уже определились с выбором 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): Tkinter PyQt PyGTK wxPython Плейлист разработок GUI на PyQt: https://www.youtube.com/playlist?list=PL6plRXMq5RADiWZuyZvVYnhncVixVKgBN https://youtube.com/playlist?list=PLKl9v2TQvIkq4i_hZwZ1PmobxJSkIGwBf Регулярные выражения: Поиск шаблонов Метасимволы Квантификаторы Группы Подстановка Плейлист про регулярные выражения на Youtube Тестирование: Модульное тестирование (unittest) Интеграционное тестирование Разработка через тестирование (TDD) Отладка Про unittest Хороший гайд на Хабре Управление версиями в GIT: Рабочий процесс и управление версиями в системе Git Ветвление и объединение Запросы на слияние и обзоры кода Управление конфликтами слияния Полный гайд по Git  Про гит подробнее Cтатья на Хабре про Git Оптимизация: Профилирование Управление памятью Анализ времени выполнения Рефакторинг кода Статья про оптимизацию кода На Youtube про рефакторинг кода Управление памятью Параллельное выполнение: Многопоточность Многопроцессорность Асинхронное программирование (asyncio) Про многопоточность и многопроцессорность Асинхронное программирование Управление базами данных: SQL Реляционные базы данных (MySQL, PostgreSQL) Нереляционные базы данных (MongoDB) Объектно-реляционное отображение (ORM) Курс по базам данных от VK team на Youtube Мой roadmap по SQL Сетевое программирование: Программирование сокетов Подключения TCP / UDP Отправка / получение электронной почты (smtplib, imaplib) Про сокеты и т.п. Про TCP и UDP Развертывание: Виртуальные среды (venv) Распространение пакетов (wheel) Непрерывная интеграция / непрерывное развертывание (CI / CD) Docker Про venv Docker Разное: Интерфейс командной строки (Click) Работа с API-интерфейсами Сериализация / десериализация данных (pickle, json, yaml) Pickle Веб-разработка(опционально): HTML / CSS Запросы HTTP Flask / Django REST API Веб-скрапинг (BeautifulSoup) Django HTML & CSS REST API Анализ данных(опционально): NumPy / SciPy Pandas Matplotlib / Seaborn Обработка естественного языка (NLTK) Введение в Pandas NumPy Matplotlib Кроме того, существует ряд нескольких важных компетенций, которые необходимо развивать во время пути к становлению опытного Python-разработчика: Структуры данных и алгоритмы: Базовые структуры данных (стеки, очереди, связные списки, деревья, графы) Поиск и сортировка алгоритмов Анализ сложности (нотация O большое) Динамическое программирование Рекурсия Структуры данных и алгоритмы  Рекурсия Решение проблем и критическое мышление: Анализирование проблем и требований Разбиение проблем на более мелкие части Генерация творческих решений Жизненный цикл разработки программного обеспечения: Анализ требований Проектирование архитектуры программного обеспечения Реализация кода Тестирование и отладка кода Развертывание и поддержка Методологии Agile-разработки (например, Scrum) Статья на Хабре Agile Качество кода: Обзоры кода и лучшие практики чистого кодирования Справочники по стилю кодирования (например, PEP8) Тестирование и разработка через тестирование Рефакторинг кода для улучшения качества и обслуживаемости PEP8 Коммуникация и сотрудничество: Написание четкой и краткой документации Средства совместной работы, такие как Jira Эффективное общение с коллегами и заинтересованными сторонами Работа в команде с использованием систем управления версиями, таких как Git Кратко про документацию Краткий курс по Jira И самое главное - непрерывное обучение: Дополнительное образование, такое как статьи, книги и онлайн-курсы, Слежение за тенденциями в индустрии и обновлениями в Python и связанных технологиях, Изучение лучших практик и новых подходов к разработке. Хорошая книга по Python - "Изучаем Python" от Марка Лутца Учебник по алгоритмам и структурам данных: https://habr.com/ru/post/241696/ Больше Питона:  https://stepik.org/course/58852/syllabus https://stepik.org/course/68343/syllabus Больше практики по Python:  HackerRank LeetCode Codewars Таким получился Roadmap. Спасибо за твое доверие, если ты будешь следовать по нему. Так же можете ознакомиться с моим roadmap по SQL.