🧙 Садовник: уточнил шаги, добавил проверки и обоснования. Примите, если полезно.

#1
open+210~102proposed by devops · Aug 8, 2026 · based on v4
Proposed changes · v4 → suggestion
+4490
1¶ ## Зачем это всё
2
3 Настроенный редактор экономит больше времени, чем любой приём программирования: он подсвечивает опечатку **до** запуска, показывает тип под курсором и форматирует файл сам.
4
5 Это не подготовка к работе — это уже работа. В MIT есть отдельный курс [The Missing Semester of Your CS Education](https://missing.csail.mit.edu/), созданный ровно потому, что программы учат алгоритмам, но не инструментам, хотя за инструментами человек проводит сотни часов за учёбу и тысячи за карьеру.
6
7 Порядок шагов важен: сначала редактор, потом инструменты, потом проверка каждого по отдельности. Если проверять всё разом в конце, непонятно, что именно не встало.
8
9 ---
10
11 **Список работает и на Windows, и на macOS.** В поле команды — вариант для Windows, в описании рядом — команда для macOS. Ссылки на официальные страницы загрузки прикреплены к шагам — на случай, если пакетный менеджер не работает.
121## Подготовка
131. Пакетный менеджер [recommended]
14 **Windows:** ничего делать не надо `winget` встроен в систему. Проверь командой ниже.
2+1. Выбрать место для проекта [recommended]
3+ Создай короткий путь без пробелов, кириллицы и облачной синхронизации. Это снизит шанс странных проблем с путями и доступом.
4+ why: Короткий локальный путь делает команды и инструменты предсказуемее: меньше шансов упереться в кавычки, пробелы и синхронизацию облака.
5+ - [ ] Папка будет лежать не на Рабочем столе
6+ - [ ] Путь не содержит пробелов и кириллицы
7+2. Проверить пакетный менеджер [recommended]
8+ **Windows:** `winget` уже встроен в систему. Проверь командой ниже.
159
16 **macOS:** поставь Homebrew — команда установки есть на главной странице. После установки он напечатает две строки, которые надо выполнить, чтобы `brew` попал в PATH не пропусти их, это самая частая ошибка. Проверяется командой `brew --version`.
10+ **macOS:** поставь Homebrew — команда установки есть на главной странице. После установки выполни две строки, которые он напечатает для PATH, иначе `brew` может не попасть в терминал.
1711 $ winget --version
1812 why: Пакетный менеджер ставит программы одной командой и потом обновляет их все разом. Главное — такую установку можно записать и повторить на другой машине, а «скачать и кликнуть далее» — нельзя.
1913 - [ ] Команда пакетного менеджера твоей системы отвечает версией
20 - [ ] На macOS: выполнены строки про PATH, которые напечатал установщик
14+ - [ ] На macOS выполнены строки про PATH после установки
2115 → Homebrew — установка (macOS) — https://brew.sh/
2216## Редактор
232. Установить VS Code
24 **Windows:** команда ниже. При установке вручную отметь галочку «Add to PATH».
17+3. Установить VS Code
18+ **Windows:** команда ниже. При ручной установке отметь галочку **Add to PATH**.
2519
26 **macOS:** `brew install --cask visual-studio-code`. Если ставишь вручную перетащи приложение в папку Applications, иначе часть функций работать не будет.
20+ **macOS:** `brew install --cask visual-studio-code`. При ручной установке перенеси приложение в **Applications**.
2721 $ winget install Microsoft.VisualStudioCode
2822 why: VS Code — редактор, который становится полноценной средой разработки за счёт расширений. В отличие от тяжёлой IDE, ты сам решаешь, что в нём будет.
2923 - [ ] VS Code запускается
30 - [ ] В окне «About» видна версия редактора
24+ - [ ] В окне About видна версия редактора
3125 → Скачать VS Code — https://code.visualstudio.com/download
3226 → Настройка на macOS — https://code.visualstudio.com/docs/setup/mac
333. Проверить, что команда code доступна в терминале
27+4. Проверить, что команда code доступна в терминале
3428 Открой **новый** терминал — старый не знает об изменении PATH.
3529
36 **Если команда не найдена на Windows:** переустанови с галочкой «Add to PATH».
30+ **Windows:** если команда не найдена, переустанови VS Code с галочкой **Add to PATH**.
3731
38 **Если на macOS:** открой VS Code, нажми Cmd+Shift+P и выполни команду «Shell Command: Install 'code' command in PATH».
32+ **macOS:** открой VS Code, нажми Cmd+Shift+P и выполни команду **Shell Command: Install 'code' command in PATH**.
3933 $ code --version
40 why: Дальше мы будем ставить расширения командами. Без code в PATH придётся кликать мышью по магазину расширений, а такую настройку невозможно повторить на другой машине.
34+ why: Дальше мы будем ставить расширения командами. Без `code` в PATH придётся кликать мышью по магазину расширений, а такую настройку невозможно повторить на другой машине.
4135 - [ ] Команда напечатала три строки: версию, хеш коммита и архитектуру
4236 - [ ] Терминал был открыт заново после установки
37+ → Проверка версии VS Code — https://code.visualstudio.com/docs/supporting/faq#_how-do-i-check-which-version-i-have
4338## Расширения
444. Поставить расширение Python
39+5. Поставить расширение Python
4540 Команда одинаковая на Windows и macOS.
4641
4742 Расширение даёт подсветку, переход к определению, запуск и отладку. Вместе с ним автоматически приезжает Pylance — проверка типов и автодополнение.
4843 $ code --install-extension ms-python.python
4944 why: Pylance находит ошибки статически: обращение к несуществующему атрибуту или неверный тип аргумента видно до запуска. Это дешевле, чем ловить то же самое, гоняя программу.
5045 - [ ] В панели Extensions расширение Python отмечено как установленное
51 - [ ] Там же появился Pylance — он ставится как зависимость, отдельно его ставить не надо
46+ - [ ] Появился Pylance как зависимость
5247 → Python на Marketplace — https://marketplace.visualstudio.com/items?itemName=ms-python.python
535. Поставить Ruff
48+6. Поставить Ruff
5449 Команда одинаковая на обеих системах.
5550
5651 Линтер и форматтер в одном инструменте. Тот же самый, который будет проверять код в проекте, — важно, чтобы редактор и проект ругались одинаково.
5752 $ code --install-extension charliermarsh.ruff
5853 why: Форматтер отвечает за единообразие (отступы, кавычки, переносы), линтер — за подозрительные места (неиспользуемая переменная, затенение имени). Разные задачи, но здесь один инструмент.
5954 - [ ] Ruff виден в списке установленных расширений
6055 → Ruff на Marketplace — https://marketplace.visualstudio.com/items?itemName=charliermarsh.ruff
6156 → Документация Ruff — https://docs.astral.sh/ruff/
626. Поставить Docker и GitLens [recommended]
57+7. Поставить Docker и GitLens [recommended]
6358 Команда одинаковая на обеих системах.
6459
6560 Docker покажет контейнеры и их логи прямо в редакторе. GitLens показывает, кто и когда менял конкретную строку.
6661 $ code --install-extension ms-azuretools.vscode-docker --install-extension eamodio.gitlens
6762 why: Оба нужны не сразу, но ставятся один раз. GitLens особенно полезен, когда начнёшь разбираться в чужом коде: строка перестаёт быть безымянной.
6863 - [ ] Оба расширения в списке установленных
6964 → Docker на Marketplace — https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker
7065 → GitLens на Marketplace — https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens
71¶ **Почему ставим по одному, а не пакетом «всё для Python».**
72
73 Каждое расширение — работающий процесс и потенциальный источник конфликта: два форматтера начнут переписывать файл друг за другом, и ты будешь гадать, почему код прыгает при сохранении.
74
75 Ставя по одному, ты знаешь, кто за что отвечает, и понимаешь, что отключать при странном поведении.
7666## Терминал
777. Открыть встроенный терминал
67+8. Открыть встроенный терминал
7868 **Windows:** Ctrl + ` (клавиша с обратным апострофом, слева от единицы).
7969
8070 **macOS:** Ctrl + ` (именно Control, не Command).
8171
8272 Либо меню View → Terminal на обеих системах.
8373 why: Отдельное окно консоли — лишнее переключение и лишний шанс запустить команду не в той папке. Встроенный терминал открывается сразу в папке проекта.
8474 - [ ] Терминал открылся в нижней части окна редактора
8575 - [ ] В нём виден путь к текущей папке
868. Понять, какая оболочка запущена
76+9. Понять, какая оболочка запущена
8777 В правом верхнем углу панели терминала написано имя оболочки. Запомни его.
8878
8979 **Windows:** обычно PowerShell, реже Command Prompt или Git Bash.
9080
9181 **macOS:** по умолчанию zsh. Проверить можно командой `echo $SHELL`.
92 why: Оболочки ведут себя по-разному: разный синтаксис переменных, разные кавычки, разные разделители в путях. zsh и bash близки, а PowerShell отличается сильно: команды из статей чаще всего написаны под bash и в нём не работают. Половина загадочных ошибок новичка — это команда не из той оболочки.
82+ why: Оболочки ведут себя по-разному: разный синтаксис переменных, разные кавычки, разные разделители в путях. PowerShell отличается сильно, а команды из статей часто написаны под bash.
9383 - [ ] Ты можешь назвать, какая оболочка у тебя запущена
9484 - [ ] Понимаешь, что команды из интернета могут быть написаны под другую
9585## Инструменты
969. Проверить Python
86+10. Проверить Python
9787 Нужна версия 3.12 или новее.
9888
99 **Windows:** команда `python --version`. Ставь с python.org, не из Microsoft Store. При установке отметь «Add python.exe to PATH».
89+ **Windows:** команда `python --version`. Ставь Python с python.org, не из Microsoft Store. При установке отметь **Add python.exe to PATH**.
10090
101 **macOS:** команда `python3 --version` — именно python3. Системный Python старый и трогать его нельзя — ставь свой: `brew install python@3.12` либо позже через `uv python install 3.12`.
91+ **macOS:** команда `python3 --version` — именно `python3`. Системный Python старый и трогать его нельзя — ставь свой: `brew install python@3.12` либо позже через `uv python install 3.12`.
10292 $ python --version
10393 why: На Windows версия из Microsoft Store работает в песочнице: часть инструментов её не находит. На macOS опасность другая: системный Python используется самой системой, и установка в него пакетов может сломать системные утилиты.
10494 - [ ] Команда напечатала версию 3.12 или выше
10595 - [ ] Это не системный Python и не версия из Microsoft Store
10696 → Скачать Python — https://www.python.org/downloads/
10797 → Python для macOS — https://www.python.org/downloads/macos/
10810. Убедиться, что запускается именно тот Python
98+11. Убедиться, что запускается именно тот Python
10999 Команда покажет все найденные интерпретаторы в порядке приоритета. Первый в списке — тот, который запустится.
110100
111101 **Windows:** `where python`
112102
113103 **macOS:** `which -a python3`
114104 $ where python
115 why: На машине часто оказывается несколько Python: системный, от пакетного менеджера, из старой установки. Запускается первый по PATH, и пакет, поставленный в одно окружение, «пропадает» при запуске из другого. Это одна из самых частых и самых непонятных проблем новичка.
105+ why: На машине часто оказывается несколько Python: системный, от пакетного менеджера, из старой установки. Запускается первый по PATH, и пакет, поставленный в одно окружение, «пропадает» при запуске из другого.
116106 - [ ] Ты видишь список найденных интерпретаторов
117107 - [ ] Понимаешь, какой из них запускается по умолчанию
11811. Проверить git
108+12. Проверить git
119109 **Windows:** при установке можно оставить настройки по умолчанию — вместе с git приедет Git Bash.
120110
121111 **macOS:** проще всего `xcode-select --install` — git входит в Command Line Tools. Либо свежее версией: `brew install git`.
122112 $ git --version
123113 why: Git — не «сохранялка файлов», а машина времени. Без него любая попытка что-то поменять сопровождается страхом сломать работающее; с ним эксперимент бесплатен.
124114 - [ ] Команда напечатала версию git
125115 → Скачать git — https://git-scm.com/downloads
126116 → git для macOS — https://git-scm.com/download/mac
12712. Проверить Docker
117+13. Проверить Docker
128118 **Windows:** скачать с сайта или `winget install Docker.DockerDesktop`.
129119
130 **macOS:** `brew install --cask docker-desktop`. При ручной загрузке выбери правильную сборку: **Apple Silicon** для M1–M4 или **Intel** для старых машин. Посмотреть свой процессор: ⌘ → «Об этом Mac».
120+ **macOS:** `brew install --cask docker-desktop`. При ручной загрузке выбери правильную сборку: **Apple Silicon** для M1–M4 или **Intel** для старых машин. Посмотреть свой процессор: через «Об этом Mac».
131121
132 На обеих системах Docker должен быть не просто установлен, а **ЗАПУЩЕН** — значок кита в трее или в верхней панели.
122+ На обеих системах Docker должен быть не просто установлен, а **запущен** — значок кита в трее или в верхней панели.
133123 $ docker run --rm hello-world
134124 why: Типичная ловушка: Docker установлен, но не запущен, и команды падают с невнятной ошибкой про подключение к демону. Проверять надо не наличие программы, а её работу.
135125 - [ ] Команда скачала образ и напечатала приветствие
136126 - [ ] Значок Docker активен, а не серый
137 - [ ] На macOS: скачана сборка под свой процессор
127+ - [ ] На macOS скачана сборка под свой процессор
138128 → Скачать Docker Desktop — https://www.docker.com/products/docker-desktop/
139129 → Через Homebrew (macOS) — https://formulae.brew.sh/cask/docker-desktop
14013. Установить uv
130+14. Установить uv
141131 **Windows:** `winget install astral-sh.uv`
142132
143133 **macOS:** `brew install uv` либо официальный установщик: `curl -LsSf https://astral.sh/uv/install.sh | sh`
144134
145135 После установки закрой терминал и открой заново.
146136 $ winget install astral-sh.uv
147 why: uv — единый инструмент: ставит сам Python, управляет зависимостями, запускает команды проекта. Заменяет связку из нескольких и работает на порядок быстрее. Дальше весь проект будет жить через него.
137+ why: uv — единый инструмент: ставит сам Python, управляет зависимостями, запускает команды проекта. Заменяет связку из нескольких и работает очень быстро.
148138 - [ ] Установка завершилась без ошибок
149139 - [ ] Терминал открыт заново после установки
150140 → Установка uv — все системы — https://docs.astral.sh/uv/getting-started/installation/
151141 → Документация uv — https://docs.astral.sh/uv/
15214. Проверить uv
142+15. Проверить uv
153143 Команда одинаковая на обеих системах.
154144
155 Если команда не найдена — терминал ещё помнит старый PATH. Закрой все терминалы и открой новый. На macOS при установке через скрипт проверь, что в PATH добавился `~/.local/bin`.
145+ Если команда не найдена, терминал ещё помнит старый PATH. Закрой все терминалы и открой новый. На macOS при установке через скрипт проверь, что в PATH добавился `~/.local/bin`.
156146 $ uv --version
157147 why: Это последняя проверка перед созданием проекта. Дальше все команды пойдут через uv, и его недоступность остановит работу на первом же шаге.
158148 - [ ] Команда напечатала версию uv
159149## Проект
16015. Создать папку проекта по короткому пути
150+16. Создать папку проекта по короткому пути
161151 Никаких пробелов, никакой кириллицы, не на Рабочем столе и не в облачной папке.
162152
163153 **Windows:** `mkdir C:\dev\shop` — не в OneDrive.
164154
165 **macOS:** `mkdir -p ~/dev/shop` — не в iCloud Drive и не в папке «Документы», если у тебя включена синхронизация Рабочего стола и Документов.
155+ **macOS:** `mkdir -p ~/dev/shop`.
166156 $ mkdir C:\dev\shop
167 why: Многие инструменты разбирают путь по пробелам как разделителям аргументов путь распадается на части. С кириллицей проблема в кодировке. Ошибка выглядит не как «плохой путь», а как «файл не найден», и ищут её долго. Облачная синхронизация добавляет своё: она конфликтует с файлами, которые часто меняются.
168 - [ ] В полном пути к папке нет пробелов
169 - [ ] В полном пути нет кириллических символов
170 - [ ] Папка не в облачном хранилище и не на Рабочем столе
17116. Открыть папку в VS Code
172 File → Open Folder, либо командой из терминала.
173
174 **Windows:** `code C:\dev\shop`
175
176 **macOS:** `code ~/dev/shop`
177 $ code C:\dev\shop
178 why: VS Code работает именно с папкой, а не с отдельными файлами: от неё он отсчитывает пути, ищет настройки и запускает терминал. Открытый «просто файл» лишает тебя половины возможностей редактора.
179 - [ ] В боковой панели видно имя папки проекта
180 - [ ] Встроенный терминал открывается сразу в этой папке
18117. Включить форматирование при сохранении
182 **Windows:** Ctrl+Shift+P → «Preferences: Open Workspace Settings (JSON)»
183
184 **macOS:** Cmd+Shift+P → та же команда
185
186 Добавь настройку editor.formatOnSave со значением true и назначь Ruff форматтером для Python.
187 why: Спор об оформлении кода — самый бессмысленный из возможных. Когда формат ставит инструмент, спорить не о чем, а в pull request видны только смысловые изменения, а не переставленные пробелы.
188 - [ ] Файл .vscode/settings.json создан в папке проекта
189 - [ ] editor.formatOnSave включён
190 → Настройки VS Code — https://code.visualstudio.com/docs/getstarted/settings
19118. Проверить, что форматирование работает
192 Создай файл check.py, напиши в нём строку с намеренно кривыми отступами и лишними пробелами, сохрани. Оформление должно поправиться само. После проверки файл удали.
193 why: Настройка, которую не проверили, считается неработающей. Это правило пригодится дальше во всём: конфиг без проверки — это предположение, а не факт.
194 - [ ] После сохранения оформление файла изменилось само
195 - [ ] Проверочный файл удалён
196
197
198
199¶ ## Готово
200
201 Если все проверки пройдены — рабочее место настроено, и дальше можно заниматься кодом, а не выяснять, почему команда не находится.
202
203 **Что дальше:** git и GitHub — ключи, клонирование, первая ветка. А затем первый pull request целиком, на безобидной правке README, чтобы к моменту появления настоящего кода механика уже была в руках.
204
205 Если какой-то шаг не сошёлся — не переходи дальше. Незакрытая проблема в окружении не рассасывается, а всплывает через две недели в самый неудобный момент.
157+ why: Короткий локальный путь снижает шанс странных проблем с путями, синхронизацией и правами доступа.
158+ - [ ] Папка создана в локальном коротком пути
159+ - [ ] Путь не содержит пробелов и кириллицы
Review