Изучаем Python за 6 месяцев. Подробный план обучения
Простой и красивый синтаксис, множество библиотек под самые разные задачи и большое комьюнити делают Python одним из самых популярных языков программирования на сегодняшний день, который активно используется в data science и машинном обучении, веб-разработке и других областях программирования.
Когда я начал изучать питон, у меня возникло несколько вопросов:
- какие темы необходимо изучить;
- насколько это будет сложно;
- сколько это займёт времени;
- где найти хорошие источники информации?
Вкратце, на мой взгляд, необходимо знать следующие темы:

- стандартные типы данных;
- условия;
- циклы;
- функциональное программирование;
- работа с файлами;
- регулярные выражения;
- основы алгоритмов;
- объектно-ориентированное программирование (ООП);
- конкурентность;
- тестирование кода;
- полезные библиотеки типа itertools, collections и тому подобное.
Если вы прежде не занимались программированием, то поначалу будет сложновато, но потом мозги «настроятся» в нужное русло и будет нормально.
На этом преамбула окончена и переходим непосредственно к плану обучения.
Основы (3 месяца)
Предлагаю начать с прочтения книги Билла Любановича «Простой Python. Современный стиль программирования» (второе издание) чтобы иметь базовое представление о том, что такое программирование и как выглядит код на Python.

Далее переходим к курсам на платформе Stepik:
- «Поколение Python: курс для начинающих»;
- «Поколение Python: курс для продвинутых».
Очень хорошие курсы с морем задач, которые вас познакомят с основными типами данных, условиями, циклами, функциями и работой с файлами.
После следует приступить к плейлисту декораторы канала luchanos и для практики пройти на Stepik «Декораторы в Python»: часть 1 и часть 2.
Ещё по желанию можно пройти регулярные выражения: курс, учебник и практика.
Введение в алгоритмы (2 недели)
Вообще, о том, как шатать leetcode и проходить алгоритмические фиды на собесах – дело отдельной статьи, поэтому пока обойдёмся основами основ и здесь на сцену вступает небезызвестная книга Адитьи Бхаргавы «Грокаем алгоритмы».

Автору удалось сделать очень дружелюбное к новичкам пособие, из которого вы узнаете про алгоритмы поиска и сортировки, что такое рекурсия, динамическое программирование и многое другое – однозначно рекомендасьон.
Объектно-ориентированное программирование (3 недели)
Есть 2 хороших курса:
- плейлист Python OOP канала JimShapedCoding;
- курс Python ООП Олега Молчанова – лучшее объяснение из всех, что я видел.
Отсюда вы узнаете об устройстве объектной модели в Python, какие существуют парадигмы ООП, для чего применяются дескрипторы и многое другое.
Также параллельно с курсами было бы хорошо углубляться в пройденные темы и для этого есть неплохая книга «Object-oriented Python», Irv Kalb.

В отличие от курсов, в ней также уделяется внимание магическим методам и некоторым другим аспектам. Писать игры необязательно, как это делается в книге, но ознакомиться с ней стоит. В конце переходим к SOLID и по желанию к паттернам (плейлист и сайт).
Для практики переходим на codewars OOP: когда получится решать 5 кату, то можно двигаться дальше.
Конкурентность (2 недели и больше)
Для обеспечения быстрой и эффективной работы приложений, а также для обработки большого количества данных необходимо уметь пользоваться вычислительными ресурсами максимально эффективно, поэтому знания об основах конкурентности даже на начальном этапе будут большим преимуществом.
Основы многопроцессорности и многопоточности:
- Конкурентность в Python канала luchanos.
По асинхронному программированию есть 2 хороших плейлиста:
- Асинхронность в Python от Олега Молчанова;
- import asyncio: Learn Python’s Asyncio канала EdgeDB.
Параллельно с курсами лучше пользоваться книгой Мэттью Флауэра «Asyncio и конкурентное программирование на Python».

Отсюда вы узнаете о выполнении конкурентных запросов к базам данных, сочетании многопоточной обработки с asyncio, управлении подпроцессами и многом другом.
Тестирование кода (1 неделя)
Чтобы удостовериться в том, что написанный вами код выполняет именно тот функционал, который вы от него ожидаете, его необходимо уметь покрывать тестами хотя бы на базовом уровне.
Поэтому предлагаю перейти к плейлисту Pytest тестирование канала luchanos.
Ещё есть неплохая книга «Python Testing with pytest» (second edition), Brian Okken, с которой также желательно ознакомиться.

