Compare versions

From:To:
+66~10
## Зачем это всёAdded
Зачем это всё

Настроенный редактор экономит больше времени, чем любой приём программирования: он подсвечивает опечатку до запуска, показывает тип под курсором и форматирует файл сам.

Это не подготовка к работе — это уже работа. В MIT есть отдельный курс The Missing Semester of Your CS Education, созданный ровно потому, что программы учат алгоритмам, но не инструментам, хотя за инструментами человек проводит сотни часов за учёбу и тысячи за карьеру.

Порядок шагов важен: сначала редактор, потом инструменты, потом проверка каждого по отдельности. Если проверять всё разом в конце, непонятно, что именно не встало.


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

Пакетный менеджерRecommendedChanged

Windows: ничего делать не надо — winget встроен в систему. Проверь командой ниже.

macOS: поставь Homebrew — команда установки есть на главной странице. После установки он напечатает две строки, которые надо выполнить, чтобы brew попал в PATH — не пропусти их, это самая частая ошибка. Проверяется командой brew --version.

was: **Windows:** ничего делать не надо — `winget` встроен в систему. Проверь командой ниже. **macOS:** поставь Homebrew — **[brew.sh](https://brew.sh/)**. Команда установки есть на главной странице. После установки он напечатает две строки, которые надо выполнить, чтобы `brew` попал в PATH — не пропусти их, это самая частая ошибка. Проверяется командой `brew --version`.
refs changed
winget --version
Установить VS CodeChanged

Windows: команда ниже. При установке вручную отметь галочку «Add to PATH».

macOS: brew install --cask visual-studio-code. Если ставишь вручную — перетащи приложение в папку Applications, иначе часть функций работать не будет.

was: Скачать вручную: **[code.visualstudio.com/download](https://code.visualstudio.com/download)** **Windows:** команда ниже. При установке вручную отметь галочку «Add to PATH». **macOS:** `brew install --cask visual-studio-code`. Если ставишь вручную — перетащи приложение в папку Applications, иначе часть функций работать не будет. Инструкция: **[настройка VS Code на macOS](https://code.visualstudio.com/docs/setup/mac)**
refs changed
winget install Microsoft.VisualStudioCode
Проверить, что команда code доступна в терминале

Открой новый терминал — старый не знает об изменении PATH.

Если команда не найдена на Windows: переустанови с галочкой «Add to PATH».

Если на macOS: открой VS Code, нажми Cmd+Shift+P и выполни команду «Shell Command: Install 'code' command in PATH».

code --version
Поставить расширение PythonChanged

Команда одинаковая на Windows и macOS.

Расширение даёт подсветку, переход к определению, запуск и отладку. Вместе с ним автоматически приезжает Pylance — проверка типов и автодополнение.

was: Страница расширения: **[Python на Marketplace](https://marketplace.visualstudio.com/items?itemName=ms-python.python)** Команда одинаковая на Windows и macOS. Расширение даёт подсветку, переход к определению, запуск и отладку. Вместе с ним автоматически приезжает Pylance — проверка типов и автодополнение.
refs changed
code --install-extension ms-python.python
Поставить RuffChanged

Команда одинаковая на обеих системах.

Линтер и форматтер в одном инструменте. Тот же самый, который будет проверять код в проекте, — важно, чтобы редактор и проект ругались одинаково.

was: Страница расширения: **[Ruff на Marketplace](https://marketplace.visualstudio.com/items?itemName=charliermarsh.ruff)** Команда одинаковая на обеих системах. Линтер и форматтер в одном инструменте. Тот же самый, который будет проверять код в проекте, — важно, чтобы редактор и проект ругались одинаково.
refs changed
code --install-extension charliermarsh.ruff
Поставить Docker и GitLensRecommendedChanged

Команда одинаковая на обеих системах.

Docker покажет контейнеры и их логи прямо в редакторе. GitLens показывает, кто и когда менял конкретную строку.

was: Страницы расширений: **[Docker](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker)** и **[GitLens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens)** Команда одинаковая на обеих системах. Docker покажет контейнеры и их логи прямо в редакторе. GitLens показывает, кто и когда менял конкретную строку.
refs changed
code --install-extension ms-azuretools.vscode-docker --install-extension eamodio.gitlens
**Почему ставим по одному, а не пакетом «всё для Python».**Added

Почему ставим по одному, а не пакетом «всё для Python».

Каждое расширение — работающий процесс и потенциальный источник конфликта: два форматтера начнут переписывать файл друг за другом, и ты будешь гадать, почему код прыгает при сохранении.

Ставя по одному, ты знаешь, кто за что отвечает, и понимаешь, что отключать при странном поведении.

Открыть встроенный терминал

Windows: Ctrl + ` (клавиша с обратным апострофом, слева от единицы).

macOS: Ctrl + ` (именно Control, не Command).

Либо меню View → Terminal на обеих системах.

Понять, какая оболочка запущена

В правом верхнем углу панели терминала написано имя оболочки. Запомни его.

Windows: обычно PowerShell, реже Command Prompt или Git Bash.

macOS: по умолчанию zsh. Проверить можно командой echo $SHELL.

Проверить PythonChanged

Нужна версия 3.12 или новее.

Windows: команда python --version. Ставь с python.org, не из Microsoft Store. При установке отметь «Add python.exe to PATH».

macOS: команда python3 --version — именно python3. Системный Python старый и трогать его нельзя — ставь свой: brew install python@3.12 либо позже через uv python install 3.12.

was: Скачать: **[python.org/downloads](https://www.python.org/downloads/)** · страница для macOS: **[python.org/downloads/macos](https://www.python.org/downloads/macos/)** Нужна версия 3.12 или новее. **Windows:** команда `python --version`. Ставь с python.org, не из Microsoft Store. При установке отметь «Add python.exe to PATH». **macOS:** команда `python3 --version` — именно python3. Системный Python старый и трогать его нельзя — ставь свой: `brew install python@3.12` либо позже через `uv python install 3.12`.
why, refs changed
python --version
Убедиться, что запускается именно тот Python

Команда покажет все найденные интерпретаторы в порядке приоритета. Первый в списке — тот, который запустится.

Windows: where python

macOS: which -a python3

where python
Проверить gitChanged

Windows: при установке можно оставить настройки по умолчанию — вместе с git приедет Git Bash.

macOS: проще всего xcode-select --install — git входит в Command Line Tools. Либо свежее версией: brew install git.

was: Скачать: **[git-scm.com/downloads](https://git-scm.com/downloads)** · страница для macOS: **[git-scm.com/download/mac](https://git-scm.com/download/mac)** **Windows:** при установке можно оставить настройки по умолчанию — вместе с git приедет Git Bash. **macOS:** проще всего `xcode-select --install` — git входит в Command Line Tools. Либо свежее версией: `brew install git`.
refs changed
git --version
Проверить DockerChanged

Windows: скачать с сайта или winget install Docker.DockerDesktop.

macOS: brew install --cask docker-desktop. При ручной загрузке выбери правильную сборку: Apple Silicon для M1–M4 или Intel для старых машин. Посмотреть свой процессор: ⌘ → «Об этом Mac».

На обеих системах Docker должен быть не просто установлен, а ЗАПУЩЕН — значок кита в трее или в верхней панели.

was: Скачать: **[Docker Desktop](https://www.docker.com/products/docker-desktop/)** · через Homebrew: **[cask docker-desktop](https://formulae.brew.sh/cask/docker-desktop)** **Windows:** скачать с сайта или `winget install Docker.DockerDesktop`. **macOS:** `brew install --cask docker-desktop`. При ручной загрузке выбери правильную сборку: **Apple Silicon** для M1–M4 или **Intel** для старых машин. Посмотреть свой процессор: ⌘ → «Об этом Mac». На обеих системах Docker должен быть не просто установлен, а **ЗАПУЩЕН** — значок кита в трее или в верхней панели.
refs changed
docker run --rm hello-world
Установить uvChanged

Windows: winget install astral-sh.uv

macOS: brew install uv либо официальный установщик: curl -LsSf https://astral.sh/uv/install.sh | sh

После установки закрой терминал и открой заново.

was: Инструкция для всех систем: **[docs.astral.sh/uv — установка](https://docs.astral.sh/uv/getting-started/installation/)** **Windows:** `winget install astral-sh.uv` **macOS:** `brew install uv` либо официальный установщик: `curl -LsSf https://astral.sh/uv/install.sh | sh` После установки закрой терминал и открой заново.
refs changed
winget install astral-sh.uv
Проверить uv

Команда одинаковая на обеих системах.

Если команда не найдена — терминал ещё помнит старый PATH. Закрой все терминалы и открой новый. На macOS при установке через скрипт проверь, что в PATH добавился ~/.local/bin.

uv --version
Создать папку проекта по короткому пути

Никаких пробелов, никакой кириллицы, не на Рабочем столе и не в облачной папке.

Windows: mkdir C:\dev\shop — не в OneDrive.

macOS: mkdir -p ~/dev/shop — не в iCloud Drive и не в папке «Документы», если у тебя включена синхронизация Рабочего стола и Документов.

mkdir C:\dev\shop
Открыть папку в VS Code

File → Open Folder, либо командой из терминала.

Windows: code C:\dev\shop

macOS: code ~/dev/shop

code C:\dev\shop
Включить форматирование при сохраненииChanged

Windows: Ctrl+Shift+P → «Preferences: Open Workspace Settings (JSON)»

macOS: Cmd+Shift+P → та же команда

Добавь настройку editor.formatOnSave со значением true и назначь Ruff форматтером для Python.

refs changed
Проверить, что форматирование работает

Создай файл check.py, напиши в нём строку с намеренно кривыми отступами и лишними пробелами, сохрани. Оформление должно поправиться само. После проверки файл удали.

Added
Added
Added
## ГотовоAdded
Готово

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

Что дальше: git и GitHub — ключи, клонирование, первая ветка. А затем первый pull request целиком, на безобидной правке README, чтобы к моменту появления настоящего кода механика уже была в руках.

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

## Зачем это всёRemoved
## Зачем это всё Настроенный редактор экономит больше времени, чем любой приём программирования: он подсвечивает опечатку **до** запуска, показывает тип под курсором и форматирует файл сам. Это не подготовка к работе — это уже работа. В MIT есть отдельный курс [The Missing Semester of Your CS Education](https://missing.csail.mit.edu/), созданный ровно потому, что программы учат алгоритмам, но не инструментам, хотя за инструментами человек проводит сотни часов за учёбу и тысячи за карьеру. Порядок шагов важен: сначала редактор, потом инструменты, потом проверка каждого по отдельности. Если проверять всё разом в конце, непонятно, что именно не встало. --- **Список работает и на Windows, и на macOS.** В поле команды у каждого шага — вариант для Windows, а в описании рядом всегда есть команда для macOS и прямая ссылка на официальную страницу загрузки — на случай, если пакетный менеджер не работает.
**Почему ставим по одному, а не пакетом «всё для Python».**Removed
**Почему ставим по одному, а не пакетом «всё для Python».** Каждое расширение — работающий процесс и потенциальный источник конфликта: два форматтера начнут переписывать файл друг за другом, и ты будешь гадать, почему код прыгает при сохранении. Ставя по одному, ты знаешь, кто за что отвечает, и понимаешь, что отключать при странном поведении.
Removed
Removed
Removed
## ГотовоRemoved
## Готово Если все проверки пройдены — рабочее место настроено, и дальше можно заниматься кодом, а не выяснять, почему команда не находится. **Что дальше:** git и GitHub — ключи, клонирование, первая ветка. А затем первый pull request целиком, на безобидной правке README, чтобы к моменту появления настоящего кода механика уже была в руках. Если какой-то шаг не сошёлся — не переходи дальше. Незакрытая проблема в окружении не рассасывается, а всплывает через две недели в самый неудобный момент.