С чего начать учить Python


Анна Агабекян Эксперт в Frontend, Data Science. Ментор, автор курсов в SkillFactory.
Python — один из самых популярных языков программирования. На нем разрабатывают алгоритмы машинного обучения, собирают и анализируют данные о клиентах в крупных компаниях, пишут игры. Вместе с Python-разработчицей Анной Агабекян рассказываем все, что нужно знать на старте новичку.

Освойте профессию
«Python-разработчик»
Где используется язык программирования Python?
По замыслу создателя языка Гвидо ван Россума, Python должен был повысить продуктивность разработчиков, пишущих на языках C и C++. Однако благодаря своей простоте язык быстро приобрел популярность в среде программистов и вышел за рамки своего первоначального назначения. Чаще всего язык применяется в веб-разработке, анализе больших данных и машинном обучении. Кроме того, на Python пишут сценарии для компьютерных игр (например World of Tanks и EVE Online). В 2023 году в рейтинге TIOBE, который формируется на основе поисковых запросов, включающих упоминание языков, Python занимает первое место среди самых востребованных языков, обогнав Java и C.
Python-разработчик
Освойте Python, самый популярный язык программирования
3 075 ₽/мес 6 150 ₽/мес

У языка есть собственный свод правил, так называемый «дзен Python», который написал американский разработчик Тим Петерс. Одно из правил звучит так: «Должен существовать один — и желательно только один — очевидный способ сделать это». Это правило отлично описывает назначение языка: с его помощью можно один раз решить задачу, а потом просто автоматизировать ее.
Как изучать Python?
Синтаксис
- Один из самых популярных — Computer Programming for Beginners: Fundamentals of Programming Terms and Concepts Натана Кларка. Книга написана простым языком — она поможет разобраться в терминологии, понять, что такое состояния, операторы и функции, чем объектно-ориентированное программирование отличается от функционального.
- На русском языке можно обратить внимание на книгу преподавателя и разработчика Майкла Доусона «Программируем на Python» — книга хороша тем, что в ней не только теория, но и реальные кейсы, показывающие, как применять полученные знания на практике. После каждой главы Доусон поясняет тему на примере простой игры и предлагает задачи для закрепления материала.
- Подробнее о функциях (часть приложения, выполняющая определенную задачу) можно узнать из книги Марка Луца «Изучаем Python».
- Для тех, кто уже усвоил основы языка, но еще не умеет использовать все его возможности, будет полезной книга Лучано Рамальо «Python: к вершинам мастерства». Автор рассказывает о библиотеках и средствах языка, а также демонстрирует приемы, с помощью которых код можно сделать короче и понятнее.

