Что вам нужно, чтобы научиться хорошо разбираться в Python

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

Новичок

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

  • Переменные. Вы захотите понять, как работают переменные, типы переменных, область видимости и почему мы вообще используем переменные в программировании. С их помощью вы также можете узнать изменчивые и неизменяемые типы данных, которые в значительной степени говорят сами за себя.
  • Операторы - жизненно важная часть программирования, потому что они являются инструментами, используемыми для любых вычислений, присвоения переменных, оценки условий и циклов.
  • Условия. Когда дело доходит до принятия решений, главное - условия. В этом разделе вам нужно будет понять логические условия, объединение условных операторов в цепочку и операторы, используемые для проверки условий. Обычно это идет рука об руку с циклами и итерацией. В разделе вы должны знать различные циклы, доступные в языке, например циклы for и while.
  • Базовые структуры данных. Структуры данных - это душа каждой программы. Существует множество структур данных, но основное внимание следует уделять пониманию списков, наборов, словарей и кортежей.
  • Функции. Функции имеют решающее значение для любой программы. Комбинация различных функций в ваших программах - вот что заставляет программу работать так, как задумано.
  • Базовые знания операций ввода-вывода. В этом нет ничего сложного. Концепция, которую нужно изучить, - это как читать из текстового файла? Как писать в текстовый файл? Можете ли вы открыть файл CSV ?. Это вещи, которые вам могут понадобиться, особенно если вы хотите создавать реальные приложения или, может быть, вы хотите сохранить что-то в файле. Так что это будет основной раздел для вас, ребята. Я знаю, что это много, и это звучит потрясающе.
  • Модульное тестирование. Вам нужно понять, как на самом деле можно вести разработку через тестирование на Python или другом языке программирования.

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

Средний

  • Объектно-ориентированное программирование. Я знаю, что это модное слово, и оно вызывает мурашки по спине каждого новичка. Он требует правильного понимания классов, объектов и различных концепций, таких как создание экземпляров, наследование, абстракция, свойства и т. Д. Изучение этого имеет большое значение. Если вы получили только одно из этого промежуточного раздела, поймите, что у вас должен быть хороший фундамент и объектно-ориентированное программирование, чтобы действительно понимать что-либо выше этого уровня.
  • Шаблоны проектирования и передовые методы объектно-ориентированного программирования. Я не могу углубляться в шаблоны проектирования в этой статье, потому что это большая статья, которую я уже написал:


5 шаблонов дизайна, которые должен изучить каждый разработчик
Лучшие шаблоны дизайна для начала medium.com



  • Структуры данных. Структуры данных, как известно, действительно пугают программистов. Когда у вас будет прочный фундамент объектно-ориентированного программирования, вы захотите узнать о структурах данных. Погрузитесь глубже в такие вещи, как очереди, хэш-карты и стеки, чтобы упомянуть некоторые. Эти темы появятся, и понимание эффективности и временной сложности в нотации большого O действительно очень важно. Не волнуйтесь, если вы не понимаете некоторые термины. Вы доберетесь туда. В конце концов, вы учитесь.
  • Понимания. Итак, в Python есть такие действительно крутые, причудливые вещи, которые называются списками и словарями. Это способы написания однострочных (написания целого независимого оператора в одной строке).
  • Лямбда-функции. Это анонимные функции. Эти функции обычно используются в модулях сбора, но на самом деле они ими не ограничиваются. Узнайте больше о функции Lambda и ее лучшем варианте использования.
  • Наследование. Это относится к объектно-ориентированному программированию, но я просто хотел выделить его как отдельную вещь, потому что это тоже важно. Погрузитесь глубже в другие объектно-ориентированные принципы, такие как полиморфизм и расширенное поведение классов.
  • Методы Дандера. Если вы когда-нибудь видели
def__init__

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

  • PIP. Это одна из лучших функций python, потому что pip - это менеджер пакетов, который позволяет вам использовать сторонние модули в ваших программах. Это также связано с изучением сред Python, таких как Anaconda, и того, как его использовать. В этом разделе вы также узнаете, как создавать и использовать свои собственные модули.

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

Передовой

  • Декораторы. Они относятся к объектно-ориентированному программированию. Проще говоря, они украшают функцию или метод.
  • Генераторы. Генераторы - это способ эффективно использовать память в Python. Допустим, вы создаете коллекцию, а не целиком. Вы можете создавать по одному элементу за раз, если вам нужен доступ только к одному элементу из этой коллекции за раз. Это не обязательно должен быть один, а может быть два или даже три предмета. Для такой операции можно использовать генератор.
  • Контекстные менеджеры. Обычно они указывают на то, что при выходе из этого диспетчера контекста происходит операция очистки.
  • Метаклассы. Они слишком продвинуты в том смысле, что позволяют вам изменять поведение класса на более глубоком уровне.
  • Параллелизм и параллелизм. Для этого нужна отдельная статья, потому что это довольно длинная тема для погружения. Проще говоря, параллелизм - это задача одновременного выполнения и управления несколькими вычислениями, а параллелизм - это задача одновременного выполнения нескольких вычислений. Чтобы лучше понять эту тему, я настоятельно рекомендую вам прочитать эту статью:


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

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

Эксперт

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

Я не могу назвать вам график, когда вы туда доберетесь. Все сводится к вашему драйву и страсти.