Основы программирования
Среда разработки: инструменты решают
**Джефф Дин из Google пишет на vi без плагинов.** Хороший инструмент? Абсолютно нет. Но он знает кодовую базу наизусть. Для остальных 99.9% разработчиков правильно настроенная IDE ускоряет работу в 5-10 раз - не потому что они хуже, а потому что инструмент снимает когнитивную нагрузку.
Цели урока
- Понять разницу между редактором и IDE
- Выбрать инструмент для своих задач
- Настроить первую среду разработки
- Узнать о REPL и песочницах
Предварительные знания
- Понимание что такое программа и код (урок 1)
73% разработчиков в мире используют VS Code по данным Stack Overflow 2023. Это больше, чем все остальные редакторы вместе взятые. Не потому что Microsoft заплатила - потому что инструмент реально ускоряет. Остальные 27% знают что-то, чего не знает большинство.
- **VS Code** - бесплатный редактор Microsoft, 73% рынка разработчиков, 50+ языков из коробки
- **PyCharm** - IDE от JetBrains, стандарт в Data Science, глубокая интеграция с Python
- **Cursor** - AI-powered IDE, агент с доступом к codebase и tool calling на практике
- **Replit** - полные проекты прямо в браузере, без установки, с collaboration
От Maestro I до Bret Victor: история инструментов программиста
**1975, Maestro I** (Softlab, Мюнхен) - первая в мире IDE: цветной экран, разделённое окно для редактирования и отладки, продано 22 000 систем по всему миру. **1976, Smalltalk-76** (Дэн Ингаллс, Алан Кей в Xerox PARC) - первая среда с live coding: меняешь объект во время работы программы, никакой перекомпиляции. **1983, Turbo Pascal** Андерса Хейлсберга (того же, кто потом сделал C# и TypeScript) - редактор, компилятор и отладчик в одном бинарнике на 33 КБ, ценой $49.95 разрушил индустрию IDE за тысячи долларов. **1997, Visual Studio 97** объединил Visual Basic, Visual C++ и Visual J++ в одну оболочку. **2012, Bret Victor, "Inventing on Principle"** - доклад, изменивший индустрию: Виктор показал среды с мгновенной обратной связью между кодом и результатом. Эта идея напрямую повлияла на Light Table, Swift Playgrounds, Jupyter Notebooks и современный hot reload в Cursor и VS Code.
Текстовый редактор
Код - это обычный текст. Технически его можно писать в любом текстовом редакторе: Блокнот, nano, vi. Принципиально важно одно: редактор должен сохранять **plain text**, без скрытого форматирования.
НЕ использовать Word или Google Docs. Они сохраняют файлы в .docx с метаданными о шрифтах и стилях. Компилятор увидит этот мусор и не поймёт, что это код.
Простые редакторы
Базовый набор
**Notepad++** (Windows) - бесплатный, подсветка синтаксиса для 80+ языков **Sublime Text** - быстрый, лёгкий, кроссплатформенный, открывает файлы мгновенно **nano/vim** - терминальные редакторы, работают на сервере без GUI Плюсы: лёгкие, запускаются мгновенно Минусы: нет автодополнения, отладчика, рефакторинга
**Подсветка синтаксиса** - когда ключевые слова (if, for, def) окрашиваются в разные цвета. Не меняет код, но ускоряет чтение в 3 раза: мозг читает структуру, а не символы.
Почему нельзя писать код в Microsoft Word?
IDE - интегрированная среда
**IDE** (Integrated Development Environment) - это редактор с суперспособностями. Среда разработки знает о коде всё: синтаксис языка, зависимости между файлами, типы переменных. Это позволяет не просто отображать текст, а понимать программу.
Суперспособности IDE
Что умеет хорошая IDE
**Автодополнение** - начинаешь писать `pri`, IDE предлагает `print()` **Подсветка ошибок** - красное подчёркивание ДО запуска кода **Отладчик (Debugger)** - пошаговое выполнение, просмотр переменных в реальном времени **Рефакторинг** - переименование переменной во всех файлах одним кликом **Git интеграция** - коммиты, diff, история без терминала **Терминал** - запуск кода прямо из IDE
| IDE | Языки | Цена |
|---|---|---|
| VS Code | Все (через расширения) | Бесплатно |
| PyCharm | Python | Бесплатно (Community) |
| IntelliJ IDEA | Java, Kotlin | Бесплатно (Community) |
| WebStorm | JavaScript, TypeScript | Платно |
| Xcode | Swift, Objective-C | Бесплатно (только Mac) |
Для старта - **VS Code**. Бесплатный, быстрый, тысячи расширений. Работает для Python, JavaScript, C++, Rust - для любого языка. Именно его используют большинство разработчиков Cursor и GitHub Copilot.
Что такое автодополнение (autocomplete) в IDE?
VS Code - выбор миллионов
**Visual Studio Code** - самый популярный редактор в мире. Stack Overflow 2023: **73% разработчиков** используют его как основной инструмент. Открытый исходный код, Microsoft, бесплатно. Запускается за секунду, работает на любом железе.
Установка VS Code
Три шага до профессионального инструмента
1. Скачать с **code.visualstudio.com** 2. Установить (Next -> Next -> Finish) 3. Открыть и установить расширение для своего языка: - Python -> расширение "Python" от Microsoft - JavaScript -> работает из коробки - C++ -> расширение "C/C++"
**Расширения** - главная сила VS Code. Хочешь тему как в Matrix? Есть. Нужна поддержка редкого языка? Есть. GitHub Copilot, Cursor, ChatGPT интеграция? Всё есть. Маркетплейс расширений - больше 50 000 пакетов.
Полезные расширения
Мастхэв для начинающего
**Python** - поддержка языка, отладчик, линтер, type hints **Prettier** - автоформатирование кода (одна кнопка - весь файл идеально) **GitLens** - история изменений прямо в строке файла **Error Lens** - ошибки прямо в строке кода, не в отдельной панели **Live Server** - мгновенный просмотр HTML в браузере с авто-reload
Что такое расширения (extensions) в VS Code?
REPL и онлайн-песочницы
Иногда не нужен полноценный проект - нужно быстро проверить идею или вычислить одно выражение. Для этого существует **REPL** - интерактивный режим интерпретатора.
**REPL** = Read-Eval-Print-Loop. Вводишь команду - интерпретатор выполняет - показывает результат - ждёт следующую команду. Инструмент быстрого прототипирования.
Python REPL
Открой терминал и напиши python
``` $ python >>> 2 + 2 4 >>> "Hello" * 3 'HelloHelloHello' >>> exit() ``` REPL идеален для: - Проверки синтаксиса нового метода - Быстрых вычислений - Изучения незнакомой библиотеки
Когда ставить ничего на машину не хочется, выручают **онлайн-песочницы**:
| Сервис | Языки | Особенности |
|---|---|---|
| replit.com | 50+ языков | Полные проекты прямо в браузере |
| codesandbox.io | Web (JS/TS) | Фронтенд-проекты с live preview |
| jupyter.org | Python, R | Интерактивные ноутбуки |
| godbolt.org | C/C++/Rust | Ассемблер рядом с исходником |
Когда лучше использовать REPL вместо IDE?
Ключевые идеи
- **Текстовый редактор** - базовый инструмент, только plain text без скрытого форматирования
- **IDE** - редактор + автодополнение + отладчик + рефакторинг + понимание структуры кода
- **VS Code** - 73% рынка разработчиков, бесплатный, расширения для любого языка
- **REPL** - интерактивный режим для быстрых экспериментов без создания файлов
- **Расширения** - главная сила VS Code: от поддержки языка до AI-агентов
- Правильный инструмент снимает когнитивную нагрузку и ускоряет работу в разы
Где этот урок в курсе
Среда готова. Следующие уроки переходят к настоящему коду:
- Переменные и типы данных — Первый настоящий код: int, float, str, bool, оператор =
- Операторы — Арифметика, сравнения и логика поверх переменных
- Строки — Работа с текстом: конкатенация, срезы, f-strings
- Тесты — Pytest, debugger и test runner живут внутри той же IDE
Вопросы для размышления
- Ты открываешь новый проект на незнакомом языке. Как ты решишь, что поставить - легковесный редактор или полноценную IDE? Какие факторы проекта и рабочего процесса будут важны?
Связанные уроки
- prog-01-intro — Понятия программы, кода и языка - база, без которой выбор IDE бессмысленен
- prog-03-variables — Без настроенной среды даже простой пример с переменными нельзя запустить
- prog-15-testing — Запуск unit-тестов и debugger живут внутри той же IDE - расширение setup
- comp-02-language-processing — IDE-фронтенд (lexer для подсветки, парсер для autocomplete) повторяет фронтенд компилятора
- se-05 — Рефакторинг как Design Pattern: IDE автоматизирует Extract Method, Rename и прочие GoF-преобразования
- devops-02 — Терминал и shell внутри VS Code - тот же Linux toolkit, что используется в DevOps
- alg-01-big-o