Skip to content

GrytsenkoAndrey/Python-6m-roadmap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

Python-6m-roadmap

Изучаем Python за 6 месяцев by habr.com

Вкратце, на мой взгляд, необходимо знать следующие темы:

  • стандартные типы данных;
  • условия;
  • циклы;
  • функции;
  • основы алгоритмов;
  • объектно-ориентированное программирование (ООП);
  • конкурентность;
  • тестирование кода;
  • полезные библиотеки типа itertools, collections и тому подобное.

Основы Python (3 месяца)

Советую начать с прочтения книги Билла Любановича «Простой Python. Современный стиль программирования» (второе издание) чтобы иметь представление о том, что такое программирование и как выглядит код на Python. Далее переходим к курсам на платформе Stepik:

Очень хорошие курсы с морем задач. После рекомендую посмотреть плейлист декораторы канала luchanos и для практики пройти на Stepik «Декораторы в Python»: часть 1 и часть 2.

Введение в алгоритмы (2 недели)

Вообще, о том, как шатать leetcode и проходить алгоритмические фиды на собесах, следует написать отдельную статью, поэтому пока обойдемся основами основ и здесь на сцену вступает небезызвестная книга Адитьи Бхаргавы «Грокаем алгоритмы».

Объектно-ориентированное программирование (3 недели)

Рекомендую плейлист Python OOP канала JimShapedCoding и курс Олега Молчанова по ООП – лучшее объяснение из всех, что я видел (курс как бы платный, но интернет – такая вещь, что….ну вы поняли). Также параллельно с курсами было бы хорошо углубляться в пройденные темы и здесь мне понравилась книга «Object-oriented Python», Irv Kalb. В отличие от курсов, в ней также уделяется внимание магическим методам и некоторым другим аспектам. Писать игры необязательно, как это делается в книге, но ознакомиться с ней стоит. Для практики подойдет codewars. Когда получится решать 4-5 кату по ООП, то можно двигаться дальше.

Конкурентность (2 недели)

По основам многопроцессорности и многопоточности советую плейлист канала luchanos Конкурентность в Python. По асинхронному программированию однозначно плейлист Олега Молчанова Асинхронность в Python и плейлист import asyncio: Learn Python’s Asyncio канала EdgeDB.

Отсюда вы узнаете о выполнении конкурентных запросов к базам данных, сочетании многопоточной обработки с asyncio, управлении подпроцессами и многом другом.

Тестирование кода (1 неделя)

Уметь покрывать свой код тестами хотя бы на базовом уровне – точно не будет лишним и поэтому я предлагаю начать с просмотра плейлиста Pytest тестирование канала luchanos. Для углубленного изучения есть неплохая книга «Python Testing with pytest» (second edition), Brian Okken, с которой стоит ознакомиться. Для углубления переходим к книге Мэттью Флауэра «Asyncio и конкурентное программирование на Python».

Больше продвинутых тем (3 недели)

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

  • «Python – к вершинам мастерства» (второе издание), Лусиану Рамальо.
  • «Dead simple Python», Jason C. Mcdonald.

Best practices (1 неделя и больше)

После того, как вы уже научитесь немного писать код, неплохо бы научиться писать его красиво и в этом нам поможет книга «Effective Python. 90 specific ways to write Python better» (second edition), Brett Slatkin.

Дополнительные источники

Ещё несколько полезных ссылок для изучения Python:

Что в итоге

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

About

Изучаем Python за 6 месяцев by habr.com

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published