Как и где начать изучать Python

Бывает, друзья или знакомые спрашивают меня "как изучать Python? С чего начать? Поможешь?"

Первые пару лет работы (тогда еще на C++) я относился с энтузиазмом к таким просьбам и хотел всячески поучаствовать в обучении. (с переменным успехом)

Сейчас думаю осторожнее. Что нужно иметь ввиду и что нужно делать:

  • Не факт, что ваш друг обратился по адресу. Специалист != педагог. Можно вспомнить нелюбимых преподов из универа, которые убили интерес к предмету. Личность очень важна. Вы можете оказаться таким же преподом. Поэтому я бы рекомендовал сократить риски: помимо предложения своей помощи, постараться человека вовлечь в сообщество.
  • Вовлечь в сообщество. Дать почитать статьи почему программирование это круто, истории успеха, комментарии. Ваш друг увидит, что таких же новичков как он/она огромные толпы и каждый второй считает, что это ему не дано и т.д. Бояться нечего.
  • Google, Stack Overflow - новые лучшие друзья. Все есть в интернетах. На самом деле, огромная часть средней работы программиста это применение наработанных практик, copy-paste кода из Stack Overflow, чтение документации, поиск решения проблем. Поэтому можно друга отправить гуглить курсы по Python или те самые статьи для мотивации. Пусть вырабатывается привычка.
  • Помочь с ответами на вопросы, делать код ревью. Кроме того, чтобы дать совет идти и серфить интернет, помогать, подбадривать и делиться опытом, конечно, тоже необходимо.

Это общие рекомендации. Ну а ниже конкретные курсы/материалы, что сейчас есть на рынке по Python. Сначала бесплатные:

  • Stepic - простой курс для новчиков. Подойдет для старта.
  • А здесь список тем и вопросов, которые я как-то давно оставлял для рекомендации другу. В принципе, актуален, но надо понимать что в разных компаниях к джуниорам требования разные. Также полезно знать какие требования к разработчикам предъявляет Яндекс. Но это стоит рассматривать как супер полноценные знания
  • также часто попадаются codeacademy и другие онлайн тренажеры. Вроде интересно и весело, но я не проверял побробно.
  • CS50 - признанный одним из лучших курсов по программированию. Гарвардский курс с русским переводом. Он не про Python, а вообще про программирование. Необязательно смотреть по порядку и вообще смотреть (там много очень), я не смотрел, но приятно знать, что такой курс есть.
  • Python-джедай - для тех кто любит формат Youtube. Тоже для новичков и тоже все темы не покрыты. Судя по темам даже ООП не затрагивается. Так что не знаю рекомендовать его или нет
  • А еще можно посмотреть на Reddit и выбрать способ обучения/курс себе по душе. Тут собрано все что нужно, чтобы начать. Но тут все на английском (это не должно быть преградой, но понято что может быть тормозом в обучении)

Далее платные курсы. На самом деле есть смысл - это дополнительная мотивация , внешний фактор:

  • Coursera, mail ru - здесь уже не для новичков. Заявлено, что уровень Intermediate. Главное, курируют его преподаватели настоящие. Стоимость 5 тыс в месяц - это стоимость подписки на Курсере. Но надо знать, что на Курсере любой курс можно попробовать пройти бесплатно, там есть доступ в материалам лекций. Платить там нужно за тесты, задания после уроков и сертификат. Помощь сообщества думаю можно найти в комментариях на форумах Курсеры и за бесплатно.