Что вы должны уметь к старту
Курс — про структуры данных и алгоритмы, а не про Python с нуля. Поэтому минимальный навык владения языком обязателен. Если что-то из списка вам незнакомо — лучше сначала пройти Python 01 или эквивалент.
Если все пункты понятны — можно начинать. Если нет — сначала Python 01.
Если 5+ пунктов вызывают вопрос — стоп. Не теряйте время на этот курс, сначала разберитесь с Python. Эффективнее.
Переменные, типы и выражения Python Управляющие конструкции PythonЧто не нужно знать
Чтобы не пугаться — вот чего не требуется:
- ООП и классы — мы пишем мало классов, в основном функции и встроенные структуры. Когда понадобится, объясним.
- Декораторы, генераторы, async — затронем по минимуму там, где нужно (timeit, итераторы). Если знаете — здорово, нет — не страшно.
- Numpy/pandas — нет, мы делаем замеры на чистом Python. Numpy появится в одном-двух уроках для воспроизведения branch prediction.
- Любой матан — нет. Big-O — это «верхняя граница на скорости роста», без формального epsilon-delta. Если умеете считать, сколько раз будет выполнен вложенный цикл, всё ок.
- Алгоритмическая олимпиадная подготовка — наоборот, мы про практику, не про «найдите k-ю минимальную подматрицу за O(n log n)».
Установка Python 3.13
Курс рассчитан на Python 3.13. Это важно: некоторые числа измерений зависят от версии (например, dict layout менялся в 3.6, free-threading появился в 3.13). Если у вас 3.11 или 3.12 — на 90% уроков разницы не будет, но мы рекомендуем именно 3.13.
uv в глубину: менеджер Python-окруженийСпособ 1: uv (рекомендуем)
uv — современный менеджер от Astral. Один бинарь заменяет pyenv + pip + virtualenv. Установка:
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Дальше:
# Установите Python 3.13
uv python install 3.13
# Создайте проект для этого курса
mkdir dsa-course && cd dsa-course
uv init --python 3.13
uv add ipython rich # для удобного REPL и красивого вывода
# Запускайте всё через uv run
uv run python --version
# Python 3.13.x
Способ 2: системный Python (если не хотите uv)
# macOS через homebrew
brew install [email protected]
# Ubuntu/Debian
sudo apt install python3.13 python3.13-venv
# Windows — официальный installer с python.org
Дальше создайте virtual environment:
python3.13 -m venv .venv
source .venv/bin/activate # macOS/Linux
# .venv\Scripts\activate # Windows
pip install ipython rich
На macOS системный Python зарезервирован для самой ОС. На Linux часто стоит несколько версий. Всегда работайте в venv или через uv — это избавит от 90% «у меня не запускается».
Проверка установки
Создайте файл check.py:
import sys
import platform
print(f"Python: {sys.version}")
print(f"Implementation: {platform.python_implementation()}")
print(f"Machine: {platform.machine()}")
# Простейший бенчмарк — должен пройти за секунды
import timeit
t = timeit.timeit('sum(range(1_000_000))', number=10)
print(f"sum(range(1M)) x10: {t:.3f}s")
Запустите:
python check.py
# или: uv run python check.py
Ожидаемый вывод (числа будут разные):
Python: 3.13.0 (...)
Implementation: CPython
Machine: arm64
sum(range(1M)) x10: 0.23s
Если всё работает — поздравляем, готовы.
Это базовый toolkit на весь курс. Ничего экзотического.
Терминал-минимум
Если вы редко работаете в командной строке — освойте эти команды до начала курса:
# Навигация
pwd # где я сейчас
cd path/to/dir # перейти в каталог
cd .. # на уровень выше
ls -la # список файлов
# Файлы
touch file.py # создать пустой файл
mkdir new_dir # создать каталог
rm file.py # удалить файл
# Запуск Python
python script.py # запустить скрипт
python -c "print(1)" # выполнить inline
python -m timeit ... # запустить модуль stdlib
Этого достаточно для всего курса. Сложного не будет.
Все примеры работают в обычном cmd или PowerShell. Если хотите bash-окружение — используйте WSL2 (Windows Subsystem for Linux). Это сэкономит много нервов на путях с обратными слешами и кодировках.
Что делать прямо сейчас
- Поставьте Python 3.13 через
uv(или venv). - Запустите
check.pyиз этого урока — убедитесь, что всё работает. - Заведите рабочий каталог для курса, например
~/projects/dsa-course/. В нём будут лежать все скрипты-замеры. - Открыйте редактор, в котором вам удобно — VS Code, PyCharm, vim, что угодно.
Если все четыре шага сделаны — переходите к следующему уроку про как учиться. Иначе застрянете.