В качестве альтернативы Pytest есть неплохой плейлист Unittest in python канала Paris Nakita Kejser и книга Владимира Хорикова «Принципы юнит-тестирования» (примеры кода на C#).

Больше продвинутых тем (3 недели)
В принципе, может показаться, что всего вышеперечисленного уже достаточно, но для лучшего понимания устройства функций и классов, как работает сборщик мусора, в чем отличие итераторов от генераторов, как пользоваться библиотеками типа itertools, collections и т.д., ещё необходимо немного углубиться, и в этом нам помогут 2 книги:
- «Python – к вершинам мастерства» (второе издание), Лусиану Рамальо.

- «Dead simple Python», Jason C. Mcdonald.

Книги плюс-минус об одном и том же, однако в последней некоторые темы рассматриваются на немного более поверхностном уровне. За счёт этого она читается легче.
Какую из них выбрать? Лучше читать наиболее непонятные темы из обеих книг.
Best practices (1 неделя и больше)
После того, как вы изучите основные конструкции и возможности языка, не будет лишним и узнать об их эффективном использовании, и для этой цели есть хорошая книга «Effective Python. 90 specific ways to write better Python» (second edition), Brett Slatkin.

Солянка из лучших практик, показывающая как сделать код более лаконичным и эффективным с «питоновской» точки зрения.
Что в итоге
Занимаясь по 10 часов в день, на изучение всех вышеперечисленных тем уйдёт около полугода – это цифры из собственного опыта, так что можно их брать в качестве начального ориентира, однако, возможно, у вас будут другие результаты.
Что дальше
Дальше можно смело двигаться в выбранное вами направление: будь то веб-разработка с Django и Flask или же машинное обучение с Numpy, Pandas и Pytorch – полученных знаний хватит за глаза.
Дополнительные источники
- «Знакомство с Python», Дэн Бейдер;
- «Изучаем Python» (третье издание), Эрик Мэтиз;
- «Изучаем Python» (пятое издание, 2 тома), Марк Лутц;
- «Python Workout: 50 ten-minute exercises», Reuven M. Lerner;
- «Изучаем программирование на Python» (второе издание), Пол Бэрри;
- «Начинаем программировать на Python» (пятое издание), Тони Гэддис;
- «Автоматизация рутинных задач с помощью Python» (второе издание), Эл Свейгарт;
- Курс по Python от Google;
- Хендбук по Python – курс от Яндекса;
- Python Full Course на канале Bro Code;
- Питонтьютор – небольшой курс по Python;
- Интерактивное руководство по Python от DataCamp;
- Python tutorials – ещё один неплохой курс по питону;
- Python for Everybody – курс от университета Мичигана;
- Изучаем Python – курс для начинающих от freeCodeCamp;
- Добрый, добрый Python – обучающий курс от Сергея Балакирева;
- Инди-курс программирования на Python – курс от Артёма Егорова;
- Алгоритмы и структуры данных на Python 3 – лекции Тимофея Хирьянова;
- Программирование на Python – курс начального уровня от института биоинформатики.
- «Секреты Python Pro», Дейн Хиллард;
- «Using Asyncio in Python», Caleb Hattingh;
- «Beyond the Basic Stuff with Python», Al Sweigart;
- «Python. Книга рецептов», Дэвид Бизли, Брайан К. Джонс;
- «Профессиональная разработка на Python», Мэттью Уилкс;
- «Паттерны разработки на Python», Гарри Персиваль, Боб Грегори;
- «Чистый Python. Тонкости программирования для профи», Дэн Бейдер;
- «Python Object-Oriented Programming» (fourth edition), Steven F. Lott, Dusty Phillips;
- Intermediate Python – продолжение начального курса от freeCodeCamp;
- Python: основы и применение – курс среднего уровня от института биоинформатики;
- Программирование на Python – более продвинутый курс от Computer Science Center;
- Параллельное программирование – ещё один видеокурс от Computer Science Center.
Ещё несколько полезных ссылок:
- Документация по Python;
- Python Tutor – отладчик кода;
- Real Python – куча статей по Python;
- PEP 8 – руководство по стилю кода на Python;
- The Elements of Python Style – ещё одно руководство по стилю кода;
- Stack Overflow – известный сервис вопросов и ответов по программированию;
- CheckiO, LeetCode, Codewars, HackerRank – сайты с упражнениями для практики;
- PyLounge, Андрей Иванов | Python, Диджитализируй!, egoroff_channel, selfedu, Amigoscode, Python Programmer – полезные каналы по Python.
- python
- пайтон
- питон
- программирование
- план обучения
- разработка веб-сайтов
- bigdata
- data science
- машинное обучение
- карьера в it-индустрии
- Веб-разработка
- Python
- Программирование
- Машинное обучение
- Учебный процесс в IT
Самоучитель Python

Самоучитель Python 3, собранный из материалов данного сайта. Предназначен в основном для тех, кто хочет изучить язык программирования Python с нуля.
Доступна также pdf-версия самоучителя
- Возможности языка Python
- Загрузка и установка Python
- Первая программа. Знакомство со средой разработки IDLE
- Синтаксис
- Почему моя программа не работает?
- Условный оператор if
- Циклы
- Ключевые слова, встроенные функции (для ознакомления, знать, как не стоит называть переменные)
- Числа
- Строки (часть 1, часть 2, форматирование)
- Списки (массивы)
- Индексы и срезы
- Кортежи
- Словари
- Множества
- Функции
- Исключения и их обработка
- Байтовые строки
- Файлы
- With … as — менеджеры контекста
- PEP 8 — руководство по написанию кода на Python (следовать (да и читать) необязательно, но очень рекомендуется, для того, чтобы вы смогли понять свой код через полгода)
- Документирование кода (тоже полезная вещь)
- Создание и подключение модулей
- Объектно-ориентированное программирование. Основы
- Инкапсуляция, наследование, полиморфизм
- Перегрузка операторов
- Декораторы
Литература
Полезные материалы
Самоучитель не полный, будет дополняться и совершенствоваться. Пишите, предлагайте идеи, помогайте писать статьи 🙂
- Модуль csv — чтение и запись CSV файлов
- Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
- Онлайн-обучение Python: сравнение популярных программ
- Книги о Python
- GUI (графический интерфейс пользователя)
- Курсы Python
- Модули
- Новости мира Python
- NumPy
- Обработка данных
- Основы программирования
- Примеры программ
- Типы данных в Python
- Видео
- Python для Web
- Работа для Python-программистов
- Сделай свой вклад в развитие сайта!
- Самоучитель Python
- Карта сайта
- Отзывы на книги по Python
- Реклама на сайте
Подпишись на обновления по RSS или по почте!
Как быстро выучить Python?
Практически в каждой крупной IT-компании есть специалисты, которые работают на Python, либо используют его вместе с другими языками программирования. Разобраться в нём при желании может даже школьник, а по популярности Python уступает только Java Script. Новичкам его изучение поможет освоить азы программирования, а опытным специалистам пригодится для решения новых задач.

Почему Python?
Главное достоинство этого языка программирования — понятный и лаконичный синтаксис — набор правил для описания символов в коде. В случае с Python, простую команду можно уместить в одну строку. Второй его плюс заключается в обилии готовых сборников, инструментов и объектов (библиотек) для написания программ, начиная от web-разработки до анализа данных и машинного обучения.
Также Python востребован в создании графических интерфейсов, приложений для системных администраторов, мобильных игр и проведения сложных математических расчетов.
Где еще используют Python?
У этого языка программирования три основные сферы применения:
- Машинное обучение и обработка данных: с помощью Python можно создавать алгоритмы для анализа текстов, изображений, распознавания лиц и голоса, для создания рекомендаций и не только.
- Веб-разработка: написание серверного кода на таких фреймворках, как Django и Flask. Их использовали для написания серверной части YouTube и Instagram.
- Написание скриптов — программ для автоматизации простых задач вроде сортировки электронных писем или сохранения фотографий с сайта в одну папку. Например, Disney использует Python как скриптовый язык для анимации.
С чего начать изучать Python?
Прежде всего, определитесь с целью. От этого будет зависеть степень погружения в тему и направление, будь то создание анимаций, приложений, сайтов или работа с базами данных.
Как и при изучении иностранного языка, в первую очередь нужно выучить синтаксис, то есть слова-команды и их значения. Это операции с целыми и вещественными числами, типы данных, переменные, оператор ветвления, стандартный ввод/вывод, логические операции, операции сравнения, условия: if, else, elif; циклы while, for и другие.
Какой софт понадобится?
Для программирования на языке Python нужен текстовый редактор вне зависимости от операционной системы. Начинающим программистам подойдут редакторы IDLE или Python Shell. Для работы над большими проектами нужны профессиональные редакторы, типа Visual Studio Code, Atom, Sublime Text и PyCharm. У каждого из них есть преимущества и недостатки. Выбирая редактор, обращайте внимание на наличие таких функций, как сохранение и перезагрузка файлов, запуск и автоматическое форматирование кода, поддержка отладки и подсветка синтаксиса.
На что еще обратить внимание?
Изучение и использование разных библиотек откроет новые возможности Python. Например, библиотека Pygame помогает при создании мультимедийных приложений и игр, NumPy используется для работы с искусственным интеллектом, Pandas позволяет работать с большими данными, а Django и Flask чаще всего применяют для разработки серверной части приложений.
Найти ответы на возникшие вопросы при обучении можно в системе Stackoverflow. Выучив основы, приступайте к практике, например, в форме квестов и игр, постоянно усложняя задачи.
Что посмотреть и почитать?
Онлайн-курсы:
Книги:
- «Программируем на Python», Майкл Доусон
- «Hello World. Занимательное программирование», Картер Сэнд, Уоррен Сэнд
- «Изучаем Python», Марц Лутц
- «Python — к вершинам мастерства», Лучано Рамальо
- «Python в системном администрировании UNIX и Linux», Гифт Н., Джонс Д.
Как учить Python: девять кратких практических советов

Python уже не один год уверенно занимает место среди самых популярных языков программирования. На нём можно писать любые программы, но сегодня основной сферой для него стал искусственный интеллект и всё, что с ним связано — data science, машинное обучение, анализ данных, нейронные сети. Кроме того, Python популярен в веб-разработке. Среди новейших направлений Python является лидером в квантовых вычислениях и квантовом машинном обучении.
По сути, Python — это интерпретируемый язык высокого уровня, в котором возможно применять как объектно-ориентированный подход, так и функциональный. Этот язык достаточно лёгок для изучения, в отличие от C++, Хотя Python в какой-то мере является наследником C++, изучить его легче, чем «плюсы». В среднем, путь с нуля до джуниора занимает полгода год — в зависимости от того, изучали ли вы раньше какой-нибудь из C-подобных языков, а также от других фоновых знаний. Чтобы с самого начала ускорить ваше освоение «питона», мы подготовили ряд небольших советов.
- В начале обязательно изучите синтаксис Python и порешайте простые алгоритмические задачи. Здесь поможет сайт Pythontutor.ru. Без задач выученный синтаксис быстро вылетит из головы; они помогают закрепить теорию.
- Уже на этапе изучения основ языка (или даже до этого) задумайтесь о том, чем вы конкретно хотите заниматься с помощью Python. Лучше сразу определиться, выбираете вы искусственный интеллект или веб-разработку, так как рано или поздно нужно будет понять, какие библиотеки стоит изучить — для каждой сферы применения нужен свой набор библиотек.
- Обратите внимание на различные среды разработки. Универсальный IDE для любых задач в Python — это PyCharm. Дата-сайентисту также нужно уметь работать в Jupyter Notebook и, возможно, стоит изучить Spyder.
- Хорошо изучите простейшие структуры данных Python: списки, словари, множества. Это пригодится, когда нужно будет решить, как лучше обрабатывать данные в разных случаях.
- Не пренебрегайте функциями. В Python создавать их очень легко. Если одинаковые части кода повторяются больше двух раз, лучше написать функцию. Это поможет не только сократить код, но и улучшить его восприятие.
- Изучите продвинутые возможности Python: генераторы, декораторы, list comprehension, методы из библиотеки itertools и других библиотек. Это поможет вам впоследствии не изобретать велосипед.
- Если вы работаете с искусственным интеллектом, изучите основные библиотеки для этого направления — Numpy, Pandas, SciKit-Learn, Matplotlib, Seaborn, Keras, TensorFlow, Pytorch.
- Если ваша цель — квантовые вычисления, изучите библиотеки Qiskit, Cirq и PennyLane.
- Чтобы быстро выйти на уровень профессионального кода, изучите объектно-ориентированное программирование. В Python применять его очень легко.
Если вы уже уверены в том, что хотите начать карьеру Python-разработчика, ждём вас на Python-факультете Geek University. А если ещё сомневаетесь, то посмотрите для вдохновения истории наших выпускников-питонистов:
- Постигая Python: учёба в GU, практика в Австрии, развитие. Интервью с Python-разработчиком Максимом Столпасовым.
- Говорят, стать Python программистом легко. Правда? История Артёма Сухаренко.
- Поиск себя и быстрое погружение в веб-разработку. История Ильи Курбакова, который в 25 лет решил кардинально поменять направление в своей карьере.
Освоить востребованную профессию в Data Science можно всего за полтора года на курсах GeekBrains. После учёбы вы сможете работать по специальностям Data Scientist, Data Analyst, Machine Learning, Engineer Computer Vision-специалист или NLP-специалист.
