Как учиться по этому курсу
Технические курсы, которые читают как книгу, не работают. Через две недели после прочтения вы помните общие идеи, но не помните, какой заголовок передать в requests.get, чтобы получить gzip-сжатый ответ. Это нормально — мозг устроен так, что моторная память (пальцы на клавиатуре) и декларативная (текст в голове) хранятся в разных местах.
Этот урок — про то, как настроить процесс, чтобы знания реально оседали. Минимум 30 минут на чтение этого урока — потому что без правильной настройки следующие 50 часов курса будут просто чтением, а не обучением.
Главное правило: терминал параллельно с уроком
Откройте этот курс в одной половине экрана, терминал — в другой. Каждая команда curl или Python-скрипт в уроке должна быть выполнена руками. Не скопирована в clipboard — а напечатана пальцами.
Почему именно пальцами, а не copy-paste? Потому что когда вы печатаете curl -X POST -H 'Content-Type: application/json' -d '{"name":"test"}' https://httpbin.org/post, ваш мозг запоминает: метод, заголовок, тело, URL. Это активная работа. Когда вы делаете Cmd+C / Cmd+V, мозг ничего не запоминает — он занят чем-то другим. Через неделю вы помните «была какая-то команда для POST», но не помните, как.
Backend-инженеры с 5-10 годами опыта набирают curl -v и httpie на автомате — мышцы пальцев знают эти команды без участия мозга. Так получается только через тысячи повторений. Начните формировать эту привычку с первого модуля.
Что нужно установить
Для курса вам понадобятся следующие инструменты. Я даю минимальный список — без него никак — и опциональный, который сделает учёбу приятнее.
Проверка установки — вот эти команды должны отработать без ошибок:
python3 --version
# Python 3.13.x (или 3.11+)
curl --version
# curl 8.x.x ...
# Опционально:
http --version
# 3.x.x
jq --version
# jq-1.7.x
Python-библиотеки, которые понадобятся в курсе, мы будем ставить по ходу — но если хотите подготовиться, создайте виртуальное окружение и установите базовый набор сразу.
mkdir -p ~/api-sandbox
cd ~/api-sandbox
python3 -m venv .venv
source .venv/bin/activate # на Windows: .venv\Scripts\activate
pip install requests==2.34.* httpx==0.28.* pydantic==2.* pyyaml
Создайте api-sandbox
Через пару уроков мы будем экспериментировать с API. Чтобы не засорять реальные проекты, заведите отдельную директорию для упражнений:
mkdir -p ~/api-sandbox
cd ~/api-sandbox
Все упражнения курса делаются именно тут. Каждая практика — отдельная поддиректория:
~/api-sandbox/
├── lesson-01-http/ # упражнение из модуля 2
├── lesson-03-json/ # из модуля 4
├── lesson-05-requests/ # из модуля 6
└── ...
Не бойтесь сломать что-то в этой директории. Если venv накосорезил — удалите .venv/ и создайте заново. Это песочница, на то она и песочница.
Никогда не делайте rm -rf в директории, где могут быть важные файлы. Перед командой удаления — pwd и убедитесь, что вы в ~/api-sandbox/, а не в ~/Projects/work-stuff/.
Используйте публичные API для практики
Чтобы не разворачивать свой сервер на каждом уроке, мы будем использовать публичные тестовые API. Это стандартный набор — все API в курсе из этого списка:
Все эти API доступны без регистрации (кроме OpenWeather — но это бесплатно за 30 секунд). Не надо разворачивать ничего у себя на машине.
Делайте упражнения и решайте квизы
В конце большинства уроков — блок «Попробуй сам» с конкретным заданием. Это не риторика. Делайте каждое задание руками, даже если оно кажется элементарным. Цель — мышечная память.
После каждого урока — квиз из 4-5 вопросов. Тоже не пропускайте. Квизы построены так, чтобы вытащить «вроде понял» и проверить на «реально понял». Если вы ответили неправильно — не идите дальше, перечитайте раздел.
Учите флаги через --help и man
В курсе мы покажем ключевые флаги для каждого инструмента. Но curl сам по себе — огромный, у него больше 250 флагов. Прокрутите man curl или curl --help all и посмотрите, что там есть. Не запоминайте — просто знайте, где искать.
curl --help # короткая справка
curl --help all # все доступные опции
man curl # подробный мануал
# Для Python библиотек:
python3 -c "import requests; help(requests.get)"
Через полгода вы будете рефлекторно пробивать --help или dir()/help() в Python, когда увидите незнакомую команду или функцию, и это сэкономит тысячи походов в Google.
Хорошая привычка: когда вам в курсе встретилась новая команда или библиотека, потратьте 30 секунд на справку, проскрольте первый экран. Это закрепляет знание и даёт периферийное зрение — вы видите, какие ещё опции есть, даже если не запоминаете их.
Следите за безопасными и опасными запросами
HTTP-методы делятся на две категории:
Safe-методы запускайте без страха — curl -I (HEAD) и curl -X OPTIONS для исследования API это здоровая привычка. Modifying — сначала подумайте, что произойдёт на сервере, потом нажимайте Enter. Особенно с DELETE на реальных production API.
В sandbox можете крутить любые запросы свободно. Тем более httpbin.org ничего не сохраняет — там всё just for echo.
Ритм: 1 модуль за 2 дня = 1.5-2 часа в день
Найдите фиксированное время в дне для курса. Утро перед работой, вечер после, выходные — неважно, важна регулярность. Курс отлично заходит за 1.5-2 часа в день, по половине модуля. За 4-5 недель заканчивается полный курс.
Не делайте марафоны. Если по 8 часов в день — на третий день усталость не даст ничего усвоить. Лучше 2 часа в день каждый день.
Когда станет страшно — это нормально
В этом курсе будут моменты, когда вы прочитаете «OAuth2 Authorization Code flow с PKCE» и подумаете «я это никогда не пойму». Это нормально. Любой backend-инженер первый раз читал спецификацию OAuth2 и думал то же самое. Через две-три попытки картинка собирается.
Если урок не зашёл с первого раза — это сигнал, что нужно: (а) выполнить все команды руками, (б) перечитать через день, (в) посмотреть на свой curl-вывод и понять, что в нём изменилось. Не сигнал, что курс «слишком сложный» или «вы не понимаете API». Все понимают, у всех первый раз был такой же.
Готовы? В следующем модуле начинаем — с того, что такое HTTP, как он устроен, и почему весь современный веб говорит на одном этом протоколе.