Станьте разработчиком на Python и решайте самые разные задачи: от написания кода до автоматизации процессов
Подборка полезных видеоуроков на YouTube:
- Python для начинающих — короткие видеоуроки, посвященные основам языка;
- Видеоуроки Python — среди прочего тут есть, например, ролики, как редактировать видео на Python или работать с Википедией с помощью этого языка;
- Clever Programmer — видеоуроки по программированию, советы и рекомендации, как прокачать свои навыки;
- Telusko — более 100 роликов, посвященных Python: от начального до продвинутого уровня.
Python имеет несколько направлений, поэтому стеки и технологии, которые нужно знать новичку, зависят от специализации. Например, для начинающего веб-разработчика необходимо прежде всего знание фреймворков Django и Flask. Для дата-аналитики или Data Science нужно уметь работать с библиотеками, предназначенными для обработки и анализа данных: NumPy, Pandas , Sklearn, TensorFlow. Для разработки десктоп-приложений в первую очередь важно знать библиотеку Tkinter и фреймворк PyQt5, для мобильной разработки — уметь работать в среде Kivy, для разработки игр — знать набор библиотек Pygame.
Настройка среды разработки
Изучив синтаксис, можно начать писать код. Для этого скачайте и установите среду разработки — IDE. Она объединяет несколько инструментов, предназначенных для разработки: редактор кода, инструменты для сборки, выполнения и отладки, а также систему контроля версий.
Читайте также Выбираем IDE: средства для программирования на Python
Самый базовый редактор — IDLE. Гвидо ван Россум назвал его в честь одного из актеров «Монти Пайтона» — Эрика Айдла. C помощью этой среды разработки можно просматривать, редактировать, запускать и отлаживать программы на Python. IDLE поставляется вместе с дистрибутивом. Скачайте и запустите редактор и в открывшемся окне можете начинать писать код.
Практика: сервисы и сайты
Решайте задачи. Их можно взять, например, на проекте Эйлера — это некоммерческий онлайн-проект, названный в честь знаменитого швейцарского математика Леонарда Эйлера. Проект (есть на русском и английском языке) объединяет сотни тысяч любителей математики и программирования — участники могут выбрать одну из задач и решить ее с помощью любого известного им языка программирования, в том числе с помощью Python. После того как участник получил правильный ответ, он может обсудить и сравнить с другими пользователями найденные им алгоритмы и способы решения.
Сайты, где еще можно порешать задачи Python:
Участвуйте в играх и квестах: например, chekio — это игра с заданиями разных уровней сложности и встроенной средой программирования или квест python challenge, в котором надо составить алгоритм, чтобы перейти к следующему шагу. Поискать задачки и упражнения также можно в соответствующем хабе на Хабре.
Напишите собственные несложные программы. Например, настроить автоматическую сортировку файлов по папкам, создать собственный сервер или написать игру на Python.
Читайте также Я освоила Python на карантине и теперь работаю в консалтинге
Что дальше?
Python-разработчик — востребованная профессия с высокими зарплатами. Свои первые заказы можно искать на онлайн-биржах, например fl.ru, weblancer.net, workzilla, или в Telegram-каналах с удаленной работой: Finder.vc, HomeWork и других.
Начинающий Python-разработчик получает от 80 тыс. рублей, а лид может рассчитывать на зарплату около 400 тыс. рублей.
От джуниора, помимо знания синтаксиса и основных библиотек, работодатели ждут умения быстро осваивать новый материал, вникать в суть задания, понимать требования и быть готовым к рутинным задачам.
Карьерный рост зависит от компаний, в которых работает специалист, от его личных особенностей, от наличия опытных коллег, у которых можно учиться и от владения soft skills.
Тестировщик-автоматизатор
Как ворваться в IT, даже если вы не умеете программировать? Стать тестировщиком. Для старта достаточно базовых знаний ПК. А начать работать можно уже через 4 месяца обучения.
ТОП-5 мобильных приложений для изучения Python
Собрали несколько популярных мобильных приложений для изучения Python и не только и описали их плюсы и минусы.
Если срочно потребовалось — или просто захотелось — изучить, закрепить новую тему, а ноутбука под рукой нет, выход — мобильные приложения для изучения Python. В статье собрали пять вариантов: простых, удобных и условно бесплатных. Описанные плюсы и минусы — собственный опыт и отзывы на App Store.
1. SoloLearn
Это приложение предлагает курсы по множеству языков программирования, в том числе Python, JavaScript, C++, C# и другие. В нём есть интерактивные задачи, лидерборды, форум и даже челленджи.
В разделе «Сообщество» много фичей, выгодно отличающих SoloLearn. Помимо возможности бросить любому юзеру вызов, здесь вы найдёте тренажеры кода, небольшую базу статей о структурах данных, Git и NumPy, и даже Ask me Anything – возможность поболтать в режиме трансляции в разными разработчиками.
С момента, как я в последний раз обращалась к этой SoloLearn, приложение здорово «подросло» в плане UX и дизайна: соревнования стали выглядеть привлекательнее, с графикой а-ля Duolingo, усовершенствована система начисления очков опыта. Теперь их дают не только за прохождение курсов, но и за другие виды активности.
- кроссплатформенность;
- выгружаемые сертификаты;
- качественные вопросы.
- энциклопедия от участников сообщества довольно скромная; только войдешь во вкус — уже конец раздела;
- множество языков, легко схватить эффект «разбежавшихся глаз» и в конечном итоге, не окончить ни одну из выбранных программ.
2. Enki
Помимо Python, Enki предлагает курсы по множеству других тем: SQL, анализ данных, Go, Git, Docker, язык R, техническое интервью и другие. Каждый день пользователи получают новые уроки, которые помогают поддерживать уровень знаний.
- продуманный UX;
- уроки разбиты на небольшие «порции» — воркауты; приложение предлагает заниматься понемногу каждый день;
- 27 направлений для изучения — их можно назвать набором, необходимым, чтобы создать полноценный современный сайт, так что избыточными не назову;
- карта скила — курс Python разделён на несколько категорий: теория ЯП и ООП, упражнения, в том числе для технического собеседования.
- нет поддержки русского языка;
- неудобно разбираться, к какой команде студентов присоединиться: в разделе Team при введении ключа Python появляется множество групп, и просмотреть их без вступления нельзя.
3. Mimo
Mimo — приложение, которое предлагает курс «Программирование на Python» с основами языка. Создатели сконцентрировались на двух карьерных треках: Python и веб-разработка — и это положительно сказалось на качестве материала и поддержке.
- небольшие практические задания, нет чувства, что учиться становится тяжелее и тяжелее с каждым новым модулем;
- узкая подборка – Python, HTML, SQL, Javascript;
- качество уроков замечательное, ошибок нет вовсе;
- симпатичный UI, очень напоминающий тот же Duolingo.
- для новичков;
- нет полноценной поддержки русского языка, только автоперевод.
4. DataCamp
Приложение и сконцентрировано на Data Science и машинном обучении, но можно найти и годные вводные курсы по Python.
- кроссплатформенность — можно продолжить обучение на ноутбуке;
- продуманный UX;
- сконцентрированность на Data Science и машинном обучении: Python, R, Scala, и важные для DS дисциплины-спутники (SQL, Docker, Business Intelligence);
- флэш-карточки, позволяющие повторять материал, как при изучении иностранного языка (на скриншоте).
- нет поддержки русского языка.
5. Coursera
Coursera предлагает множество онлайн-курсов от университетов и компаний со всего мира. На момент написания статьи попытки регистрации на курс вызывали ошибку. Вероятно, это ограничение для студентов на территории РФ.
- кроссплатформенность.
- верифицированные «монстрами» вроде Google курсы на узкие темы, например, Data Science Fundamentals with Python and SQL от IBM — полагаю, с таким сертификатом действительно можно выделиться среди других кандидатов при прохождении собеседования.
- нельзя записаться без VPN;
- слишком большой выбор: платформа стимулирует появление курсов обо всём и для всех
- периодически возобновляющиеся проблемы, например, некоторые курсы недоступны на iOS.
К мобильным приложениям, несмотря на разносторонние ожидания пользователей, требования все же высокие: и «прозрачный» интерфейс, и поддержка множества языков, и стабильная кроссплатформенность. Причём от пользователя к пользователю требования индивидуальные, так что выделять идеальный вариант для всех не буду.
В моём рейтинге победил SoloLearn, поскольку сервис сочетает в себе, помимо учебных материалов, ещё и элементы комьюнити. То есть в случае затыка студент не останется один-на-один со своей проблемой — а это происходит довольно часто и без привычки здорово фрустрирует.
Изучаем 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

Programminghub предлагает пошаговое обучение из небольших уроков на английском языке. Каждое занятие длится не больше 5 минут и заканчивается небольшим контрольным тестом. Присутствует интерпретатор для выполнения кода на python прямо в приложении. Программа подойдет для владеющих английским языком новичков.
Как использовать grid css