Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Python - один из самых популярных языков программирования в мире. Статистика современного рынка свидетельствует о том, что Python желаемый навык, и что его использование широко распространено в различных сферах, таких как наука, инженерия, бизнес, аналитика данных и многих других.
Если вы уже определились с выбором Python в качестве основного языка программирования, рекомендуется обратить внимание на мой roadmap, который позволит лучше ориентироваться в выборе учебных материалов и понимать, как развиваться в этой сфере.
В данной статье мы рассмотрим roadmap по изучению Python на 2023 год, который специально составлен для помощи начинающим и опытным программистам. Вы также найдете необходимые ссылки на ресурсы для улучшения своего знания в Python.
Основы Python:
Типы данных и структуры (целые числа, дробные числа, строки, списки, кортежи, словари, множества)
Переменные и выражения
Условные операторы (if / else)
Циклы (for / while)
Функции
Ввод / вывод (print, input)
Мощный и хороший курс по базе Python: https://stepik.org/course/67/promo
Туториал по Питону от создателей: https://docs.python.org/3/tutorial/index.html#the-python-tutorial
База от Тимофея Хирьянова: https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0
В целом пройдя первый курс и просмотрев лекции от Тимофея вы сможете покрыть значительную часть перечисленных далее пунктов.
Объектно-ориентированное программирование:
Классы и объекты
Наследование
Полиморфизм
Инкапсуляция
Абстракция
Переменные класса и объекта
Введение в ООП: https://proglib.io/p/python-oop
Курс на Youtube про ООП: https://youtube.com/playlist?list=PLNi5HdK6QEmX9fxp3_IBFx1O5tiTmKlYm
Функциональное программирование:
Чистые функции
Функции высшего порядка
Рекурсия
Лямбда-выражения
Map, filter, reduce, zip
Про функциональное программирования на канале Тимофея Хирьянова: https://www.youtube.com/watch?v=3Dmi4b8MkMM
Про функциональное программирование подробнее: https://docs.python.org/3/howto/functional.html
Про Map, filter, reduce, zip: https://youtu.be/UDthAJmD3EQ
Модули и библиотеки:
Импортирование модулей
Создание модулей
Использование сторонних пакетов (pip)
Написание документации (docstrings)
Про модули с документации: https://docs.python.org/3/tutorial/modules.html
Интересные библиотеки python: https://habr.com/ru/company/edison/blog/474622/
Работа с файлами:
Открытие и чтение файлов
Запись в файлы
Закрытие файлов
Работа с CSV / JSON / XML-файлами
Про работу с файлами: https://youtu.be/oRr_bEXJbV0
CSV: https://youtu.be/Pp2sMniG0FU
Разработка графических интерфейсов (GUI):
Tkinter
PyQt
PyGTK
wxPython
Плейлист разработок GUI на PyQt:
https://www.youtube.com/playlist?list=PL6plRXMq5RADiWZuyZvVYnhncVixVKgBN
https://youtube.com/playlist?list=PLKl9v2TQvIkq4i_hZwZ1PmobxJSkIGwBf
Регулярные выражения:
Поиск шаблонов
Метасимволы
Квантификаторы
Группы
Подстановка
Плейлист про регулярные выражения на Youtube: https://youtube.com/playlist?list=PLmSBSL0-aSgkT_l0K0pXdfIKEPJyOZl7c
Тестирование:
Модульное тестирование (unittest)
Интеграционное тестирование
Разработка через тестирование (TDD)
Отладка
Про unittest: https://www.youtube.com/watch?v=YD7aYJh3k-w
Хороший гайд на Хабре: https://habr.com/ru/company/otus/blog/433358/
Управление версиями в GIT:
Рабочий процесс и управление версиями в системе Git
Ветвление и объединение
Запросы на слияние и обзоры кода
Управление конфликтами слияния
Полный гайд по Git: https://youtu.be/SEvR78OhGtw
Про гит подробнее: https://git-scm.com/book/ru/v2/
Cтатья на Хабре про Git: https://habr.com/ru/company/intel/blog/344962/
Оптимизация:
Профилирование
Управление памятью
Анализ времени выполнения
Рефакторинг кода
Статья про оптимизацию кода: https://habr.com/ru/post/551150/
На Youtube про рефакторинг кода: https://youtu.be/ejXxWxt3xOk
Управление памятью: https://youtu.be/D0vbuIDOV4c
Параллельное выполнение:
Многопоточность
Многопроцессорность
Асинхронное программирование (asyncio)
Про многопоточность и многопроцессорность: https://youtube.com/playlist?list=PL6plRXMq5RAAb9gwGqmgAoA-KIr-7CMuz
Асинхронное программирование: https://youtu.be/_4QY1nGFRY8
Управление базами данных:
SQL
Реляционные базы данных (MySQL, PostgreSQL)
Нереляционные базы данных (MongoDB)
Объектно-реляционное отображение (ORM)
Курс по базам данных от VK team на Youtube:
https://youtube.com/playlist?list=PLrCZzMib1e9oOFQbuOgjKYbRUoA8zGKnj
Мой roadmap по SQL: https://habr.com/ru/post/725414/
Сетевое программирование:
Программирование сокетов
Подключения TCP / UDP
Отправка / получение электронной почты (smtplib, imaplib)
Про сокеты и т.п: https://www.youtube.com/watch?v=UohnrnZZ0w0
Про TCP и UDP: https://habr.com/ru/post/711578/
Развертывание:
Виртуальные среды (venv)
Распространение пакетов (wheel)
Непрерывная интеграция / непрерывное развертывание (CI / CD)
Docker
Про venv: https://youtu.be/OvocRhD9WSA
Docker: https://youtu.be/n9uCgUzfeRQ
Разное:
Интерфейс командной строки (Click)
Работа с API-интерфейсами
Сериализация / десериализация данных (pickle, json, yaml)
Pickle: https://docs.python.org/3/library/pickle.html
Веб-разработка(опционально):
HTML / CSS
Запросы HTTP
Flask / Django
REST API
Веб-скрапинг (BeautifulSoup)
Django: https://youtube.com/playlist?list=PLA0M1Bcd0w8xO_39zZll2u1lz_Q-Mwn1F
HTML & CSS: https://youtube.com/playlist?list=PLMB6wLyKp7lV9YoWTMCztq-KXYhYPB09K
REST API: https://youtu.be/v7zq1DntN_Y
Анализ данных(опционально):
NumPy / SciPy
Pandas
Matplotlib / Seaborn
Обработка естественного языка (NLTK)
Введение в Pandas: https://youtu.be/wjDns1IYcPg
NumPy: https://youtu.be/eDuuKvIWzew
Matplotlib: https://youtu.be/clDQPyQJ-hc
Кроме того, существует ряд нескольких важных компетенций, которые необходимо развивать во время пути к становлению опытного Python-разработчика:
Структуры данных и алгоритмы:
Базовые структуры данных (стеки, очереди, связные списки, деревья, графы)
Поиск и сортировка алгоритмов
Анализ сложности (нотация O большое)
Динамическое программирование
Рекурсия
Структуры данных и алгоритмы https://youtu.be/S2I0covkyMc
Рекурсия: https://youtu.be/NOaSY5pJmyc
Решение проблем и критическое мышление:
Анализирование проблем и требований
Разбиение проблем на более мелкие части
Генерация творческих решений
Жизненный цикл разработки программного обеспечения:
Анализ требований
Проектирование архитектуры программного обеспечения
Реализация кода
Тестирование и отладка кода
Развертывание и поддержка
Методологии Agile-разработки (например, Scrum)
Статья на Хабре: https://habr.com/ru/company/dcmiran/blog/521718/
Agile: https://habr.com/ru/company/otus/blog/710034/
Качество кода:
Обзоры кода и лучшие практики чистого кодирования
Справочники по стилю кодирования (например, PEP8)
Тестирование и разработка через тестирование
Рефакторинг кода для улучшения качества и обслуживаемости
PEP8: https://pep8.org/
Коммуникация и сотрудничество:
Написание четкой и краткой документации
Средства совместной работы, такие как Jira
Эффективное общение с коллегами и заинтересованными сторонами
Работа в команде с использованием систем управления версиями, таких как Git
Кратко про документацию: https://youtu.be/bFVXMc4FWQc
Краткий курс по Jira: https://youtu.be/wy94sK_PzWw
И самое главное - непрерывное обучение:
Дополнительное образование, такое как статьи, книги и онлайн-курсы,
Слежение за тенденциями в индустрии и обновлениями в Python и связанных технологиях,
Изучение лучших практик и новых подходов к разработке.
Хорошая книга по Python - "Изучаем Python" от Марка Лутца
Больше Питона:
https://stepik.org/course/58852/syllabus
https://stepik.org/course/68343/syllabus
Больше практики по Python:
HackerRank (https://www.hackerrank.com/)
LeetCode (https://leetcode.com/)
Codewars (https://www.codewars.com/)
Таким получился Roadmap. Спасибо за твое доверие, если ты будешь следовать по нему.
Так же можете ознакомиться с моим roadmap по SQL: https://habr.com/ru/post/725414/