Как быстро можно выучить python
Перейти к содержимому

Как быстро можно выучить python

  • автор:

Изучаем Python за 6 месяцев. Подробный план обучения

Простой и красивый синтаксис, множество библиотек под самые разные задачи и большое комьюнити делают Python одним из самых популярных языков программирования на сегодняшний день, который активно используется в data science и машинном обучении, веб-разработке и других областях программирования.

Когда я начал изучать питон, у меня возникло несколько вопросов:

какие темы необходимо изучить;

насколько это будет сложно;

сколько это займёт времени;

где найти хорошие источники информации?

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

стандартные типы данных;

работа с файлами;

объектно-ориентированное программирование (ООП);

полезные библиотеки типа itertools, collections и тому подобное.

Если вы прежде не занимались программированием, то поначалу будет сложновато, но потом мозги «настроятся» в нужное русло и будет нормально.

На этом преамбула окончена и переходим непосредственно к плану обучения.

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

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

Далее переходим к курсам на платформе Stepik:

Очень хорошие курсы с морем задач, которые вас познакомят с основными типами данных, условиями, циклами, функциями и работой с файлами.

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

Ещё по желанию можно пройти регулярные выражения: курс, учебник и практика.

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

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

Автору удалось сделать очень дружелюбное к новичкам пособие, из которого вы узнаете про алгоритмы поиска и сортировки, что такое рекурсия, динамическое программирование и многое другое – однозначно рекомендасьон.

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

Есть 2 хороших курса:

плейлист Python OOP канала JimShapedCoding;

курс Python ООП Олега Молчанова – лучшее объяснение из всех, что я видел.

Отсюда вы узнаете об устройстве объектной модели в Python, какие существуют парадигмы ООП, для чего применяются дескрипторы и многое другое.

Также параллельно с курсами было бы хорошо углубляться в пройденные темы и для этого есть неплохая книга «Object-oriented Python», Irv Kalb.

В отличие от курсов, в ней также уделяется внимание магическим методам и некоторым другим аспектам. Писать игры необязательно, как это делается в книге, но ознакомиться с ней стоит. В конце переходим к SOLID и по желанию к паттернам (плейлист и сайт).

Для практики переходим на codewars OOP: когда получится решать 5 кату, то можно двигаться дальше.

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

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

Основы многопроцессорности и многопоточности:

По асинхронному программированию есть 2 хороших плейлиста:

Параллельно с курсами лучше пользоваться книгой Мэттью Флауэра «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;

Python tutorials – ещё один неплохой курс по питону;

Python for Everybody – курс от университета Мичигана;

Изучаем Python – курс для начинающих от freeCodeCamp;

Добрый, добрый Python – обучающий курс от Сергея Балакирева;

Программирование на 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.

Ещё несколько полезных ссылок:

Real Python – куча статей по Python;

PEP 8 – руководство по стилю кода на Python;

The Elements of Python Style – ещё одно руководство по стилю кода;

Stack Overflow – известный сервис вопросов и ответов по программированию;

Как выучить Python с нуля? 15 бесплатных курсов и самоучителей

Как выучить Python с нуля? 15 бесплатных курсов и самоучителей

В этой статье мы расскажем, с чего начать изучение популярного языка программирования. На каких сайтах находятся бесплатные курсы и самоучители. Как получить работу в сфере разработки и многое другое.

Содержание статьи:

Где используется Python и для чего?

Основные сферы применения данного языка программирования:

Создание сайтов, интернет-сервисов, порталов, парсеров. Питон используют для программирования серверной части, то есть скриптов, которые отвечают за обработку информации и вычисления. Подробно об этом можно прочитать в описании профессии Backend-разработчик.

Машинное обучение и искусственный интеллект

Создание поисковых систем и других программ, где применяется AI. Например, в Яндексе и Google активно используют данную технологию.

Big Data (анализ и обработка больших массивов данных)

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

Помимо указанных областей, язык программирования Питон используют в мобильной разработке (например, в приложении Инстаграм), компьютерных играх, в телекоммуникационном оборудовании, банкоматах, ЧПУ-станках. На этом языке пишут десктоп-программы, например, графический редактор GIMP.

В числе ИТ-компаний, где востребована данная технология: Facebook, Microsoft, Dropbox, Intel, Cisco, HP, IBM, Qualcomm, Seagate и множество других.

Зачем учить Python? Преимущества и недостатки языка

  • Популярность и широкое применение. Изучив Питон, вы сможете создавать как простые приложения, так и программировать нейронные сети, анализировать данные и многое другое.
  • Востребованность программистов на рынке.
  • Высокий уровень зарплат. Новички могут получать от 60 тыс. рублей в месяц, специалисты с опытом – от 100 до 200 тыс. рублей в месяц.
  • Относительная простота и легкость обучения.
  • Множество готовых библиотек и фреймворков, которые упрощают жизнь.
  • Большое и активное сообщество, много информации на русском языке, в том числе самоучителей.
  • Подходит новичкам, кто ранее не был связан с программированием, но хочет начать карьеру в этой сфере.
  • Непривычный синтаксис. Если вы знаете другие языки программирования, учить Python будет необычно.
  • Многие работодатели ищут разработчиков, владеющих несколькими языками. Для получения работы выучить только Питон может быть не достаточно.
  • Разные версии языка не совместимы и существуют параллельно.
  • Больше всего вакансий открыто в Москве и Санкт-Петербурге. Соискателям из регионов может потребоваться работать удаленно или переезжать в более крупный город.

Что нужно учить в первую очередь?

