Основы программирования

Среда разработки: инструменты решают

**Джефф Дин из 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Все (через расширения)Бесплатно
PyCharmPythonБесплатно (Community)
IntelliJ IDEAJava, KotlinБесплатно (Community)
WebStormJavaScript, TypeScriptПлатно
XcodeSwift, 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.com50+ языковПолные проекты прямо в браузере
codesandbox.ioWeb (JS/TS)Фронтенд-проекты с live preview
jupyter.orgPython, RИнтерактивные ноутбуки
godbolt.orgC/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
Среда разработки: инструменты решают

0

1

Войти