Простой и красивый синтаксис, множество библиотек под самые разные задачи и большое комьюнити делают Python одним из самых популярных языков программирования на сегодняшний день, который активно используется в data science и машинном обучении, веб-разработке и других областях программирования. какие темы необходимо изучить; насколько это будет сложно; сколько это займёт времени; где найти хорошие источники информации? стандартные типы данных; условия; циклы; функциональное программирование; работа с файлами; регулярные выражения; основы алгоритмов; объектно-ориентированное программирование (ООП); конкурентность; тестирование кода; полезные библиотеки типа itertools, collections и тому подобное. Если вы прежде не занимались программированием, то поначалу будет сложновато, но потом мозги «настроятся» в нужное русло и будет нормально. На этом преамбула окончена и переходим непосредственно к плану обучения. Предлагаю начать с прочтения книги Билла Любановича «Простой Python. Современный стиль программирования» (второе издание) чтобы иметь базовое представление о том, что такое программирование и как выглядит код на Python. Далее переходим к курсам на платформе Stepik: «Поколение Python: курс для начинающих»; «Поколение Python: курс для продвинутых». Очень хорошие курсы с морем задач, которые вас познакомят с основными типами данных, условиями, циклами, функциями и работой с файлами. После следует приступить к плейлисту декораторы канала luchanos и для практики пройти на Stepik «Декораторы в Python»: часть 1 и часть 2. Ещё по желанию можно пройти регулярные выражения: курс, учебник и практика. Вообще, о том, как шатать leetcode и проходить алгоритмические фиды на собесах – дело отдельной статьи, поэтому пока обойдёмся основами основ и здесь на сцену вступает небезызвестная книга Адитьи Бхаргавы «Грокаем алгоритмы». Автору удалось сделать очень дружелюбное к новичкам пособие, из которого вы узнаете про алгоритмы поиска и сортировки, что такое рекурсия, динамическое программирование и многое другое – однозначно рекомендасьон. Есть 2 хороших курса:  плейлист Python OOP канала JimShapedCoding; курс Python ООП Олега Молчанова – лучшее объяснение из всех, что я видел. Отсюда вы узнаете об устройстве объектной модели в Python, какие существуют парадигмы ООП, для чего применяются дескрипторы и многое другое. Также параллельно с курсами было бы хорошо углубляться в пройденные темы и для этого есть неплохая книга «Object-oriented Python», Irv Kalb. В отличие от курсов, в ней также уделяется внимание магическим методам и некоторым другим аспектам. Писать игры необязательно, как это делается в книге, но ознакомиться с ней стоит. В конце переходим к SOLID и по желанию к паттернам (плейлист и сайт). Для практики переходим на codewars OOP: когда получится решать 5 кату, то можно двигаться дальше. Для обеспечения быстрой и эффективной работы приложений, а также для обработки большого количества данных необходимо уметь пользоваться вычислительными ресурсами максимально эффективно, поэтому знания об основах конкурентности даже на начальном этапе будут большим преимуществом. Основы многопроцессорности и многопоточности: Конкурентность в Python канала luchanos. По асинхронному программированию есть 2 хороших плейлиста: Асинхронность в Python от Олега Молчанова; import asyncio: Learn Python’s Asyncio канала EdgeDB. Параллельно с курсами лучше пользоваться книгой Мэттью Флауэра «Asyncio и конкурентное программирование на Python». Отсюда вы узнаете о выполнении конкурентных запросов к базам данных, сочетании многопоточной обработки с asyncio, управлении подпроцессами и многом другом. Чтобы удостовериться в том, что написанный вами код выполняет именно тот функционал, который вы от него ожидаете, его необходимо уметь покрывать тестами хотя бы на базовом уровне. Поэтому предлагаю перейти к плейлисту Pytest тестирование канала luchanos. Ещё есть неплохая книга «Python Testing with pytest» (second edition), Brian Okken, с которой также желательно ознакомиться. В качестве альтернативы Pytest есть неплохой плейлист Unittest in python канала Paris Nakita Kejser и книга Владимира Хорикова «Принципы юнит-тестирования» (примеры кода на C#). В принципе, может показаться, что всего вышеперечисленного уже достаточно, но для лучшего понимания устройства функций и классов, как работает сборщик мусора, в чем отличие итераторов от генераторов, как пользоваться библиотеками типа itertools, collections и т.д., ещё необходимо немного углубиться, и в этом нам помогут 2 книги: «Python – к вершинам мастерства» (второе издание), Лусиану Рамальо. «Dead simple Python», Jason C. Mcdonald. Книги плюс-минус об одном и том же, однако в последней некоторые темы рассматриваются на немного более поверхностном уровне. За счёт этого она читается легче. Какую из них выбрать? Лучше читать наиболее непонятные темы из обеих книг. После того, как вы изучите основные конструкции и возможности языка, не будет лишним и узнать об их эффективном использовании, и для этой цели есть хорошая книга «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.