Базовые знания языка Python

Операторы, выражения, переменные, условный оператор if, ветвления, циклы (while, for), циклы со счетчиком, работа со списками и их сортировка, массивы, кортежи и строки, словари, функции, работа с модулями, работа с файлами (открытие, чтение, запись), основы работы с сетью. Изучить фреймворки, например, Django.

Что такое ООП (объектно-ориентированное программирование), алгоритмы и структура данных, базы данных (какие бывают, как с ними работать).

Системы контроля версий

В первую очередь Git.

Если планируете работать в сфере веб-разработки, лучше дополнительно освоить HTML и CSS, основы JavaScript, научиться верстать адаптивные макеты.

За сколько времени можно выучить Python?

    От 4 до 6 месяцев, если вы осваиваете только язык программирования без дополнительных технологий. Точное время зависит от уровня начальных знаний и частоты занятий. Например, опытному разработчику достаточно 1-2 недели, чтобы разобраться с синтаксисом языка и что-то начать на нем делать. Если вы учите Пайтон с нуля, то первое время вам будет сложнее ориентироваться в большом объеме новой информации.

От 8 до 12 месяцев, если вы изучаете программирование с нуля и хотите освоить разные технологии, нужные для поиска работы. Например, курс в Skillbox для Питон-разработчиков идет ровно год. Он рассчитан на новичков, и в его рамках обучают самому языку, а также верстке, работе с базами данных и Git.

Бесплатные курсы и материалы для новичков

В интернете много сайтов и видеоуроков, которые можно смотреть бесплатно. Ниже собран их обзор.

Сайты и самоучители, в основном бесплатные:

    – официальный сайт с документацией, новостями и другой полезной информацией. На английском языке. – позволяет учить язык программирования онлайн без установки среды разработки. Работает прямо в браузере. Много примеров кода, больше сотни заданий. Подходит новичкам и людям, которые раньше не сталкивались с программированием. – на сайте размещены бесплатные уроки для новичков. Здесь можно изучить основы, синтаксис, операторы, циклы, списки, кортежи, словари, функции и многое другое. Есть примеры кода, что упрощает самостоятельное обучение. – самоучитель от одноименной компании на английском языке. – блог с полезной информацией. Отдельного внимания заслуживает раздел с тестами, где можно проверить свои знания. – сайт евангелистов сообщества MoscowPython. Новичкам будет интересен форум, где разбирают задачи и отвечают на вопросы. – самоучитель по версии языка 2.7. Включает 34 урока, в том числе отдельную статью про ООП и классы. – на сайте собрано более 250 видеозаписей докладов и лекций, помогающих выучить Python самому. – база знаний. Много статей на разные темы с примерами кода. Есть отдельный раздел с уроками, основами и библиотеками.

Яндекс.Практикум – онлайн-курс от Яндекса. Первая часть, где обучают азам, бесплатная. Ее можно пройти самостоятельно, а потом решить, что делать дальше.

Также советуем посмотреть 24 сайта для изучения программирования на русском языке. В нем собраны ссылки на полезные справочники, каталоги и другие ресурсы для разработчиков.

Бесплатные видеокурсы:

    – курс содержит 21 видео. – 12 уроков. – небольшой курс для новичков. Содержит 9 видео. – включает 7 мастер-классов.

ООП для новичков – советуем посмотреть для общего развития.

Также в Клубе фрилансеров вы найдете бесплатные уроки по программированию и верстке. Рекомендуем заглянуть в группу и сохранить себе подборку материалов.

Где учиться программировать на Python?

Самостоятельное обучение подходит не всем. Кроме того, сложно осваивать новые знания с нуля, не имея опыта. Поэтому можно пойти на онлайн-курсы, где готовят разработчиков. Примеры таких программ:

Курс в Skillbox. Подходит новичкам. Здесь учат создавать простые и сложные программы, работать с базами данных, тестировать код, использовать Git. Помимо самого языка, вы освоите фреймворк Django и веб-верстку. Отдельные лекции посвящены построению карьеры.

Курс в Нетологии. Формат обучения: вебинары по вечерам и практика. На момент подготовки обзора отправляли студентов на стажировку в «Ланит». На наш взгляд, заточен для подготовки веб-разработчиков. Например, среди курсовых проектов – интернет-магазин. Если вы хотите работать с сайтами, интернет-сервисами и приложениями, то присмотритесь к нему.

Плюсы обучения на курсах – возможность общаться с практиками, задавать вопросы и быстро получать ответы. Системный подход. Помощь в старте карьеры, поиске стажировки и вакансий. Также в процессе обучения вы получаете не только теоретические знания, но и практику, пишете программы, которые можно показать работодателям на собеседованиях.

Советы для начинающих

  1. Заранее подумайте, где вы хотите работать. Например, в области веб-разработки или анализа данных. От этого зависит, какие библиотеки и дополнительные технологии потребуется учить. Их в ИТ много, поэтому объять все не получится.
  2. Начните с изучения синтаксиса и решения простых задач. Чем больше практики, тем лучше.
  3. Чтобы добиться прогресса, рекомендуем выделять на обучение минимум 4 часа в неделю. Например, два раза заниматься по два часа. Больше тоже можно.
  4. Посмотрите вакансии на сайтах, где ищут программистов. Как правило, в них указывают, что необходимо знать и уметь для получения работы. Составьте список того, что вам потребуется для успешного прохождения собеседований.
  5. Не расстраивайтесь, если что-то на старте не получается. Это нормально. Начинать любое дело тяжело, но потом вы втянетесь, и все пойдет быстрее.

