Python-Roadmap - Дорожная карта по изучению Python

Overview

Python Roadmap

Python logo

Я решил сделать что-то вроде дорожной карты (Roadmap) для изучения языка Python. Возможно, если найдутся желающие дополнять ее, модифицировать и редактировать, то получится хорошая инструкция. Данная информация полезна тем, кто хочет изучить основы Python.

P.S. за ссылки на курсы, видео и статьи я не получаю ничего. Все ссылки не реферальные.


Благодарности:

@IgorBeschastnov - за правки орфографии и пунктуации
@GraceAredel - за правки орфографии и пунктуации

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


Почему Я решил это сделать? У меня было много попыток стать разработчиком. История об этом тут: (https://github.com/GnuriaN/Python-Roadmap/blob/master/previous_version/README.md). В итоге я устроился на работу и получил должность Junior Software Developer (2018 год). Но я решил, что нужно продолжать создавать RoadMap и довести его до логического конца. Мой путь не единственно верный, но он мой.

Содержание

  1. Мои репозитории по обучению
  2. С чего начать
    1. Установка Python
    2. Рабочее окружение
  3. Теперь пора учиться
    1. Junior
    2. Полезные ресурсы
    3. Обучение профессии
    4. Что дальше?
  4. Дополнительные материалы

Мои репозитории по обучению

Все свои материалы по обучению из различных репозиториев я решил скомпоновать в один и поместить как подпапки в Python Roadmap. (жалко, но он очень редко обновляется)
Collection of training lectures


С чего начать

Необходимо установить себе Python

  1. Для этого нужно скачать его с сайта python.org.
  2. Вам нужна IDE для работы. Список основных IDE можно увидеть на Wiki. Так же можно воспользоваться "продвинутыми" текстовыми редакторами. Мой список:
    1. PyCharm. Скачать можно с сайта JetBrains. Можно установить обе версии Professional и Community. Позже я скажу как можно получить/получать лицензию на три месяца.
    2. Visual Studio Code. Скачать можно с официального сайта: code.visualstudio.com.
    3. VSCodium. Сборка Visual Studio Code без телеметрии от Microsoft. Других отличий нет.
    4. Sublime Text 3. Скачать можно с официального сайта: sublimetext.com.
    5. Anaconda. Скачать можно с официального сайта: anaconda.com.
      • Немного о составе дистрибутива: anaconda.md

Мои рекомендации:

  1. Всех лучше для изучения подходят дистрибутивы PyCharm и Anaconda.
  2. Для удобства можно устанавливать две версии PyCharm, Professional и Community.

Сделать рабочее окружение

  1. Для создания рабочего окружения лучше всего подходит Python Virtual Environments. Прочитать можно в официальном PEP 405. Документацию можно прочитать на официальном сайте docs.python.org. Хорошая статья на python-script.com. Существуют модули, библиотеки, которые дополняют venv, но это уже сами.

    • Дополнительно: советую обратить внимание на проект PyEnv
  2. Научиться делать рабочее окружение в выбранных IDE.

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

  1. Я очень советую научиться использовать консоль.
    • для Windows:
    • для GNU\Linux:
      • Курс "Введение в Linux". В рамках представленного курса слушатели познакомятся с операционной системой Linux и её базовыми возможностями. https://stepik.org/course/73
      • TBD ...

Важно! Нет, не так, очень ВАЖНО!

Flake8 - установите его и настройте.

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

  1. Для начало посмотрите видео от Хитрый питон Настраиваем flake8, чтобы улучшить качество кода
  2. Потом почитайте:
    1. PEP 8 *
    2. Google Code Style Python
    3. Советы Google по кодированию на языке Python.
    4. PyCharm + flake8 = от Ilya Lebedev.
    5. The Best flake8 Extensions for your Python Project
    6. Загляните в репозиторий awesome-flake8-extensions
    7. И обратите внимание на комментарий от Ilya Lebedev:

    We use all of them in wemake-python-styleguide ... which is flake8 extension too. Here you can find the full list of violations produced by these plugins: wemake-python-stylegui

В общем начните использовать Линтеры с самого начала обучения! Это реально очень важно для вас и для команды, в которой вы в дальнейшем будете работать.

Теперь пора учиться

С чего начать учиться? Я считаю, что самый простой способ это использовать онлайн курсы. Начинать нужно с простых, а дальше переходить к более сложным.

Начинаем с самого простого.

Возьмем большую шпаргалку по Python 3, распечатаем ее, и повесим или положим на самом видном месте.

Ссылка на файл: mementopython3-russian.pdf P.S. Она висит у меня на рабочем месте до сих пор.

А еще есть очень замечательный проект python-cheatsheet, просто кладезь полезной информации. Крайне рекомендую добавить в закладки.

А еще был подкаст "Python Junior" от MoscowPython и LearnPython, его нужно слушать или смотреть. Сейчас это просто подкаст про Python, но смотреть/слушать его нужно.

Также могу порекомендовать присоединиться к Python коммьюнити в вашем городе и к разным информационным каналам.

Telegram:

  1. https://t.me/ru_python - Уютный чат для профессионалов, занимающихся поиском питоньих мудростей.
  2. https://t.me/ru_python_beginners - Вопросы про Python для чайников. Cпам и троллинг неприемлем. Не злоупотребляйте стикерами.
  3. Если вы из Нижнего Новгорода, то вы всегда можете постучаться в RANNTS и чатик https://t.me/rannts - это Python Community of Nizhny Novgorod!

Junior

1. Программирование на Python

О КУРСЕ: Курс посвящен базовым понятиям и элементам языка программирования Python (операторы, числовые и строковые переменные, списки, условия и циклы). Курс является вводным и наиболее подойдет слушателям, не имеющим опыта написания программ ни на одном из языков программирования.

Cсылка: https://stepik.org/course/67/

Рекомендация: Выполняя задания и решая задачи вы можете получить лицензию от JetBrains на три месяца.

Затем продолжим закреплять пройденный материал с помощью следующего курса.

2. Алгоритмы: теория и практика. Методы

О КУРСЕ: В курсе будут подробно разобраны базовые алгоритмические методы: жадные алгоритмы, метод «разделяй и властвуй», динамическое программирование. Для всех алгоритмов будут математически строго доказаны корректность и оценки на время работы. Помимо теоретических основ будут рассказаны тонкости реализации алгоритмов на языках программирования C++, Java и Python.

Cсылка: https://stepik.org/course/217

3. Основы Git

О КУРСЕ: Система контроля версий Git является стандартом де-факто в деле управления исходным кодом и каждый разработчик должен понимать основы работы с ней. Задачей курса является описание наиболее важных команд и сценариев их использования.

Cсылка: https://stepik.org/course/3145/
Очень рекомендую книгу: ProGit (там же можно найти и версию на других языках)
Небольшая шпаргалка по командам из одного платного курса: https://github.com/GnuriaN/UDEMY_GIT

4. Python: основы и применение

О КУРСЕ: Курс посвящен базовым принципам языка Python и программирования в целом. Он хорошо подойдет тем, кто уже может писать простейшие программы на Python или тем, кто до этого программировал на других языках.

Cсылка: https://stepik.org/course/512/

Рекомендация: Выполняя задания и решая задачи вы можете получить лицензию от JetBrains на три месяца.

После этого можно проверить, что осталось у нас в голове. Заодно что-то освежить и немного попрактиковаться. Но перед этим уже пора познакомиться с системой контроля версий GIT.

5. Интерактивный учебник языка Питон

О Курсе: Учитесь, решая серьёзные задачи прямо в браузере. Основные плюсы:

  • Удобный визуализатор
  • Не нужно ничего устанавливать на компьютер: пишите и исполняйте код прямо в браузере
  • Отлаживайте код по шагам и смотрите за значениями переменных
  • Проверяйте правильность решения на разных входных и выходных данных
  • Визуализатор переводит и объясняет ошибки в программах
  • После решения задачи ознакомьтесь с образцовым решением

Cсылка: http://pythontutor.ru/

После этого стоит пройти еще один курс

6. Погружение в Python

О Курсе: В ходе курса вы изучите конструкции языка, типы и структуры данных, функции, научитесь применять объектно-ориентированное и функциональное программирование, узнаете про особенности реализации Python, научитесь писать асинхронный и многопоточный код. Помимо теории вас ждут практические задания, которые помогут проверить полученные знания и отточить навыки программирования на Python. После успешного окончания курса вы сможете использовать полученный опыт для разработки проектов различной сложности.

Ссылка: https://www.coursera.org/learn/diving-in-python

Зачем? Тут даётся то, что вы еще не проходили и повторение того, что вы уже проходили. К тому же, этот курс — это начало большой программы по специализации. Но перед этим нужно познакомиться с Базами данных.

7. Алгоритмы: теория и практика. Структуры данных

О Курсе: Основная цель курса — узнать, как устроены основные структуры данных (чтобы не пользоваться их готовыми реализациями как чёрным ящиком, а точно знать, чего от реализации ожидать), и научиться выбирать подходящую структуру данных при решении заданной вычислительной задачи.

Данный курс является продолжением курса «Алгоритмы: теория и практика. Методы». Если вы не проходили этот курс, мы настоятельно рекомендуем вам пройти хотя бы его первую неделю.

Ссылка: https://stepik.org/course/1547

8. Введение в базы данных

О Курсе: Курс введения в базы данных знакомит слушателями с историей создания систем обработки структурированных данных, подходами к обработке информации, развитием моделей данных и систем управления данными. Основу курса составляет изучение и применение в типовых ситуациях средств SQL для обработки данных в SQL-СУБД. Выполнение практических задач в рамках курса предполагает использование СУБД MySQL.

Ссылка: https://stepik.org/course/551

9. Базы данных

О Курсе: Основу курса составляют изучение и применение языка SQL для создания, модификации объектов баз данных и управления данными в произвольной реляционной базе данных. Выполнение практических задач в рамках курса предполагает использование СУБД My SQL. В курсе рассматриваются этапы проектирования реляционных баз данных, правила составления запросов, основные методы индексирования данных. В курсе будут изучены вопросы использования транзакций и прав доступа к данным. Также курс дает обзор современных тенденций в области науки о данных в связи с появлением BigData. В заключении курса будут показаны сферы применения NoSQL баз данных и указаны современные подходы к обработке big data.

Ссылка: https://stepik.org/course/2614

10. Тестирование ПО: Базовый уровень

Бонус для автотестеров

О Курсе: Данный курс основан на официальной программе обучения "Сертифицированный тестировщик ПО Базового уровня" ISTQB и предназначен для подготовки к сдаче сертификационных экзаменов.
Все тестовые задания, представленные в курсе, взяты из реальных экзаменов ISTQB Foundation Level..

Ссылка: https://stepik.org/course/16478

11. Автоматизация тестирования с помощью Selenium и Python

Бонус для автотестеров

О Курсе: Это базовый курс для начинающих тестировщиков, который научит вас писать автоматизированные UI-тесты на языке программирования Python с помощью библиотеки Selenium. А еще мы рассмотрим популярные фреймворки и хорошие практики написания автотестов.

Ссылка: https://stepik.org/course/575


Вот на этом этапе я могу порекомендовать читать интересные ресурсы, смотреть видео и практиковаться.

Полезные ресурсы по Python

Ссылка: https://refactoring.guru/ru/design-patterns/python

Рекомендация: Очень полезный ресурс, который раскажет о "Паттернах проектирования" на Python с примерами.


Как научиться разработке на Python: новый видеокурс Яндекса

Для изучения курса нужно знать основы Python и понимать, как приложения развёртываются на серверах. Мы ждём, что вы умеете делать запросы к базам данных и знаете, как создаются веб‑приложения, — хотя бы на начальном уровне.

Ссылка: https://habr.com/ru/company/yandex/blog/498856/

Рекомендация: Обратите внимание на дополнительные ссылки к видео.

Программирование на Python от CSC

Ссылка: https://compscicenter.ru/courses/python/2015-autumn/classes/

Рекомендация: Смотреть все. От начала до конца. Можно и нужно конспектировать то, что вы видите. Это будет очень полезно. В этом видео вы увидите то, что уже проходили, но там вам покажут некоторые нюансы того, как это происходит.

Комментарии: В настоящий момент (осень 2018 г.) на CSC идет новый курс лекций https://compscicenter.ru/courses/python/2018-autumn/classes/ но .... (дополнения в 2019 году) смотрите курс 2015 =)

Курс информатики на Python 3 от МФТИ

Ссылка: http://judge.mipt.ru/mipt_cs_on_python3/

Рекомендация: Смотреть на быстром просмотре. Отмечать интересные моменты и прорабатывать их.

Язык программирования Python от UNEEX

Ссылка: https://uneex.ru/LecturesCMC/PythonIntro2014 Ссылка: https://uneex.ru/LecturesCMC/PythonIntro2017

Рекомендации: Смотреть на быстром просмотре. Отмечать интересные моменты и прорабатывать их.

Видео с meetup'ов

python-videos-ru-2018

Ссылка: https://github.com/hH39797J/python-videos-ru-2018

Видео от Geekbrains

Ссылка: geekbrains_events.md

Видео от OTUS

Ссылка: Открытые уроки по Python


Дальше мы поговорим о специализациях (большие курсы по обучению). Эти курсы уже платные, и идти на них или нет - решать вам. В интернете очень много споров о том, нужны или не нужны курсы, ходить на них или нет. Мнений много. *Мое мнение: На курсы нужно ходить, когда у тебя уже есть определенный багаж знаний и возможность его использовать. Что дадут вам курсы:

  1. Помогут разложить информацию по полочкам.
  2. Дадут возможность познакомиться с людьми которые, так же как и вы, изучают Python.
  3. Развивать Soft Skills.

Обучение професии

1. Geekbrains.ru

На Geekbrains.ru сейчас (осень 2018 г.) есть два курса:

GeekUniversity

Ссылка: https://geekbrains.ru/geek_university/python

Программист Python

Ссылка: https://geekbrains.ru/professions/python_developer

Стоимость постоянно меняется. Бывают скидки.

2. LearnPython от MoscowPython

Ссылка: https://learn.python.ru

3. Специализация Программирование на Python от Coursera

Ссылка: https://www.coursera.org/specializations/programming-in-python

4. OTUS

Тут уже для продвинутых Junior.

Ссылка: https://otus.ru/lessons/razrabotchik-python/

Что дальше?

А дальше нужно определить направление, в котором вам интересно будет развиваться.

Дополнительные обучающие материалы

1. Обработка изображений

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

Ссылка: https://stepik.org/course/1280

2. Нейронные сети и компьютерное зрение

О Курсе: В этом курсе вы сделаете первые шаги в области компьютерного зрения с методами машинного обучения. Как мы этого добьёмся?

Для начала, мы пройдём основы нейронных сетей: как же какая-то абстрактная модель мышления, помещённая в компьютер, позволила обычным программистам просто так взять, и решить нерешённую ранее задачу зрения роботов. Мы изучим архитектуру и алгоритмы настройки нейросетей, приобретём глубокое понимание всего, что происходит после нажатия "Запустить обучение". Мы разберём, как лучше представить задачу для нейронной сети, поскольку не все постановки в принципе разрешимы, и в этом нам поможет метод максимального правдоподобия.

Ссылка: https://stepik.org/course/50352

3. Курс Deep Learning (2019-2020): базовый поток

О Курсе: познакомить слушателей с теорией и практикой глубокого обучения (нейронных сетей) в интерактивном формате. Мы ведём как очные, так и заочные занятия. Cайт: dlschool.org Группа ВК: https://vk.com/dlschool_mipt

Ссылка: https://stepik.org/course/57839

4. Курс Deep Learning (2019-2020): продвинутый поток

О Курсе: познакомить слушателей с теорией и практикой глубокого обучения (нейронных сетей) в интерактивном формате. Мы ведём как очные, так и заочные занятия. Cайт: dlschool.org Группа ВК: https://vk.com/dlschool_mipt

Ссылка: https://stepik.org/course/57457


./img/roadmap.png Нашел на просторах интернета. Точного автора не знаю.

А это моя версия для выбора направлений:

./img/roadmap.png

Owner
Ruslan Prokhorov
Knowledge is not redundant if they have something in common. #Python, #ITSec, #Dev, #QAA, #Ops, #DevOps
Ruslan Prokhorov
Simple project to learn more about Bézier curves

Python Quadratic Bézier Simple project to learn more about Bézier curves. On this project i used some api's to graphics and gui pygame thorpy in theor

Kenned Ferreira 2 Mar 06, 2022
UF3: a python library for generating ultra-fast interatomic potentials

Ultra-Fast Force Fields (UF3) S. R. Xie, M. Rupp, and R. G. Hennig, "Ultra-fast interpretable machine-learning potentials", preprint arXiv:2110.00624

Ultra-Fast Force Fields 24 Nov 13, 2022
A Pythonic Data Catalog powered by Ray that brings exabyte-level scalability and fast, ACID-compliant, change-data-capture to your big data workloads.

DeltaCAT DeltaCAT is a Pythonic Data Catalog powered by Ray. Its data storage model allows you to define and manage fast, scalable, ACID-compliant dat

45 Oct 15, 2022
Sacred is a tool to help you configure, organize, log and reproduce experiments developed at IDSIA.

Sacred Every experiment is sacred Every experiment is great If an experiment is wasted God gets quite irate Sacred is a tool to help you configure, or

IDSIA 4k Jan 02, 2023
Run Python code right in your Telegram messages

Run Python code right in your Telegram messages Made with Telethon library, TGPy is a tool for evaluating expressions and Telegram API scripts. Instal

29 Nov 22, 2022
A place where the most basic, basic of python coding exists

python-basics A place where the most basic, basic of python coding exists As you can see, there are four folders and the best order to read is: appeti

Chuqin 2 Oct 05, 2022
Add your recently blog and douban states in your GitHub Profile

Add your recently blog and douban states in your GitHub Profile

Bingjie Yan 4 Dec 12, 2022
Backups made easy, automated, monitored and SECURED with an audited encryption

Backup Controller Backups made easy, automated, monitored and SECURED with an audited encryption. Schedules backup tasks executed by Backup Maker, upl

RiotKit 1 Jan 30, 2022
Artificial intelligence based on 5-dimensional quantum selection

Deep Thought An artificial intelligence based on 5-dimensional quantum selection. Algorithm The payload Make an random bit array (e.g. 1101...) Conver

Larry Holst 3 Dec 14, 2022
Choice Coin 633 Dec 23, 2022
Python MapReduce library written in Cython.

Python MapReduce library written in Cython. Visit us in #hadoopy on freenode. See the link below for documentation and tutorials.

Brandyn White 243 Sep 16, 2022
Simple calculator made in python

calculator Uma alculadora simples feita em python CMD, PowerShell, Bash ✔️ Início 💻 apt-get update apt-get upgrade -y apt-get install python git git

Spyware 8 Dec 28, 2021
dynamically create __slots__ objects with less code

slots_factory Factory functions and decorators for creating slot objects Slots are a python construct that allows users to create an object that doesn

Michael Green 2 Sep 07, 2021
Python wrapper around Apple App Store Api

App Store Connect Api This is a Python wrapper around the Apple App Store Api : https://developer.apple.com/documentation/appstoreconnectapi So far, i

123 Jan 06, 2023
Fofa asset consolidation script

资产收集+C段整理二合一 基于fofa资产搜索引擎进行资产收集,快速检索目标条件下的IP,URL以及标题,适用于资产较多时对模糊资产的快速检索,新增C段整理功能,整理出

白泽Sec安全实验室 36 Dec 01, 2022
Bionic is Python Framework for crafting beautiful, fast user experiences for web and is free and open source.

Bionic is Python Framework for crafting beautiful, fast user experiences for web and is free and open source. Getting Started This is an example of ho

14 Apr 10, 2022
pydock - Docker-based environment manager for Python

pydock - Docker-based environment manager for Python ⚠️ pydock is still in beta mode, and very unstable. It is not recommended for anything serious. p

Alejandro Piad 16 Sep 18, 2021
A Sophisticated And Beautiful Doxing Tool

Garuda V1.1 A Sophisticated And Beautiful Doxing Tool Works on Android[Termux] | Linux | Windows Don't Forget to give it a star ❗ How to use ❓ First o

The Cryptonian 67 Jan 10, 2022
Saturne best tools pour baiser tout le système de discord

Installation | Important | Discord 🌟 Comme Saturne est gratuit, les dons sont vraiment appréciables et maintiennent le développement! Caractéristique

GalackQSM 8 Oct 02, 2022
Synthetik Python Mod - A save editor tool for the game Synthetik written in python

Synthetik_Python_Mod A save editor tool for the game Synthetik written in python

2 Sep 10, 2022