Найти хороший программный ресурс - все равно что искать иголку в стоге сена. Это сложно найти и может занять много времени.

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

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

Я использовал несколько продуктов Python Реувена Лернера. Каждый был превосходным. Есть два, о которых вам нужно знать.

Во-первых, интервью с Ace Python. Этот бесплатный курс содержит 50 обучающих видео по темам Python, разделенных на три уровня: начальный, средний и продвинутый.

Каждое видео посвящено вопросу, который Лернер рассматривает в скринкасте. Вот некоторые примеры:

  • Как вы меняете местами переменные?
  • В чем разница между файлами .py и .pyc?
  • Что такое UnboundLocalError?

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

Это потому, что Лернер выходит далеко за пределы поверхностного уровня того, как что-то работает, и проникает в нюансы концепции или темы. Вы узнаете, когда и почему нужно использовать, например, "break" вместо "continue". Вы узнаете, как «else» работает в цикле Python и когда (а когда нет) его использовать.

Его объяснения подтверждаются живыми примерами кода. Вы увидите, как он пишет функции, классы или условные выражения для объяснения каждой концепции.

Это очень полезно: вы получаете образ мышления великого программиста.

Ace Python Interviews - это простая задача для тех, кто хочет улучшить свои знания Python.

Недавняя книга Лернера Python Workout - еще один фантастический источник.

В нем 50 задач, которые касаются основных частей языка: строк, словарей, функций, файлов, списков и кортежей, среди прочего.

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

В чем Лернер выделяется больше всего, так это в продуманном решении, которое он предлагает. Он не только дает ответ, но и дает подробное объяснение. Это отличительная черта.

Кажется, он понимает, что получение ответа - это только часть процесса.

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

В результате ваш языковой контекст Python будет расти (я уверен, что так оно и есть), поскольку решения Лернера, скорее всего, откроют вам новые возможности Python или различные способы работы. Ваши навыки решения проблем также станут более совершенными.

Здорово собрать свою библиотеку знаний. Но постоянно нужно применять свои знания на практике.

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

Вот несколько ресурсов, чтобы попрактиковаться.

Книга Брайана Хогана "Упражнения для программистов"

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

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

Упражнения

Эта платформа программирования предлагает множество проблем различной степени сложности. Что мне больше всего нравится, так это то, что он ориентирован на тесты: для каждой задачи есть файл тестов. Решением задач на Exercism я начал с Test-Driven Development.

Торт для интервью

Я зачислен на «полный курс» Interview Cake, где я изучаю алгоритмы, структуры данных и нотацию с большими буквами «О» и получаю практику. Задачи тщательно отобраны, чтобы помочь вам понять концепцию или тему, например, стеки.

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

LeetCode

На LeetCode нет недостатка в задачах, которые нужно решить. Но это дает важное преимущество.

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

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

Когда я только начал программировать, многие ресурсы, которые я использовал, не предлагали решения, не говоря уже об объяснениях. С одной стороны, в этом есть ценность: вы вынуждены иметь дело с двусмысленностью и можете многое вырастить из борьбы. Фактически, книга Лернера Python Workout также содержит проблемы без решения.

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

«Оглядываясь на законченное решение, переосмысливая и заново исследуя результат и путь, который к нему привел, [студенты] могли бы закрепить свои знания и развить свои способности решать проблемы», - пишет Полиа в своей книге Как сделать Решить.

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

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

Я пишу об обучении программированию и о том, как это лучше всего делать ( amymhaddad.com).

Эта статья изначально была опубликована на сайте amymhaddad.com.