Старайтесь писать простой и понятный код. Посмотрите, что такое ООП и как его использовать.

Как устроиться на первую работу?

  1. Если у вас нет опыта, попробуйте попасть на стажировку в любую компанию, которая вас возьмет. Посмотрите в интернете, какие студии набирают стажеров, и отправьте им информацию о себе.
  2. Посмотрите на HH.ru вакансии для новичков. Есть компании, готовые брать людей без опыта на небольшую зарплату. Это нормально. На старте не стоит гнаться за деньгами. Важнее получить опыт, поскольку с ним зарплата начинает быстро расти.
  3. Участвуйте в конкурсах и чемпионатах, например, в Яндексе. Победителей часто берут на работу.
  4. Если вас пригласили на собеседование, но вы его не прошли, обязательно спросите, каких навыков вам не хватает. Подтяните знания и попробуйте прийти снова. Иногда соискателей берут со второй и третьей попытки – это обычная практика.
  5. Разместите информацию о себе на сайтах, где ищут программистов, и в каталоге разработчиков. Это поможет в поиске работы.
  6. Подпишитесь на группы, где публикуются вакансии. Много предложений сейчас можно найти в социальных сетях.

Практикуйтесь. Работодателям важны ваши реальные знания и навыки, и именно их будут проверять на собеседованиях.

С чего начать изучение Python и как написать на нем первый код

С чего начать изучение Python и как написать на нем первый код главное изображение

Python — самый популярный язык программирования по данным индекса TIOBE на октябрь 2022 года. Востребованность Python можно объяснить тем, что его применяют во многих сферах: веб-разработка (чаще всего серверная часть), машинное обучение и анализ больших данных.

Также на Python создают:

  • Видеоигры
  • Десктопные приложения
  • 3D-графику
  • Программ для обработки изображений, видео и аудио.

В сфере мобильной разработки язык Python используют очень редко.

Python — высокоуровневый язык с динамической типизацией. Это значит, что код на нем прост для чтения и понимания, а разработка быстрая, так как Python сам классифицирует вводимые данные.

Посмотрите, как можно вывести на экран фразу «Hello, World!» в одну строчку с помощью одной понятной команды:

И как это можно сделать с помощью языка Java:

Python также известен своей философией — правилами, которые разработчики стараются соблюдать при написании кода. Они сформулированы в списке из 19 пунктов под названием «The Zen of Python». Вот несколько правил из этого списка:

  • Явное лучше, чем неявное
  • Простое лучше, чем сложное
  • Читаемость имеет значение.

У Python есть более сотни библиотек кода — наборов инструментов для решения программистских задач. Также есть много фреймворков: возможно, вы что-то слышали о Django, Pyramid или Flask. Каждый из этих инструментов можно освоить, чтобы выйти на новый уровень программирования на Python.

Python применяют для создания и поддержания своих продуктов такие компании, как Google, Yandex, Spotify, Microsoft, Pinterest, Quora, Intel и другие.

Станьте востребованным Python-разработчиком На Хекслете есть обучение по профессии Python-разработчика. Пройдите его, чтобы изучить Python и фреймворк Django, разобраться в алгоритмах и структурах данных, а также получить поддержку от менторов и единомышленников.

С чего начать изучение языка Python

Определитесь с целью

Изучать любой язык программирования с нуля легче, когда вы понимаете, где применять полученные знания. От вашего выбора также зависит стек технологий, который вы будете использовать в будущем.

Разберитесь в синтаксисе языка

Синтаксис — это набор правил, по которым разработчики пишут код на любом языке программирования. Основа, без которой невозможно программировать.

Многие хотят начинать изучение программирования с Python, потому что у этого языка достаточно простой синтаксис. Код на нем можно понять без особых знаний за счет лаконичности языковых конструкций.

Вот примерный список тем, которые нужно изучить и понять перед тем, как начать кодить на Python:

  1. Строки — как их выводить, извлекать из них символы
  2. Переменные и типы — для чего они нужны, как облегчают разработку
  3. Операторы — какие они бывают в Python и как работают
  4. Условия — что такое условные конструкции и как их задавать
  5. Циклы — для чего нужны и как использовать
  6. Структуры данных — для чего используют, сколько всего структур и какие они бывают
  7. Функции — в чем особенность, как их вызывать и где искать документацию по ним
  8. Классы и объекты — что это такое и как они обозначаются.

Изучить основы языка вам поможет бесплатный курс «Python для начинающих» на проекте Codebasics. Обучение там начинается с азов, информация структурирована и подается от простого к сложному.

Читайте также: Программирование на Python: особенности обучения, перспективы, ситуация на рынке труда

Ознакомьтесь с документацией

Документация дает представление о работе языка и показывает примеры его использования. Это как огромная библиотека или справочная, в которую разработчик может прийти за нужным документом или ответом в спорных ситуациях. Документацию Python можно посмотреть на официальном сайте.

Как начать программировать на Python

Установите среду разработки

После того, как вы изучите синтаксис, попробуйте написать первый код. Это можно сделать в интегрированной среде разработки — IDE, которая включает в себя редактор кода, инструменты для его выполнения и отладки, а также систему контроля версий.

Среда разработки помогает разработчику ориентироваться в коде и искать в нем ошибки. Самые популярные IDE для Python: Python IDLE, PyCharm, Spyder, Thonny.

Еще можно установить редактор кода — это более легковесная программа, аналог текстовых редакторов. Она сохраняет проекты в правильном расширении, автоматически проверяет отступы в коде и подсвечивает синтаксис. Самые популярные редакторы кода для Python: Visual Studio Code, Sublime Text, Vim.

