Python за месяц

Автор оригинала: Jhankar Mahbub
  • Перевод
Руководство для абсолютных чайновичков.
(Прим. пер.: это советы от автора-индуса, но вроде дельные. Дополняйте в комментах.)

image


Месяц — это много времени. Если тратить на обучение по 6-7 часов каждый день, то можно сделать дофига.

Цель на месяц:

  • Ознакомиться с основными понятиями (переменная, условие, список, цикл, функция)
  • Освоить на практике более 30 проблем программирования
  • Собрать два проекта, чтобы применить на практике новые знания
  • Ознакомиться хотя бы с двумя фреймворками
  • Начать работу с IDE (средой разработки), Github, хостингом, сервисами и т. д.

Так вы станете младшим разработчиком (джуном) Python.

Теперь план по неделям.

EDISON Software - web-development
Статья переведена при поддержке компании EDISON Software, которая дает дельные советы юниорам, а также проектирует программное обеспечение и пишет ТЗ на русском и английском.


Первая неделя: познакомьтесь с Python


Разберитесь как все устроено в Python. Проверьте как можно больше вещей.

  • День 1: 4 основных концепта (4 часа): ввод, вывод, переменная, условия
  • День 2: 4 основных концепта (5 часов): список, цикл for, цикл while, функция, импорт модулей
  • День 3: Простые проблемы программирования (5 часов): поменять местами две переменные, перевести градусы Цельсия в градусы по Фаренгейту, посчитать сумму всех разрядов в числе, проверить число на простоту, сгенерировать случайное число, удалить дубликат из списка
  • День 4: Проблемы программирования средней сложности (6 часов): перевернуть строку (проверить на палиндром), посчитать наибольший общий делитель, объединить два отсортированных массива, написать игру на угадывание чисел, посчитать возраст и т.д.
  • День 5: Структуры данных (6 часов): стек, очередь, словарь, кортежи, связный список
  • День 6: ООП — Объектно-ориентированное программирование (6 часов): объект, класс, метод и конструктор, ООП наследование
  • День 7: Алгоритм (6 часов): поиск (линейный и бинарный), сортировка (методом пузырька, выбором), рекурсивная функция (факториал, ряд Фибоначчи), временная сложность алгоритмов (линейных, квадратичных, константных)

Не устанавливайте Python:

Я понимаю, звучит противоречиво. Но поверьте мне. Я знаю кучу людей, у которых отпало всякое желание изучать что-либо после того как они не смогли установить среду разработки или ПО. Я советую сразу залезть в андроид приложение вроде Programming Hero или на сайт Repl и начать исследовать язык. Не ставьте себе задачу первым делом установить Python, если вы не особо подкованы технически.

Вторая неделя: начните разработку программного обеспечения (соберите проект)


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

  • День 1: Ознакомьтесь со средой разработки (5 часов): Среда разработки это интерактивная среда, где вы будете писать код для самых больших проектов. Вы должны хорошо знать хотя бы одну среду разработки. Я рекомендую начать с VS code install Python extension или Jupyter notebook
  • День 2: Github (6 часов): Изучите Github, создайте репозиторий. Попробуйте закоммитить, запушить код, вычислить разницу между двумя любыми Git деревьями. Также разберитесь с ветвлением, слиянием и пул реквестами.
  • День 3: Первый проект: Простой Калькулятор (4 часа): Ознакомьтесь с Tkinter. Создайте простой калькулятор.
  • День 4, 5, 6: Личный проект (5 часов каждый день): Выберите один из проектов и начните над ним работу. Если у вас нет идей для проекта, посмотрите этот список: несколько хороших проектов на Python
  • День 7: Хостинг (5 часов): Разберитесь с сервером и хостингом, чтобы хостить свой проект. Настройте Heroku и задеплойте сборку вашего приложения.

Почему проект:

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

Третья неделя: освойтесь как программист


