Как не стать Python-разработчиком

Как выглядит трек обучения программированию на 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. Пощупать базы данных



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


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

Спасибо за дельные комментарии: Андрею Свердлову, cl0ne, DaneSoul, s_suhanov, KoMePcAHT, Singaporian
Ads
AdBlock has stolen the banner, but banners are not teeth — they will be back

More

Comments 42

    +2
    Добавил бы от себя обязательный просмотр исходного когда тех библиотек, с которыми сталкиваешься. Во-первых, понимание чужого кода и написание своего собственного — это небо и земля (во всяком случае, на первых порах). Во-вторых, всегда можно почерпнуть какие-то интересные обороты. А иногда, напротив, ужаснуться и запомнить как делать нельзя :)
      0
      Согласен. Но для новичка читать исходный код библиотек тяжеловато) Например, нужно дорасти до понимания того, как работает Pandas: github.com/pandas-dev/pandas/tree/master/pandas/core.

      Разбирать чужой код я начинал с примеров python-telegram-bot: github.com/python-telegram-bot/python-telegram-bot/tree/master/examples. Они небольшие и их легко проверить – запустил, увидел как работает, а как не работает)
      +2
      Я бы добавил PEP-8. Как «Отче наш».
        +1
        А я бы к PEP-8 добавил
          0
          Клевый разбор кода и пример с гориллой. Спасибо
            0
            cl0ne Добавил в план
              0
              у Реймонда есть еще интересного-полезного :)
              –1
              А что такое «горилла»?
            0
            PEP-8 уже есть. Ссылка в четвертом пункте под фразой «Научиться оформлять код».
          +2

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


          • возраст
          • образовательная база
          • стартовый уровень знаний на начало "забега" и сейчас
          • предполагаемый объект приложения знаний
          • время
          • прочие ресурсы в распоряжении, необходимые для поддержки, например, бренного тела на то время, пока голова занята учебой
          • трезвая оценка собственных способностей
            0
            Мне 28. Закончил Политех. Учился на экономическом. Начинал осенью с нуля. Сейчас могу написать простой бот для Телеграма. Могу собрать, предобработать данные и обучить модель. Пример кода: github.com/evgeniitsvetkov. Я – новичок. Мне еще учиться и учиться. Иногда сижу по пять часов, иногда занимаюсь только несколько дней в неделю. В среднем выход час в день.

            Не думаю, что мой опыт уникален. Если взять любого человека не из IT, начинающего изучать Python для практического применения в жизни, то наши программы обучения скорее всего будут пересекаться на 80%.

            vladob что посоветуешь?
            +1
            а какое отношение к питону имеет пункт 2?
              0
              Чтобы советовать ответственно в щепетильных вопросах самообразования, важно понимать, от какого уровня человек стартует.

              Ну, я так, по-крайней мере думаю.
                0
                нет ну действительно, git понятен интуитивно если пользоваться не командной строкой а smartgit а bash и SSH имеют к питону такое же отношение как и к любому другому языку, или я недопонимаю причину??
                  +1
                  Применимость к другим языкам не отменяет важность для изучения в рамках обучения Python. Опыт говорит о том, что без базового знания bash и git развития не будет.

                  SHH – это скорее необходимость, поэтому в программе вынесено под звездочкой. Пример ситуации: нужно скачать данные для моделирования с сервера на локальную машину. Чтобы подключиться к серверу, я использую SHH.
                0

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


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


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


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


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

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

                    smer44 по матанализу советую курс Степика: stepik.org/course/95. Если хочется погрузиться по полной, то «Математический анализ» Зорича. Там же на Степике статистика: stepik.org/course/76, и дискретка: stepik.org/course/83.
                +1
                Pycharm и intellij idea надо бы объединить на графике для порядку
                  0
                  Поддерживаю.
                  +2
                  не совсем онлайн курсы, но попрактиковаться можно здесь pythontutor.ru
                  мне в свое время помог этот ресурс
                    0
                    KoMePcAHT cпасибо. Понравилась подборка задач, добавил в план.
                    +4

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

                      0
                      KeyJoo скорее крик души) Чем больше узнаешь, тем яснее понимаешь как далеко еще идти.
                      Ну и не хотел, чтобы звучало «Как стать Python-разработчиком за 10 дней». Это мой настоящий план. Я начал осенью.

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

                        gii меня самого всё время в дебри тянет, хотя могу и простых вещей не знать… Ну а сейчас-то, каковы изменения роста по сравнению с осенью?

                          0
                          KeyJoo увереннее читаю чужой код, вопросы стали глубже и осмысленнее. В принципе, все значительные изменения напрямую связаны с практикой. Cобрал телеграм-бот, научился работать с REST API, разобрался в сериализации json. Сделал проект по предсказанию оттока абонентов, лучше понимаю процесс предобработки данных, функциональное программирование.
                      +1
                      Рекомендую весьма дельные краткие туториалы на английском по Python и куче других языков и технологий.
                      +1

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

                        0
                        s_suhanov спасибо, что напомнил про Сололёрн. Осенью на нем решал задачи, понравилось. А вот PyCharm Edu у меня не зашел(
                        0
                        Можно дописать пункт между 4 и 5:
                        зайти на CodeTriage и пофиксить баги.
                          +1
                          Хорошая идея. Добавил
                          0
                          > Освоить основы работы с Bash

                          так может сразу xonsh?
                            0
                            Неужто и правда что VS вдвое популярнее PyCharm?
                              +5
                              И конечно классика
                              image
                                +2
                                А как же тестирование? UnitTest иже с ними?
                                  +1
                                  BOOTor а с чего начать, чтобы не свернуть шею?
                                  0
                                  Я, скоре всего, выразился бы в других словах, но первым трем пунктам от гуру от питона альтернатив нет с возможной поправкой на название книжки.
                                  Пукт 4 и далее уже следует планировать с учетом реальностей жизни.
                                  А так все верно, ИМХО
                                    0
                                    В числе IDE отсутствует упоминание WingIDE. Полегче PyCharm будет. Главное, что имеет в своем арсенале возможность перехватывать удаленные процессы для отладки. Пусть нет той Горы инструментов, что в pyCharm-е, но мне хватает.
                                      0
                                      у pycharm гланые плюсы(и тормоза) в очень хорошем ватодополнении.
                                        0
                                        ой
                                        *автодополнении
                                        :)
                                        оговорочка по фрейду

                                    Only users with full accounts can post comments. Log in, please.