Также существует онлайн-IDE, с помощью которой можно писать код на Python прямо в браузере. Replit подойдет для первого знакомства с Python и создания небольших проектов.

Решайте задачи

Существует много разных сайтов, на которых питонисты выкладывают и решают задачи по Python. Это, например:

Платформа Kaggle подойдет для тех, кто выбрал для дальнейшего развития сферу машинного обучения. На ней проходят групповые соревнования, где организаторы дают разные задачи по Data Science. Участники решают задачи с помощью языка Python. Лучшие решения можно будет положить в портфолио.

Участвуйте в играх

Изучать Python по играм не менее эффективно, чем штудировать теорию курсов и учебников. На игровых турнирах можно прокачиваться в написании кода и даже знакомиться с единомышленниками.

В какие игры можно поиграть:

    — пожалуй, самая популярная игра по Python. В ней нужно помогать обезьянке собирать бананы с помощью цепочки команд. — игра учит базовым навыкам программирования и написанию кода. В ней нужно захватывать земли и уничтожать врагов. — это платформа, на которой проходят игры и турниры для разработчиков. Они развивают алгоритмическое мышление и дают полезные связи с разработчиками. Хекслет проводит соревнования разработчиков разных уровней на Codebattle каждый месяц — участвуйте, чтобы приобрести новый опыт и разнообразить свое обучение.

Сколько времени нужно, чтобы выучить Python

Судя по опыту многих разработчиков, базовые знания по Python можно получить чуть меньше, чем за месяц, если заниматься до пяти часов в неделю.

Если вы хотите стать Python-разработчиком, то готовьтесь уделять учебе от десяти часов в неделю. Занимаясь такое количество времени, вы сможете освоить Python на уровне джуна примерно в течение года.

Основы языка можно выучить самостоятельно с помощью книг, видеолекций и онлайн-курсов. Но на более поздних этапах обучения рекомендуем вам обращаться по всем вопросам к опытным разработчикам или менторам.

Читайте также: Как я 10 лет проектировал мосты, а в 33 года стал Python-разработчиком в банке

Полезные материалы для изучения Python

Есть много хороших книг по изучению Python. Будет здорово, если вы прочитаете некоторые из них:

  • Пол Бэрри «Изучаем программирование на Python»
  • Марк Лутц «Изучаем Python»
  • Эрик Мэтиз. Изучаем Python. Программирование игр, визуализация данных, веб-приложения».

Также у Хекслета есть свой список рекомендованной литературы. Ознакомьтесь с этими книгами — они полезны для программистов любых направлений.

На YouTube-канале Хекслета есть рубрика «Публичные собеседования», в которой наши студенты проходят учебные интервью у специалистов разных компаний. Посмотрите видео из этой рубрики, чтобы иметь понимание о том, как проходят собеседования и какие знания нужны разработчикам, чтобы успешно их проходить.

Если в процессе обучения вы почувствуете, что вам не хватает поддержки единомышленников и более опытных разработчиков, присоединяйтесь к Хекслет Комьюнити. Там вы сможете обсуждать трудные моменты в учебе, получать помощь и поддержку.

Станьте востребованным Python-разработчиком На Хекслете есть обучение по профессии Python-разработчика. Пройдите его, чтобы изучить Python и фреймворк Django, разобраться в алгоритмах и структурах данных, а также получить поддержку от менторов и единомышленников.

Как выучить python || План обучения с нуля ⁠ ⁠

Всем привет. Решил поделиться планом обучения python с нуля и до приемлимого уровня.

Python в данный момент является одним из самых популярных и востребованных языков программирования в мире.
рейтинг языков программирования: https://pr-cy.ru/news/p/7809-reyting-yazykov-programmirovani.
А некоторые области, например обучение нейронных сетей, полностью завязаны на Python . Плюс многие считают его лучшим для старта в программировании, поэтому Python сейчас изучают в школах.

Итак рекомендую начать обучение с прочтения книги «Byte of Python « или по русски укус питона. Это очень маленькая книжка, прочтение которой не отнимет у вас много времени, но зато вы уже сможете получить знания об основах языка. Все кратно и по делу.
Ссылка: https://wombat.org.ua/AByteOfPython/#id10

Далее стоит закрепить полученные знания в курсе на сайте stepik : «Поколение Python»: курс для начинающих

После этого курса стоит немного уделить времени алгоритмам, в этом нам поможет книга “Грокаем аглоритмы”, все примеры в этой книге так же разбираются на языке пайтон, что очень удобно для нас.

После книги про алгоритмы возвращаемся на stepik и проходим курс «Python: основы и применение.» Здесь вы еще больше погрузитесь в язык. изучите классы, попробуете поработать с различными АПИ. В общем будет чем заняться.
Ссылка: https://stepik.org/course/512/syllabus

После этого курса я рекомендую пару недель уделить только решению различных задач по программированию. Для этого существует множество сайтов, я оставлю ссылки на все в описании. Выбирайте какой больше понравится. Лично мне больше всех понравился chekio. Знаю, что многие любят codewars.

Сайты где можно порешать задачки Python:

Вне зависимости от того какой сайт вы выберете, рекомендую начинать с более простых задач, и решать по 3-5 штук в день. Так же после решения, вам будет позволено посмотреть как эту задачу решили другие участники. Почти всегда это будет сделано более элегантным или продвинутым способом. В общем на решениях других людей тоже можно многое почерпнуть.

