Не застрять на начальном уровне программирования на Python

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

В Интернете полно курсов и других материалов для начала изучения Python. Самые известные из них, например. 100 Days of Code: The Complete Python Pro Bootcamp 2023, codeacademyиfreeCodeCamp. Однако после прохождения одного (или нескольких) таких курсов многие люди застревают на одном уровне: уровне младшего разработчика Python.

В Европе на 4 марта 2023 года в LinkedIn было почти в два раза больше вакансий для средних/старших разработчиков Python, чем для должностей разработчиков Python начального уровня (соответственно 23 739 против 12 720).

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

  1. Практикуйтесь в программировании сами.
  2. Учитесь, работая над проектами с более опытными разработчиками.
  3. Продолжайте учиться, активно ища более продвинутые концепции программирования и применяя их в рабочих или личных проектах.

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

Пришествие кода: здесь вы найдете почти 200 задач по программированию, от новичка до эксперта.

Kaggle: онлайн-сообщество для специалистов по данным с большим количеством наборов данных для практики и соревнований для участия.

Или взгляните на Здесь, на Insane, где предлагается более 70 проектов Python, сопровождаемых кодовыми решениями и пояснениями, а некоторые даже включают учебные пособия!

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

На 5 марта 2023 года зарплата разработчиков Python на стеклянной двери варьируется от 50 000 до 127 000 долларов в год для должностей начального уровня и от 77 000 до 250 000 долларов в год для должностей среднего уровня. .

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

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

Арьянские яйца

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

Мне особенно нравятся его бесплатные видео на Youtube, например, на YouTube. Data Classes», A/B Testing и Abstract Base Classes, но у него также есть собственные веб-сайты с гораздо большим содержанием:





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

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

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

На 5 марта 2023 года на Udemy существует более 6500 курсов английского языка Python для начинающих, в то время как существует только 315 курсов английского языка Python уровня экспертов.

Фред Батист

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

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



Фред Баптист опубликовал на Udemy четыре продвинутых курса Python, которые часто можно купить со скидкой примерно по 15 долларов США каждый (с 30-дневной гарантией возврата денег):

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

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

Помимо этих курсов на Udemy, Фред также ведет канал Youtube под названием Академия MathByte с бесплатными видео о Python, в том числе о передовых концепциях, таких как Модели данных Pydantic и Асинхронные модели производитель-потребитель.

Учитесь, практикуйтесь, применяйте, повторяйте

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

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

Вот и все! Удачи в выходе из младшего уровня программирования на Python с помощью Арьяна и Фреда! Не стесняйтесь обращаться ко мне, если у вас есть какие-либо вопросы или вы хотите получить дополнительные советы, например. какие проекты брать в первую очередь.

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