[Из песочницы] Как не стать Python-разработчиком

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

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

Составляя программу, я ориентировался на философию Тима Петерса, который сформулировал The Zen of Python:

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

4w2hysmvlnpokeeaeq-dtvsjwpo.png

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


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

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

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


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

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


  • Освоить основы работы с Bash
  • Набить шишки с Git: простое руководство, основательный Pro Git, клевый Oh shit, git!
  • *Разобраться в SSH


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


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


mwwzv2wh__tdfqakqs8g262doxc.png

Выбор разработчиков, проходивших интервью в 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 на практике


  • Прочитать Python Deliberate Practice для вдохновения и подобрать проекты для практики
  • Не сачковать в изучении документации
  • Научиться оформлять код и структурировать проекты
  • Освоить встроенные функции
  • Разобраться в ООП
  • Потрогать руками функциональное программирование


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


  • *На Степике
  • *От МФТИ и Мейл-ру
  • *Знаменитый CS50


ydcay3kqkspuutdzztms8w2m9z0.jpeg

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


  • Взглянуть на подборку Awesome Python
  • Исследовать библиотеки для анализа данных: numpy, scipy, pandas, matplotlib, seaborn, scikit-learn
  • Научиться работать с json
  • Разобраться в requests, scrapy, Beautiful Soup


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


  • Научиться писать SELECT запросы средней сложности
  • *Познакомиться с реляционной алгеброй


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


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

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

© Habrahabr.ru