Далее стоит ознакомиться с ютуб каналом Computer science center

Здесь уже рассматривают продвинутые техники языка. Очень рекомендую к ознакомлению.

Если вам больше нравится читать книги, то вместо этого курса могу порекомендовать книгу «Python. К вершинам мастерства.»

Еще есть вот такой курс от Яндекса.

Так же не забываем постоянно решать задачки с сайтов, чтобы постоянно была практика.

При среднем темпе обучения, на все эти шаги у вас уйдет 3-4 месяца.

На этом этапе уже можно спокойно начать погружаться в выбранную Вами сферу, будь это веб программирование с помощью фреймворков джанго, фласк или может быть датасаенс. Это уже выходит за рамки данного поста. То как стать датасаентистом, мы разбирали в этом посте:

Так же эти ресурсы могут быть вам полезны:

Книга: Изучаем Python. Том 1 | Лутц Марк

Книга: Изучаем Python. Том 2 | Лутц Марк

Книга: Доусон М. Программируем на Python.

Лекции от Тимофея Хирьянова — https://www.youtube.com/playlist?list=PLRDzFCPr95fLuusPXwvOP.
Книга: Автоматизация рутинных задач с помощью Python: практическое руководство для начинающих

У нас есть чатик в телеграмме где мы обсуждаем с подписчиками различные вопросы, залетай к нам! https://t.me/DataScienceGuy

Сейчас смотрю лекции Хирьянова.

Божечки, хоть бы все преподы были как он. Объясняет легко, непринуждённо, проводит аналогии (уместные — это важно), речь чистая, голос приятный. После просмотра понимаешь (даже на следующий день), что материал, который он давал, качественно отложился в мозгу. Остаётся закрепить практическими примерами. Реально получаю удовольствие от лекций.

Спасибо большое, до этого поста несколько раз начинал учить пайтон, но несколько раз бросал, теперь я твердо намерен закончить!! Из того что я в свое время учил:

1. Есть бесплатный пробный курс от Яндекса достаточно хорошая подача, но много лишней писанины (типа развивается история, чела которого уволили и тот устроился в IT компанию питонистом с нуля и типа есть диалоги ГГ с сотрудниками и все такое).

2. Потом есть белорусский сайт letpy.com все интерактивно, можно создавать папки/файлы сколько угодно. Тоже бросил, как только дошел до написания крестиков-ноликов (вопрос был скорее во мне, что я не понимал как и что делать)

3. После решил купить книгу Марка Лутца — Изучаем пайтон, но понял, что книга не для новичков из минусов книги идет вечное сравнение пайтон 2 и 3 от чего становится сложно-читаемой плюс Марк больше говорит о пайтон с технической точки зрения, т.е. зрит в самый корень.

В итоге начал с самого начала с Укуса питона, уже чуть лучше стал понимать язык, так что спасибо за пост!

О, от яндекса курс не видела ещё, спасибо.

Что там про инициативу говорят?⁠ ⁠

Работаю в небольшой местной компании, отвечаю за ИТ, как свойственно в маленьких компаниях, зона ответственности сильно размыта, а также тотальная экономия на всем, это дорого, то дорого. Но от конкурентов оставаться не хочется.
Я как человек инициативный, за пару недель в свободное от работы время написал вацап бота, связал с 1С.
Сервис шагнул, записался клиент ему дата и время записи в вацап улетело, за сутки до записи приходит напоминание, вы помните, что мы вас ждем!
Нужны некоторые шаманства, чтоб все это запустить, но работает. И главное бесплатно! И не просто бесплатно, перестали слать СМС, следовательно вполне считаемая экономия, ну что еще нужно для счастья компании, в которой на всем экономят?
И вот спустя три месяца, пока я был в отпуске, эта шайнтан машина встала, банально на виртуалку пришли обновления, оно их установило, и перезагружалось.
Причем заметил это я, т.к. перед каждой рассылкой мне приходит уведомление – «я бот, я живой», сообщил на работу, что бот встал, запущу через день, т.к. до ближайшего ПК 600км осталось.
Естественно, по выходу из отпуска меня ждало 100% лишение премии. Проявил инициативу, к слову, за новый современный сервис и экономию даже спасибо сказано не было.
Как же горит!

Дневник разработки «Pirate Parrot». Часть I: Дизайн и комбайн⁠ ⁠

Дневник разработки «Pirate Parrot». Часть I: Дизайн и комбайн Python, Программирование, Дизайн, Логотип, Компьютерные игры, Видео, YouTube, Длиннопост

лл: делаем сайт, который находит новые игры на торрентах и постит их описание в Телегу. Рисуем лого, интерфейс и пишем код на Пайтоне.

Приглашаю окунуться в магический мир разработки программного обеспечения, полный приключений, неизвестности, страданий и сожалений о своих решениях. Мы с вами пройдём путь от идеи «Телеграм-канал с описанием новых игр на торрент-трекерах» до сайта, который их находит и публикует.

Процесс сильно упрощён для простоты понимания, однако, вам всё же потребуются знания школьной программы: что такое переменная, массив, функция, операторы IF и FOR. Ещё нужно знать, что сайты состоят из HTML и работают особо-шумных компьютерах под названием «серверы». Остальное объясню на пальцах.

Это не учебный материал. Некоторые вещи сделаны не оптимально, с ошибками и преднамеренно криво. Если хотите научиться программировать, то лучше купите книгу, запишитесь на курсы или послушайте индусов на YouTube.

