Я решил сделать что-то вроде дорожной карты (Roadmap) для изучения языка Python. Возможно, если найдутся желающие дополнять ее, модифицировать и редактировать, то получится хорошая инструкция. Данная информация полезна тем, кто хочет изучить основы Python.
P.S. за ссылки на курсы, видео о статьи я не получаю ничего. Все ссылки не реферальные.
Почему Я решил это сделать?
У меня было много попыток стать разработчиком. История об этом тут: (https://github.com/GnuriaN/Python-Roadmap/blob/master/previous_version/README.md). В итоге я устроился на работу и получил должность Junior Software Developer (2018 год). Но я решил, что нужно продолжать создавать RoadMap и довести его до логического конца. Мой путь не единственно верный, но он мой.Все свои материалы по обучению из различных репозиториев, я решил скомпоновать в один и поместить как подпапки в Python Roadmap. (жалко, но он очень редко обновляется)
Collection of training lectures
- Для этого нужно скачать его с сайта python.org.
- Вам нужна IDE для работы. Список основных IDE можно увидеть на Wiki. Так же можно воспользоваться "продвинутыми" текстовыми редакторами. Мой список:
- PyCharm. Скачать можно с сайта JetBrains. Можно установить обе версии
Professional
иCommunity
. Позже я скажу как можно получить/получать лицензию на три месяца. - Visual Studio Code. Скачать можно с официального сайта: code.visualstudio.com.
- Sublime Text 3. Скачать можно с официального сайта: sublimetext.com.
- Anaconda. Скачать можно с официального сайта: anaconda.com.
- Немного о составе дистрибутива: anaconda.md
- PyCharm. Скачать можно с сайта JetBrains. Можно установить обе версии
Мои рекомендации:
- Всех лучше для изучения подходят дистрибутивы PyCharm и Anaconda.
- Для удобства можно устанавливать две версии PyCharm,
Professional
иCommunity
.
-
Для создания рабочего окружения лучше всего подходит
Python Virtual Environments
. Прочитать можно в официальном PEP 405. Документацию можно прочитать на официальном сайте docs.python.org. Хорошая статья на python-script.com. Существуют модули, библиотеки, которые дополняют venv, но это уже сами.- Дополнительно: советую обратить внимание на проект PyEnv
-
Научится делать рабочее окружение в выбранных IDE.
Виртуальное окружение очень хорошо помогает в процессе обучения. Вы можете столкнуться с тем, что вам захочется поэкспериментировать с библиотеками или модулями, и что бы не засорять рабочее
окружение, вы будете под каждую задачу создавать отдельный проект со своими модулями.
С чего начать учится? Я считаю, что самый простой способ это использовать онлайн курсы. Начинать нужно с простых, а дальше переходить к более сложным.
Начинаем с самого простого.
Ссылка на файл: mementopython3-russian.pdf P.S. Она висит у меня на рабочем месте до сих пор.
А еще был подкаст "Python Junior" от MoscowPython и LearnPython, его нужно слушать или смотреть. Сейчас это просто подкаст про Python, но смотреть/слушать его нужно.
Так же могу порекомендовать присоедениться к Python комьюнити в вашем городе и к разным информационным каналам.
Telegram:
- https://t.me/ru_python - Уютный чат для профессионалов, занимающихся поиском питоньих мудростей.
- https://t.me/ru_python_beginners - Вопросы про Python для чайников. Cпам и троллинг неприемлем. Не злоупотребляйте стикерами.
- Если вы из
Нижнего Новгорода
то вы всегда можете постучаться в RANNTS и чатик https://t.me/rannts - это Python Community of Nizhny Novgorod!
О КУРСЕ: Курс посвящен базовым понятиям и элементам языка программирования Python (операторы, числовые и строковые переменные, списки, условия и циклы). Курс является вводным и наиболее подойдет слушателям, не имеющим опыта написания программ ни на одном из языков программирования.
Cсылка: https://stepik.org/course/67/
Рекомендация: Выполняя задания и решая задачи вы можете получить лицензию от JetBrains на три месяца.
Затем продолжим закреплять пройденный материал с помощью следующего курса.
О КУРСЕ: Курс посвящен базовым принципам языка Python и программирования в целом. Он хорошо подойдет тем, кто уже может писать простейшие программы на Python или тем, кто до этого программировал на других языках.
Cсылка: https://stepik.org/course/512/
Рекомендация: Выполняя задания и решая задачи вы можете получить лицензию от JetBrains на три месяца.
После этого можно проверить, что осталось у нас в голове. Заодно, что-то освежить и немного попрактиковаться. Но перед этим уже пора познакомиться с системой контроля версий GIT.
О КУРСЕ: Система контроля версий Git является стандартом де-факто в деле управления исходным кодом и каждый разработчик должен понимать основы работы с ней. Задачей курса является описание наиболее важных команд и сценариев их использования.
Cсылка: https://stepik.org/course/3145/
Очень рекомендую книгу: ProGit (там же можно найти и версию на других языках)
О Курсе: Учитесь, решая серьёзные задачи прямо в браузере. Основные плюсы:
- Удобный визуализатор
- Не нужно ничего устанавливать на компьютер: пишите и исполняйте код прямо в браузере
- Отлаживайте код по шагам и смотрите за значениями переменных
- Проверяйте правильность решения на разных входных и выходных данных
- Визуализатор переводит и объясняет ошибки в программах
- После решения задачи ознакомьтесь с образцовым решением
Cсылка: http://pythontutor.ru/
После этого стоит пройти еще один курс
О Курсе: В ходе курса вы изучите конструкции языка, типы и структуры данных, функции, научитесь применять объектно-ориентированное и функциональное программирование, узнаете про особенности реализации Python, научитесь писать асинхронный и многопоточный код. Помимо теории вас ждут практические задания, которые помогут проверить полученные знания и отточить навыки программирования на Python. После успешного окончания курса вы сможете использовать полученный опыт для разработки проектов различной сложности.
Ссылка: https://www.coursera.org/learn/diving-in-python
Зачем? Тут даётся то, что вы еще не проходили и повторение того, что вы уже проходили. К тому же, этот курс — это начало большой программы по специализации. Но перед этим нужно познакомится с Базами данных
.
О Курсе: Курс введения в базы данных знакомит слушателями с историей создания систем обработки структурированных данных, подходами к обработке информации, развитием моделей данных и систем управления данными. Основу курса составляет изучение и применение в типовых ситуациях средств SQL для обработки данных в SQL-СУБД. Выполнение практических задач в рамках курса предполагает использование СУБД MySQL.
Ссылка: https://stepik.org/course/551
О Курсе: Основу курса составляют изучение и применение языка SQL для создания, модификации объектов баз данных и управления данными в произвольной реляционной базе данных. Выполнение практических задач в рамках курса предполагает использование СУБД My SQL. В курсе рассматриваются этапы проектирования реляционных баз данных, правила составления запросов, основные методы индексирования данных. В курсе будут изучены вопросы использования транзакций и прав доступа к данным. Также курс дает обзор современных тенденций в области науки о данных в связи с появлением BigData. В заключении курса будут показаны сферы применения NoSQL баз данных и указаны современные подходы к обработке big data.
Ссылка: https://stepik.org/course/2614
Бонус для автотестеров
О Курсе: Это базовый курс для начинающих тестировщиков, который научит вас писать автоматизированные UI-тесты на языке программирования Python с помощью библиотеки Selenium. А еще мы рассмотрим популярные фреймворки и хорошие практики написания автотестов.
Ссылка: https://stepik.org/course/575
Вот на этом этапе, я могу порекомендовать читать интересные ресурмы, смотреть видео и практиковаться.
Ссылка: https://refactoring.guru/ru/design-patterns/python
Рекомендация: Очень полезный ресурс, который раскажет о "Паттернах проектирования" на Python с примерами.
Ссылка: https://compscicenter.ru/courses/python/2015-autumn/classes/
Рекомендация: Смотреть все. От начала до конца. Можно и нужно конспектировать то, что вы видите. Это будет очень полезно. В этом видео вы увидите то, что уже проходили, но там вам покажут некоторые нюансы того, как это происходит.
Комментарии: В настоящий момент (осень 2018 г.) на CSC идет новый курс лекций https://compscicenter.ru/courses/python/2018-autumn/classes/ но .... (дополнения в 2019 году) смотрите курс 2015 =)
Ссылка: http://judge.mipt.ru/mipt_cs_on_python3/
Рекомендация: Смотреть на быстром просмотре. Отмечать интересные моменты и прорабатывать их.
Ссылка: https://uneex.ru/LecturesCMC/PythonIntro2014 Ссылка: https://uneex.ru/LecturesCMC/PythonIntro2017
Рекомендации: Смотреть на быстром просмотре. Отмечать интересные моменты и прорабатывать их.
Ссылка: https://github.com/hH39797J/python-videos-ru-2018
Ссылка: geekbrains_events.md
Ссылка: Открытые уроки по Python
Дальше мы поговорим о специализациях (большие курсы по обучению). Эти курсы уже платные, и идти на них или нет - решать вам. В интернете очень много споров о том, нужны или не нужны курсы, ходить на них или нет. Мнений много. *Мое мнение: На курсы нужно ходить, когда у тебя уже есть определенный багаж знаний и возможность его использовать. Что дадут вам курсы:
- Помогут разложить информацию по полочкам.
- Дадут возможность познакомиться с людьми которые, так же как и вы, изучают Python.
- Развивать Soft Skills.
На Geekbrains.ru сейчас (осень 2018 г.) есть два курса:
Ссылка: https://geekbrains.ru/geek_university/python
Ссылка: https://geekbrains.ru/professions/python_developer
Стоимость постоянно меняется. Бывают скидки.
Ссылка: https://learn.python.ru
Ссылка: https://www.coursera.org/specializations/programming-in-python
Тут уже для продвинутых Junior.
Ссылка: https://otus.ru/lessons/razrabotchik-python/
А дальше нужно определить направление в котором вам интересно будет развиваться.
Нашел на просторах интернета. Точного автора не знаю.
А это моя версия для выбра направлений: