Как выглядит трек обучения программированию на Python с нуля? С чего стоит начать? На чем сделать акцент? Как не потерять интерес?

Полгода я искал ответы на эти вопросы, тщательно исследуя предметную область. Я обнаружил много полезных советов. Особенно в заметке Василия Большакова и на Хекслете. Но мне не хватало структуры. Знания нарастали со всех сторон и превращались в кучу. Чтобы структурировать процесс обучения и оценить его масштаб, я собрал план.

Составляя программу, я ориентировался на философию Тима Петерса, который сформулировал The Zen of Python:
Простое лучше, чем сложное
Сложное лучше, чем запутанное
Практичность важнее безупречности
Ошибки никогда не должны замалчиваться
Сейчас лучше, чем никогда...


План обучения


В разработке я новичок, поэтому мой путь начинался с самых азов. На текущий момент я прошел примерно половину. Скорее всего я что-то упустил, в чем-то не разобрался как следует. Если вы хотите поделиться опытом или советом, то смело пишите в комментарии. Также важно отметить, что трек обучения рассчитан на пользователей Мак ОС. Другие платформы имеют свои особенности, о них говорить мы не будем.

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

1. Понять зачем вам это надо


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

2. Подружиться с командной строкой



3. Настроить среду разработки и рабочее окружение


  • Начать с подходящего текстового редактора: Sublime Text, Atom
  • Потерять веру в себя впервые столкнувшись с Vim
  • Дорасти до IDE



Выбор разработчиков, проходивших интервью в Triplebyte


“I am a huge believer in learning by doing, and there are a lot of opportunities on the job where I can hone my Python skills through Deliberate Practice” Robert Chang

4. Изучить синтаксис и структуры данных Python на практике



Для тех кто любит онлайн-курсы





5. Полистать библиотеки



6. Пощупать базы данных



Дополнительно


Пайтон на одной картинке
Карта развития разработчика
Книги «на все времена»

Спасибо Андрею Свердлову за дельные комментарии.

Комментарии (21)


  1. Desprit
    08.03.2018 23:39

    Добавил бы от себя обязательный просмотр исходного когда тех библиотек, с которыми сталкиваешься. Во-первых, понимание чужого кода и написание своего собственного — это небо и земля (во всяком случае, на первых порах). Во-вторых, всегда можно почерпнуть какие-то интересные обороты. А иногда, напротив, ужаснуться и запомнить как делать нельзя :)


  1. Andy_U
    09.03.2018 00:02

    Я бы добавил PEP-8. Как «Отче наш».


    1. cl0ne
      09.03.2018 18:58
      +1

      А я бы к PEP-8 добавил


  1. vladob
    09.03.2018 01:03

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


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


  1. smer44
    09.03.2018 02:14

    а какое отношение к питону имеет пункт 2?


    1. vladob
      09.03.2018 05:45

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

      Ну, я так, по-крайней мере думаю.


      1. smer44
        09.03.2018 07:37

        нет ну действительно, git понятен интуитивно если пользоваться не командной строкой а smartgit а bash и SSH имеют к питону такое же отношение как и к любому другому языку, или я недопонимаю причину??


    1. ckpunT
      09.03.2018 08:12

      Хотя бы понимать различия в командах:
      python run.py
      python ./run.py&


      И что эта строчка означает:
      #!/usr/bin/env python


      Что выдает метод os.environ и от чего эти переменные зависят.


      И почему когда я запускаю программу от "имени себя" os.environ показывает одни параметры, а из под sudo другие.


      Ну а что бы программа стартовала автоматом при старте сервера, тоже надо немного знать shell.


      1. smer44
        09.03.2018 08:17

        кстати убедил, можешь касательно SSH сказешь?))
        дополню от себя: не помешал бы материал по функциональному программированию, матанализ, теорию графоф, статистику а там и можно ML


  1. robert_ayrapetyan
    09.03.2018 02:39

    Pycharm и intellij idea надо бы объединить на графике для порядку


    1. sizziff
      09.03.2018 09:20

      Поддерживаю.


  1. KoMePcAHT
    09.03.2018 10:12
    +2

    не совсем онлайн курсы, но попрактиковаться можно здесь pythontutor.ru
    мне в свое время помог этот ресурс


  1. KeyJoo
    09.03.2018 11:36
    +3

    gii Название статьи — это факт отрицания становления личности в профессиональной сфере Python-разработчика?(Или это просто заголовок-замануха для всякого начинающего питониста?) Это текущий план обучения? Время старта обучения?


  1. DaneSoul
    09.03.2018 11:52
    +1

    Рекомендую весьма дельные краткие туториалы на английском по Python и куче других языков и технологий.


  1. s_suhanov
    09.03.2018 13:58
    +1

    Очень хороший курс в SoloLearn по python. Плюс у JetBrains есть образовательная платформа PyCharm Edu — очень удобно обучаться с ее помощью.


  1. Singaporian
    09.03.2018 18:50

    Можно дописать пункт между 4 и 5:
    зайти на CodeTriage и пофиксить баги.


  1. worldmind
    09.03.2018 19:52

    > Освоить основы работы с Bash

    так может сразу xonsh?


  1. kalininmr
    09.03.2018 20:26

    Неужто и правда что VS вдвое популярнее PyCharm?


  1. saintbyte
    09.03.2018 22:44
    +2

    И конечно классика
    image


  1. BOOTor
    10.03.2018 07:48
    +2

    А как же тестирование? UnitTest иже с ними?


  1. vladob
    11.03.2018 00:31

    Я, скоре всего, выразился бы в других словах, но первым трем пунктам от гуру от питона альтернатив нет с возможной поправкой на название книжки.
    Пукт 4 и далее уже следует планировать с учетом реальностей жизни.
    А так все верно, ИМХО