Хватит разговоров, пора мешки ворочать. Открываем творение Дурова и пишем пост об одной игре, чтобы знать к какому результату стремиться. Чем чётче цель, тем проще к ней двигаться:

Дневник разработки «Pirate Parrot». Часть I: Дизайн и комбайн Python, Программирование, Дизайн, Логотип, Компьютерные игры, Видео, YouTube, Длиннопост

Чтобы делать такие посты нам потребуются:

• Трейлер игры
• Три скриншота
• Жанры
• Описание
• Минимальные системные требования
• Рейтинг на Метакритике

Собирать всё это будет программа, которая работает на сервере и управляется через веб-сайт, он же «панель управления». Нам предстоит её научить:

• Загружать список игр с Рутрекера.
• Сохранять в базу данных название, описание и жанры игры.
• Скачивать скриншоты.
• Искать и скачивать трейлеры с YouTube.
• Искать и сохранять рейтинг на Metacritic.
• Показывать описание, трейлеры и скриншоты в панели управления.
• Отправлять это всё в Телеграм.

Звучит не сложно. Начнём с названия, логотипа и интерфейса.

Дневник разработки «Pirate Parrot». Часть I: Дизайн и комбайн Python, Программирование, Дизайн, Логотип, Компьютерные игры, Видео, YouTube, Длиннопост

Рабочее название проекта: «Pirate Parrot». Как-то сразу в голову пришло. Звучит настолько попсово, что даже не стал проверять занять ли домены — наверняка заняты — и существуют ли похожие проекты с таким названием — наверняка существуют.

За пару дней раздумий ничего толкового не придумал. Каково же было удивление, что домен « pirateparrot.ru » свободен. Ладно, берём его для сайта-заглушки и ещё один, не скажу какой, для панели управления.

Корабль назвали и ему нужен логотип, а точнее флаг. Пиратский флаг с черепом. Но не простой, а цифровой. Мой любимый торрент-клиент «Transmission» показывает доступность файлов у сидеров в виде цветных блоков. Отличная метафора для проекта: череп из блоков доступности торрента.

Дневник разработки «Pirate Parrot». Часть I: Дизайн и комбайн Python, Программирование, Дизайн, Логотип, Компьютерные игры, Видео, YouTube, Длиннопост

Находим референс в Гугле, сдуваем пыль с графического планшета и рисуем как умеем. Мозайку Фотошоп сделаем сам, нам останется только перенести её в вектор. Да, царапины на клюве плохо видны, но этот и ещё парочку косяков поправим позже. Сейчас главное выпустить «Версию 1.0» как можно быстрее, а не идеально.

Поговаривают, что нейросети заменят дизайнеров и программистов. Ну чтож, робот, удиви меня! Нарисуй этот логотип лучше:

Дневник разработки «Pirate Parrot». Часть I: Дизайн и комбайн Python, Программирование, Дизайн, Логотип, Компьютерные игры, Видео, YouTube, Длиннопост

Н-да… Код, пожалуй, сам напишу.

Займёмся интерфейсом. В интересах времени опущу промежуточные варианты. Не думайте, будто всё получилось с первой попытки:

Дневник разработки «Pirate Parrot». Часть I: Дизайн и комбайн Python, Программирование, Дизайн, Логотип, Компьютерные игры, Видео, YouTube, Длиннопост

• Точка перед пунктом меню — индикатор новых торрентов. Сейчас мы сделаем только игры, а остальные оставим на будущее.

• ARW — переключатель «Await, Rejected, Weekly» или «Ожидают публикации, Отклонённые, Дайджест за неделю».

• Status — главная страница со статистикой и управлением программой.

• Если навести курсор на скриншот, то он появится вместо видео.

• «Original text» показывает текст описания торрента вместо видео и скриншотов.

• Удалять видео и скриншоты нельзя, да это и не нужно.

• Весь текст поста состоит из полей ввода, у которых нет заливки границ. Чтобы поправить, скажем, заголовок, достаточно нажать на него.

• Кнопка без подписи. И так понятно, что она делает.

• Логотип — это индикатор конца списка.

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

Ладно, достаточно желчи, займёмся кодом. На самом деле нам предстоит написать две программы:

1. Комбайн — по расписанию заходит на трекер, проверяет нет ли там чего нового и сохраняет информацию об играх в базу данных.

2. Панель управления — сайт, который читает ту же базу данных, позволяет нам редактировать инфу об игре и отправляет её в Телеграм.

— Зачем две, когда это может сделать одна?
— Горизонтальное масштабирование.

Когда программа обрастает новыми функциями, к примеру загрузкой свежих фильмов, ей нужно больше вычислительных мощностей. Если программа одна, то единственный способ дать ей их — это увеличить число процессоров и ОЗУ сервера, что называется «вертикальное масштабирование». Но память и процессоры не получится наращивать до бесконечности, а арендовать два сервера выйдет дешевле, чем один с аналогичной мощностью — это и называется «горизонтальное масштабирование».

На первый взгляд преувеличение, но лучше заранее готовить почву под будущие функции, чем переделывать код, когда настанет время их реализовать.

Комбайну и панели управления всё равно, что они работают на разных серверах. Мы даже сможем запустить несколько Комбайнов и одну панель управления. Главное — единая база данных. Кстати, самое время её создать:

Дневник разработки «Pirate Parrot». Часть I: Дизайн и комбайн Python, Программирование, Дизайн, Логотип, Компьютерные игры, Видео, YouTube, Длиннопост

• url — ссылка на игру на трекере. Показывать её в Телеге не будем, а то канал забанят. @freedomist уже добаловался со своим ботом 😀