Ваша цель на 3 неделе получить общее представление о процессе разработки ПО. Вам не нужно будет оттачивать ваши навыки. Но вы должны знать некоторые основы, так как они повлияют на вашу повседневную работу.

  • День 1: Основы баз данных (6 часов): Базовый SQL-запрос (Create Table, Select, Where, Update), Функция SQL (Avg, Max, Count), реляционная база данных (Нормализация), Внутреннее соединение, Внешнее соединение и т. д.
  • День 2: Используйте базы данных в Python (5 часов): Используйте фреймворк базы данных (SQLite или Pandas), подсоединитесь к базе данных, создайте и добавьте данные в несколько таблиц, считайте данные из таблиц
  • День 3: API (5 часов): Научитесь вызывать API, подучите JSON, микросервисы, REST API
  • День 4: Numpy (4 часа): Ознакомьтесь с Numpy и попрактикуйтесь в его использовании на первых 30 упражнениях
  • День 5, 6: Портфолио сайта (5 часов каждый день): Выучите Django, создайте портфолио сайта на Django, также взгляните на фреймворк Flask
  • День 7: Юнит-тесты, логи, отладка (4 часа): Разберитесь с юнит-тестами (PyTest), научитесь работать с логами и проверять их и используйте брейкпоинты

Реальный масштаб времени (Секрет):

Если вы болеете этой темой и посвящаете ей всего себя, то сможете сделать все за месяц.

  • Учите Python постоянно. Начинайте в 8 утра и занимайтесь этим до 5 вечера. Сделайте перерыв на обед и перекусы (в общей сложности час)
  • В 8 утра составьте список вещей, которые вы будете изучать сегодня. После уделите час времени, чтобы вспомнить и опробовать на практике все, что выучили вчера.
  • C 9 утра до 12 часов дня учите и практикуйтесь поменьше. После обеда наберите обороты. Если вы застряли на какой-то проблеме, поищите ее решение в сети.
  • Каждый день тратьте по 4-5 часов на обучение и 2-3 часа на практику. (максимум можете устроить себе один выходной в неделю)
  • Ваши друзья решат, что вы сумасшедший. Не разочаровывайте их — соответствуйте образу.

Если вы работаете полный рабочий день или учитесь в универе, то вам потребуется больше времени. Будучи студентом мне потребовалось 8 месяцев, чтобы сделать все указанное в списке. Сейчас я работаю старшим разработчиком (сеньором). Моей жене, которая работает в центральном банке США, потребовалось полгода, чтобы закончить все задачи из списка. Неважно сколько времени потребуется. Закончите список.

Четвертая неделя: серьезно отнеситесь к тому, чтобы получить работу (стажера)


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

  • День 1: Резюме (5 часов): Создайте одностраничное резюме. В верхней части резюме разместите краткие сведения о своих навыках. Обязательно добавьте список своих проектов с ссылками на Github.
  • День 2: Портфолио сайта (6 часов): Напишите несколько блогов. Добавьте их в предыдущее портфолио сайта, которое вы сделали.
  • День 3: Профиль LinkedIn (4 часа): Создайте профиль в LinkedIn. Перенесите в LinkedIn все, что есть у вас в резюме.
  • День 4: Подготовка к собеседованию (7 часов): Загуглите самые часто задаваемые вопросы на собеседованиях. Попрактикуйтесь в решении 10 проблем программирования, о которых спрашивают на собеседованиях. Делайте это на бумаге. Вопросы с собеседований можно найти на сайтах вроде Glassdoor, Careercup
  • День 5: Нетворкинг (~ часов): Выберитесь из чулана. Начните ходить на митапы, ярмарки вакансий. Познакомьтесь с рекрутерами и другими разработчиками.
  • День 6: Просто откликнитесь на вакансии (~ часов): Загуглите “работа Python”, посмотрите какие вакансии есть на LinkedIn и местных сайтах с предложениями работы. Выберите 3 вакансии, на которые вы откликнитесь. Настройте свое резюме под каждую из них. Найдите 2-3 вещи в списках требований, которые вы не знаете. Потратьте следующие 3-4 дня на то, чтобы в них разобраться.
  • День 7: Учитесь за счет отказов (~ часов): Каждый раз, когда вы получаете отказ, определите для себя 2 вещи, которые вы должны знать, чтобы получить работу. Затем потратьте 4-5 дней на то, чтобы отточить свое мастерство в этих вопросах. Таким образом, после каждого отказа вы будете становиться лучше как разработчик.

