[Из песочницы] Как не стать Python-разработчиком
Как выглядит трек обучения программированию на Python с нуля? С чего стоит начать? На чем сделать акцент? Как не потерять интерес?
Полгода я искал ответы на эти вопросы, тщательно исследуя предметную область. Я обнаружил много полезных советов. Особенно в заметке Василия Большакова и на Хекслете. Но мне не хватало структуры. Знания нарастали со всех сторон и превращались в кучу. Чтобы структурировать процесс обучения и оценить его масштаб, я собрал план.
Составляя программу, я ориентировался на философию Тима Петерса, который сформулировал The Zen of Python:
Простое лучше, чем сложное
Сложное лучше, чем запутанное
Практичность важнее безупречности
Ошибки никогда не должны замалчиваться
Сейчас лучше, чем никогда…
План обучения
В разработке я новичок, поэтому мой путь начинался с самых азов. На текущий момент я прошел примерно половину. Скорее всего я что-то упустил, в чем-то не разобрался как следует. Если вы хотите поделиться опытом или советом, то смело пишите в комментарии. Также важно отметить, что трек обучения рассчитан на пользователей Мак ОС.
Другие платформы имеют свои особенности, о них говорить мы не будем.
Программа разбита по шагам. Последовательность условная. Внутри каждого шага есть задачи со звездочкой — желательные, но необязательные.
1. Понять зачем вам это надо
У меня две цели: быстро проводить анализ данных и создавать прототипы для проверки идей. Для этого мне достаточно знать несколько подходящих библиотек, понимать чужой код и немного писать свой. Какая цель у вас?
2. Подружиться с командной строкой
- Освоить основы работы с Bash
- Набить шишки с Git: простое руководство, основательный Pro Git, клевый Oh shit, git!
- *Разобраться в SSH
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 на практике
- Прочитать Python Deliberate Practice для вдохновения и подобрать проекты для практики
- Не сачковать в изучении документации
- Научиться оформлять код и структурировать проекты
- Освоить встроенные функции
- Разобраться в ООП
- Потрогать руками функциональное программирование
Для тех кто любит онлайн-курсы
- *На Степике
- *От МФТИ и Мейл-ру
- *Знаменитый CS50
5. Полистать библиотеки
- Взглянуть на подборку Awesome Python
- Исследовать библиотеки для анализа данных: numpy, scipy, pandas, matplotlib, seaborn, scikit-learn
- Научиться работать с json
- Разобраться в requests, scrapy, Beautiful Soup
6. Пощупать базы данных
- Научиться писать SELECT запросы средней сложности
- *Познакомиться с реляционной алгеброй
Дополнительно
Пайтон на одной картинке
Карта развития разработчика
Книги «на все времена»
Спасибо Андрею Свердлову за дельные комментарии.