• rawTitle — название игры на трекере. Понадобится для поиска новых игр.

• rawText — весь текст описания игры с трекера.

• title, description, genre — эти поля будем отправлять в Телеграм.

• sysCPU, sysGPU, sysRAM — минимальные системные требования.

• ratingCritics и ratingUsers — рейтинг с Метакритика.

• screenshotsFilename — имена файлов всех скриншотов игры.

• selectedScreenshots — скриншоты, которые мы выбрали для публикации в Телеграм-канале.

• videoURL и videoFilename — трейлер с YouTube.

• status — статус торрента: «ожидает публикации / await», «отклонён / reject», «опубликован / published».

• date — дата добавления.

Прелюдии закончились, открываем редактор кода:

Дневник разработки «Pirate Parrot». Часть I: Дизайн и комбайн Python, Программирование, Дизайн, Логотип, Компьютерные игры, Видео, YouTube, Длиннопост

Если не программировали на Пайтоне, то ничего страшного — тоже недавно с ним познакомился 🙂 Вот что тут происходит:

На первой строчке мы импортируем файл «classTorrents». Грубо говоря, вместо неё будет код из этого файла, со всеми переменными и функциями, с которыми мы можем работать.

Помимо файлов, в Пайтоне можно импортировать целые программы — «модули», которые написаны другими программистами. Скажем, нам нужно записать что-то в базу данных под управлением MySQL. Мы могли бы написать код, который откроет подключение к этой СУБД, подготовит запрос, отправит и оповестит об успехе или ошибке. Но зачем тратить время? Находим в интернете модуль «mysql», устанавливаем, импортируем, передаём ему данные и логин/пароль об базы. Остальное он сделаем сам. Аналогично поступим со скачиваем видео с YouTube, получением HTML страниц и отправкой сообщений в Телеграм — всё это будут делать модули, бесплатно доступные в сети и написанные кем-то поумней нас с вами 🙂

На четвёртой строчке кода мы создали объект класса «RuTrackerGames» из файла «classTorrents». Если не знакомы с «Объектно-ориентированным программированием / ООП», то представьте, что вы инженер и собираете новую модель самолёта. Как-то утром вы подходите к токарю и говорите:

— Иван Николаевич, а сделайте-ка мне десяток титановых болтов, пожалуйста.

Не сложно догадаться, на какие три буквы вас пошлёт мастер. И будет прав. Без чертежа болты никто делать не станет. Классы в ООП — это чертежи, а объекты — это болты. Без чертежа нельзя сделать болт, а с чертежом можно наклепать хоть вагон болтов. Но чертежом нельзя прикрепить крылья к фюзеляжу самолёта, так же и классы не выполняют код, пока не создашь объект.

Классы определяют свойства и методы объектов. Например, свойства болта: цвет, материал, размер и вес. Методы — то, что можно сделать с объектом — закрутить, раскрутить, потерять, сдать в металлолом или положить на чьё-то мнение. Методы в Пайтоне, так же как и функции, начинаются со слова «def»: «def propit_bolt():».

Классы могут наследовать методы и свойства других классов. Скажем, потребовались болты «№45» с левой резьбой. Вы делаете чертёж только резьбы, подписываете «для остальной части болта см. чертёж „Болт №45“» и Иван Николаевич приступает к работе.

Теперь у нас достаточно знаний, чтобы написать класс RuTrackerGames:

Дневник разработки «Pirate Parrot». Часть I: Дизайн и комбайн Python, Программирование, Дизайн, Логотип, Компьютерные игры, Видео, YouTube, Длиннопост

Наследование нам потребуется в будущем. Чтобы собрать игры с трекера «Demonoid», нужно создать класс «DemonoidGames» и написать два метода: получить список новых игр и описание каждой. Запись в базу и пропуск уже добавленных сделают родительские классы «Torrents» и «GamesTorrents». Придёт черёд собирать фильмы — новый класс «MovieTorrents», который наследует логику класса «Torrents». И так далее.

Если вы ещё не переключились на видео с котиками, чтобы дать психике отдохнуть, то напишем пару интересных функций. Скачиваем видео с YouTube:

Дневник разработки «Pirate Parrot». Часть I: Дизайн и комбайн Python, Программирование, Дизайн, Логотип, Компьютерные игры, Видео, YouTube, Длиннопост

Соберётесь использовать модуль «yt_dlp» в своём проекте — делайте его классом, а не функцией, т.к. единственный способ получить имя файла после загрузки, это вызвать функцию «filename_hook», в которую модуль передаст имя. Но чтобы вытащить его оттуда, придётся сделать костыль — объявить глобальную переменную «filename» на строках 22 и 24. Это скользкая дорожка. Всё начинается с безобидных глобальных переменных, и вот ты уже не замечаешь, как лепишь GOTO для выхода из условного оператора.

В следующей версии программы обязательно перепишем эту функцию в класс. А пока добавим Телеграм бота, который будет отчитываться о работе Комбайна и оповещать, если что-то пошло не так:

Дневник разработки «Pirate Parrot». Часть I: Дизайн и комбайн Python, Программирование, Дизайн, Логотип, Компьютерные игры, Видео, YouTube, Длиннопост

Дневник разработки «Pirate Parrot». Часть I: Дизайн и комбайн Python, Программирование, Дизайн, Логотип, Компьютерные игры, Видео, YouTube, Длиннопост

Все файлы программы:

• env — папка с модулями.

• app.py — файл запуска программы.