Готовность к работе:

Правда в том, что вы никогда не будете готовы к работе на 100%. Все что вам нужно это очень хорошо выучить 1-2 вещи. И ознакомиться с другими вопросами, чтобы преодолеть барьер собеседований. Как только вы получите работу, вы многому научитесь на ней.

Наслаждайтесь процессом:

Обучение это процесс. На вашем пути обязательно будут трудности. Чем их больше — тем вы лучше как разработчик.

Если вы сможете закончить список за 28 дней, вы большой молодец. Но даже если вы выполните 60-70% списка, вы разовьете необходимые качества и навыки. Они помогут вам стать программистом.

Где учиться:

Если вы все еще не знаете c чего начать,


Желаю вам увлекательного путешествия. Будущее в ваших руках.

Перевод: Диана Шеремьёва
Edison
351,86
Изобретаем успех: софт и стартапы
Поделиться публикацией

Комментарии 23

    0
    Вот отчего-то они и пытаются работать придти к нам, а не в смузи-розово-поневый инкубатор…
      +10
      API (5 часов): Научитесь вызывать API, подучите JSON, микросервисы, REST API.

      Кому-то может и 5 часов, я вот 5 лет уже изучаю.
        +1
        ну ИТ в целом это такой прикол
        Вход на джуна за месяц, потом всю жизнь учишься при том сам
        +13

        Неделя 5 — зарегистрируйтесь на Upwork и напишите, что вы senior Python developer. :-)

          –1
          Можно пойти на собеседование на мидла/синьора, сразу будет понятно, что надо подтянуть.
            +1

            Bonus points: скажите, что вы коренной англичанин/новозеландец/австралиец, родились и выросли в каком-нибудь Окленде, с густым индийским акцентом и кучей грамматических ошибок.


            Это, кстати, мой реальный опыт собеседования по Skype некоторых разработчиков с Upwork. При том, в объявлении никакой дискриминации по стране происхождения не было, я даже не понял, зачем так упираться и врать.

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

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


              Судя по тому, что установить python слишком сложно, и несколько часов на объяснение концепции переменных — около 0, или немного ниже.

              +2

                +6
                image

                А если коротко, читать книгу Марка Лутца по Python в двух частях (и уложить кашу в голове) — это примерно 2-3 месяца. А если человек прямо новичок, то это книга обязательна к прочтению.
                __

                Я вот сильно сомневаюсь, что человек с 2-3 опыта коммерческого программирования на php/java/js — сможет выполнить этот весь план в нужные строки. А если новичок, то тем более.

                Выучить Django за 2 дня по 5 часов — я прямо ОРУ! Что за дегенерат составлял этот план?
                  +1
                  А чо, так можно было? Я, будучи школьником, то есть имея несколько вагонов времени, за период чуть больше года только дохожу до той точки, когда уже можно пробовать заработать на этом денег. Кто неправильный, я или план автора оригинала? :)
                    0
                    Работать и делать вид, что работаешь. Чрезвычайно разные вещи. Так люди на работе 8 часов обычно делают вид. На практике означает, что они делают что-то с эффективностью на уровне нуля. Т.е никак. Вагон времени иметь не достаточно. Достаточно применить тот же Pomodoro. И тут главное. Эти 25 минут — абсолютная концентрация на работе. Никаких котов, хабров. Ничего, кроме тебя и задачи. А ещё эту задачу надо делать с максимальной эффективностью. Желательно так, что лучше её выполнить невозможно. Чтобы мозг кипел. Буквально, чтобы он был за эти 25 минут изнасилован от перенапряжения. 5 минут отдых. И следующий цикл. И в таком режиме весь день. Все 16 часов времени. А за ним следующий. А за ним месяц. А за ним… Так вот месяц — это очень много времени за которое можно совершить невозможное. А учиться, имея несколько вагонов времени можно всю жизнь. Когда я был школьником. Я эти 45 минут себя не насиловал. А просто «учился», по накатанной. В общем темпе. 11 лет бездарно проигранной жизни и в пустоту ушедших вагонов времени. Я как представлю, если бы я действительно учился. А не как все. Делал вид… Вот и вся разница. Этот момент хорошо описан в книге «Программист-фанатик». Совет 28. Восьмичасовое пламя. Если рабочего времени слишком много, его реальная ценность заметно снижается.
                    +2
                    Я тоже начинаю изучать python. Начал изучать после видеоролика на ютубе «Учим Python за 1 час! #От Профессионала». За час конечно не выучил) Но за пару часов установил Python и написал скрипт, который показывает прогноз погоды и курс валют. Чем дальше, тем интересней. image
                      0
                      Какие API для этого использовали?
                        0
                        openweathermap и приватбанка
                        0

                        Отлично!


                        А теперь выровняйте все числа, принадлежащие к одной группе, чтобы получилось как в оформленных по ГОСТу таблицах:


                          24.10
                         122.01
                           1.23

                        Температуру можно округлить до целых.


                        15 минут должно хватить :)

                          0
                          Ясно, буду знать. Нет 15 минут:)
                          Уже поставил django 2.2.6. Пол воскресенья потратил, что бы установить и написать первое приложение. Познакомился с sqlite и миграциями.
                          Всю жизнь знал только MySQL. Много всего интересного и нового. Это праздник души. Не могу избавиться от привычки в конце строки ставить;
                            +1

                            С PostgreSQL ознакомьтесь при случае, тоже много интересного. :)


                            Джанго — ну, такое. Изучить стоит, но это такая вещь, со своими ограничениями, для определенного круга задач хорошо подходит — но временами хвост начинает вилять собакой. Я, если бы писал на Python, смотрел на Pylons/Pyramid.

                        0
                        You start learn python — you stay in Wonderland and I show you how deep the rabbit-hole goes.
                        Ну а по сабжу вот как выглядит сама крупная ошибка в жизни, многих разработчиков.
                        image
                          0
                          В чем состоит основная слабость подобных этому планов? В том, что человеку, который еще ничего не умеет (судя по плану, начинающемуся с переменных и т.п. самых простых вещей) уже навязано решение изучить именно этот язык. А не какой-то другой, с которого, возможно, было бы начать сильно проще. Ну то есть, поставленная цель:

                          >Так вы станете младшим разработчиком (джуном) Python.

                          она даже не обсуждается, как будто других вариантов не существует в природе. При том, что вариантов этих — вагон. Python не может быть целью в жизни, он лишь инструмент для достижения целей, совершенно других целей. Причем развилки в этих целях вполне могут поменять набор изучаемых тем радикально.
                            +1
                            Все помнят анекдот про пастуха и бизнес-консультанта?
                            Который верни мою собаку?
                            Так вот, на всякий случай. Две змеи на КДПВ к питонам отношения не имеют никакого. Это кобры, причем в позе угрозы.
                              0
                              Дайте-ка я угадаю, вы — консультант!

                              «ты появился, когда никто
                              тебя не звал, хочешь получить плату за ответ, который я уже знаю, на
                              вопрос, который тебе никто не задавал, и к тому же ты ни хрена не
                              смыслишь в моей работе.»
                                0
                                (Хлопая глазками)
                                А у меня уже правда получается, как у настоящего, да?

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

                            Самое читаемое