• classWebImage.py — классы для загрузки картинок с сайтов Fastpic, Imageban и др.

• gamesGenres.py — приводит названия жанров игр к единому формату. Например, меняет «First Person Shooter» на «Шутер от первого лица», а «Ролевая игра» на «РПГ». В коде класса «RuTrackerGames» вызов этой функции убран для простоты понимания.

• reportMaster.py — Телеграм-бот для сообщений об ошибках.

• requirements.txt — список подключённых модулей.

• support.py — мелкие функции, вроде скачивания видео, поиска по тексту и удаления мусора из него.

Настало время запустить Комбайн. Открываем терминал и «Поехали!»:

Проверим что он записал в базу данных:

Дневник разработки «Pirate Parrot». Часть I: Дизайн и комбайн Python, Программирование, Дизайн, Логотип, Компьютерные игры, Видео, YouTube, Длиннопост

Супер! Осталось сделать панель управления и оформить Телеграм-канал. Этим займёмся в следующей части 😉

Источники знаний для Python разработчика⁠ ⁠

Друзья, хотелось бы поделиться небольшим, но эффективным списком ресурсов, которые может использовать Python разработчик для обучения и совершенствования навыков. Данные ресурсы использую лично я

Тонни Гэддис “Начинаем Программировать на Python. 5 издание.” Книга отлично подойдет новичкам, читается легко, особенно круто — что есть задания для самостоятельной проработки

Лусиану Ромальо “Python, к вершинам мастерства” — про книгу сказано уже много в интернете, отмечу, что книга объемная, все примеры кода детальные, разбираются построчно, имеются цветные иллюстрации. Книгу можно читать целиком, а можно использовать как настольный справочник разработчика. Читая ” Python, к вершинам мастерства“ можно узнать новое об уже казалось бы известных вещах ( например, об именовании срезов). Также максимально детально объясняются асинхронное программирование, модуль multiprocessing и multithreading, итераторы, декораторы, ООП.

Стив Макконнел “Совершенный код”. Эта книга без привязки к языку программирования, она расскажет Вам о том как организовать код таким образом, чтобы его легче было читать как Вам, так и Вашим коллегам — а также масштабировать систему без проблем.

Уильям Шоттс “Командная строка Linux”. Книга расскажет об особенностях работы с unix — системами, начиная с азов (перемещение по папкам, права), и заканчивая написанием более продвинутых скриптов автоматизации на bash. Бекэндэру, датаинженеру, девопсу без терминала никак не обойтись, поэтому решил добавить в подборку

Telegram-каналы:

Python academy. Много инфы по Python в краткой форме, с понятными объяснениями и хорошими скриншотами

Python for you. Молодой канал, где без воды разбирается много полезных особенностей языка, подключения к различным источникам (БД, апи, облачные хранилища), разбор задачек с собеседований

[Python:today] Крупный канал, где изюминка — это разбор интересных сторонних библиотек, и чем они могут быть полезны

Python: задачки и вопросы. Название говорит само за себя, можно порешать публикуемые задачи и выбрать ответ через голосование — потом автор публикует объяснение

1. Selfedu — авторский канал Сергея Балакирева, один из лучших для новичков — содержит полный курс по питону начиная с азов по установке интерпретатора и запуска IDE и заканчивая более продвинутыми темами типа дескрипторов классов, декораторов с параметрами и т.д. Также на канале отдельный блок видео по ООП Python, регулярным выражениям, структурам данных, подробнейший курс по Django. Вообще в целом удивительно, как такие качественные видео отдаются совершенно бесплатно)

2. Диджитализируй. Канал ведет Алексей, разработчик с большим опытом построения нагруженных и отказоустойчивых приложений с Python на бэкэнде (и не только с этим языком). На канале я лично очень много нашел интересных тем по самому питону и его особенностям, по работе с нужными утилитами в linux (ssh, htop и др), по базам данных. Видео краткие и понятные, также в большинстве случаев автор отвечает на все вопросы

Python Russian — канал разбирает многие интересные темы, которые будут полезны тем, кто уже что то знает о языке — “правила хорошей функции”, “LEGB rule”, разбор модуля collections — deque, Counter и т.д.

Глеб Михайлов — авторский канал, много информации по Python и linux. Особенно интересно будет тем, кто хочет в ближайшее время пройти собеседование, так как у Глеба есть целый блок “Ща порешаем”, в формате стрима разбираются простые и сложные задачки с собеседований на сайтах Leetcode, Codewars, StrataScretch. При просмотре видео не будет никакой усталости, так как материал подается с юмором, автор старается по возможности поддержать новичков. Также на канале один из лучших туториалов по pandas как введение для аналитика данных или датаинженера.

Хитрый Питон — много интересных моментов по языку, но все же не для новичков. Жаль, что на канале давно не было видео

alishev — на канале отличный плэйлист по Python, хотя контента больше по java

PyLounge — хорошо разбираются библиотеки Python

egoroff_channel — видео по основам языка python, pandas, django, ООП и даже Tkinter

1. .“Добрый, добрый Python” — бесплатный и крутой курс Сергея Балакирева, рассчитан месяца на 4, и его в целом достаточно чтобы иметь крепкую базу для junior python разработчика

Также Сергей сделал недорогие курсы по ООП, структурам данных

2. “Поколение Python” — есть бесплатный крутой базовый курс Python, и его платные продолжения

3. “Data Science с Глебом Михайловым” — подойдет всем, кому Python нужен для аналитики, работы с pandas и CatBoost

Благодарю за прочтение, пишите в комментариях, какие источники используете Вы

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *