Введение в программирование
Родителям и детям
Здесь Вы поймёте, что такое код, из каких "кирпичиков" он состоит и почему компьютер иногда "не понимает" — хотя Вы всё написали правильно.
Это база перед Scratch, Python и JavaScript.
Готовые фрагменты Scratch с разбором — мини-проекты в Lab.
Демо ниже — нажимайте кнопки и смотрите, как устроены типы данных. Ничего на компьютере не меняется.
Подробнее про исходный и машинный код, компиляцию и интерпретацию — в Что такое код и как он работает (для старших школьников и взрослых).
Словарик главы
| Слово | Простыми словами |
|---|---|
| Алгоритм | Чёткий список шагов "сделайте А, потом Б, потом В". |
| Код | Запись алгоритма на языке, который понимает компьютер. |
| Переменная | Именованная "коробочка" для значения (число, текст, да/нет). |
| Условие | Развилка: "если… то… иначе…". |
| Цикл | Повтор одних и тех же шагов несколько раз. |
| Ошибка | Подсказка, что шаг или запись нужно поправить. |
Введение в программирование
Программирование — составление точных инструкций для компьютера. Алгоритм — упорядоченный набор шагов; код — запись алгоритма на языке, который понимает машина.
Компьютер выполняет команды буквально: без намёков и "само собой разумеется". Ошибка в формулировке или порядке шагов даёт неверный результат — поэтому важны ясность и проверка.
Что такое код?
Код — это текстовые инструкции, написанные по строгим правилам, которые понимает компьютер. Это просто список шагов, как в рецепте бутерброда:
- Возьмите хлеб.
- Намажь масло.
- Положите ломтик сыра.
- Накрой вторым ломтиком хлеба.
Если перепутать шаги — например, положить сыр до масла — бутерброд получится странным. Так и с кодом: порядок и точность критичны. Даже одна лишняя запятая может "сломать" программу.
Мы можем понимать буквально всё через призму алгоритма:
1. Взять чайник и наполнить его водой до отметки
2. Поставить чайник на включенную конфорку
3. Дождаться закипания воды
4. Взять чашку и положить в неё чайную ложку заварки
5. Залить заварку кипятком из чайника
6. Накрыть чашку блюдцем и подождать три минуты
7. Добавить сахар по вкусу
8. Размешать ложкой до полного растворения сахара
9. Напиток готов к употреблению
flowchart TD
A[Начало] --> B[Ввести вес товара]
B --> C[Ввести цену за килограмм]
C --> D[Вычислить стоимость = вес * цена]
D --> E[Вывести стоимость]
E --> F[Конец]
Но почему компьютеру нужны текстовые инструкции, если он — машина? Ответ — в его природе.
Как компьютер "думает" — язык нулей и единиц
Внутри любого компьютера — миллиарды крошечных переключателей, называемых транзисторами. Они работают, как микроскопические выключатели света:
- "Включено" → электричество идёт → обозначается как 1
- "Выключено" → электричество не идёт → обозначается как 0
Такой язык из нулей и единиц называется двоичным кодом (binary). Всё, что Вы видите на экране — текст, картинки, видео, игра — в итоге превращается в последовательности вроде:
01001001 00100000 01101100 01101111 01110110 01100101 00100000 01001001 01010100
(Кстати, это фраза "I love IT" в двоичном виде.)
Компьютер "понимает" только такие последовательности. Но писать программы вручную на двоичном коде — как строить дом, откручивая каждый винтик по одному: возможно, но безумно долго и легко ошибиться.
Поэтому люди придумали языки программирования — промежуточные языки, ближе к человеческому, но всё ещё точные и формальные. Пример:
print("Привет, Вселенная!")
Эту строчку легко прочитать человеку. А специальная программа — компилятор или интерпретатор — переведёт её в двоичный код, который поймёт процессор.
Важно: код — это язык общения между человеком и машиной. Человек описывает логику — машина исполняет.
Код вокруг нас — команды в повседневной жизни
Вы уже сталкивались с кодом — даже если не знали об этом.
-
Лампочка с выключателем — простейшая "программа":
ЕСЛИ нажата кнопка → ВКЛЮЧИТЬ свет.
Если выключатель — двухклавишный:
ЕСЛИ нажата КЛАВИША_1 → включить верхний свет
ЕСЛИ нажата КЛАВИША_2 → включить подсветку -
Робот-пылесос получает инструкции:
ДВИГАТЬСЯ прямо 2 метра → ПОВЕРНУТЬ направо → ПРОВЕРИТЬ, есть ли препятствие → ЕСЛИ есть — ОСТАНОВИТЬСЯ и выбрать другой путь -
Игрушка на ИК-пульте (инфракрасном): когда Вы нажимаете кнопку "Вперёд", пульт посылает кодированный сигнал — короткую вспышку инфракрасного света в определённом ритме. Машина "расшифровывает" этот ритм и понимает: "двигайся вперёд".
Эти примеры показывают главную идею:
Код — это не обязательно текст на экране. Это любая система чётких, однозначных команд, по которым что-то работает.
Как устроен процесс — от идеи до исполнения
Рассмотрим это на схеме. Представьте, что Вы хотите написать программу, которая здоровается с пользователем по имени.
graph LR
A[Идея: “Поприветствовать человека”] --> B[Запись кода на языке программирования]
B --> C[Компилятор / Интерпретатор]
C --> D[Двоичный код 010101…]
D --> E[Процессор выполняет команды]
E --> F[На экране появляется: “Привет, Аня!”]
Разберём шаги:
- Идея — то, что Вы хотите, чтобы программа сделала.
- Код — Вы описываете идею словами, которые понимает язык программирования (например, Python, JavaScript).
- Перевод — программа-посредник превращает ваш код в машинные команды.
- Исполнение — процессор читает эти команды (в виде импульсов тока) и заставляет память, экран, динамик — работать так, как нужно.
- Результат — человек получает то, что ожидал.
Заметьте: компьютер не понимает смысла. Он не знает, что такое "привет" или "Аня". Он просто копирует символы из памяти на экран — как курьер, который доставляет посылку, не зная, что внутри.
Как строится код
В программе постоянно используют три базовые конструкции — переменная, условие, цикл.
Переменная
Вы убираете игрушки в коробки. На каждую Вы клеите этикетку — "машинки", "кубики", "мягкие игрушки". Внутрь можно класть разное — сегодня три машинки, завтра пять. Этикетка остаётся той же, а содержимое — меняется.
Переменная в коде — это как такая коробка с этикеткой.
- Имя переменной — это этикетка (например,
возраст,счёт,имя_игрока). - Значение — то, что лежит внутри (например,
12,100500,"Алиса").
Пример на Python:
имя = "Саша"
возраст = 10
счёт = 0
Здесь мы "наклеили" три этикетки и положили в коробки данные. Позже можно изменить содержимое:
счёт = счёт + 10 # теперь в коробке "счёт" лежит 10
возраст = возраст + 1 # Саше исполнилось 11
🔍 Почему
счёт = счёт + 10не противоречит математике?
В математике такое уравнение бессмысленно:x = x + 10→0 = 10.
Но в коде это команда, а не равенство:
"Возьмите текущее значение из коробкисчёт, прибавь 10, и положите результат обратно в ту же коробку".
Переменные — основа любого взаимодействия с пользователем. Без них невозможно запомнить, что ввёл человек, сколько очков набрал игрок или какая температура за окном.
Условие — развилка на дороге
Жизнь полна выбора:
- Если на улице дождь — взять зонт.
- Если в холодильнике молоко закончилось — купить в магазине.
- Если в игре здоровье ≤ 0 — показать экран "Game Over".
В коде такие развилки реализуются через условные конструкции — чаще всего словами ЕСЛИ (if), ИНАЧЕ (else).
Пример: программа-помощник для сбора рюкзака в поход.
погода = "дождь" # ← можно изменить на "солнечно"
ЕСЛИ погода == "дождь":
добавить_в_рюкзак("дождевик")
добавить_в_рюкзак("резиновые сапоги")
ИНАЧЕ:
добавить_в_рюкзак("кепку")
добавить_в_рюкзак("крем от солнца")
Обратите внимание на два знака = в погода == "дождь":
- Один
=— это присвоение (положить в коробку). - Два
==— это сравнение (проверить, совпадает ли содержимое).
Можно строить сложные условия:
ЕСЛИ температура < 0 И идёт_снег:
надеть("тёплую шапку")
ИНАЧЕ ЕСЛИ температура > 30:
надеть("лёгкую рубашку")
ИНАЧЕ:
надеть("ветровку")
Чем больше условий, тем "умнее" становится программа. Но важно не запутаться — как в лабиринте, где каждая дверь ведёт к новой развилке.
Цикл
Повторение — основа обучения и работы. Чтобы наточить карандаш, Вы крутите его в точилке 10–15 раз. Чтобы подняться на 5-й этаж, делаете ~70 шагов. В реальной жизни мы не считаем каждый шаг — просто идём. Но компьютеру нужно сказать: "Сделайте это N раз".
Для этого существуют циклы — конструкции, которые повторяют блок команд.
Цикл ПОВТОРИТЬ N раз (for)
ПОВТОРИТЬ 5 раз:
сказать("Привет!")
→ На экране появится:
Привет!
Привет!
Привет!
Привет!
Привет!
В более зрелых языках (например, Python) это выглядит так:
for i in range(5):
print("Привет!")
Здесь i — счётчик — он автоматически меняется от 0 до 4, помогая отслеживать, на каком шаге мы находимся.
Цикл ПОКА условие истинно (while)
стакан = 0 # мл воды
ПОКА стакан < 200: # стакан вмещает 200 мл
налить(50) # добавляем по 50 мл
стакан = стакан + 50
сказать("Теперь в стакане", стакан, "мл")
Вывод:
Теперь в стакане 50 мл
Теперь в стакане 100 мл
Теперь в стакане 150 мл
Теперь в стакане 200 мл
На 250 мл цикл не пойдёт — условие стакан < 200 станет ложным, и повторение остановится.
⚠️ Опасность: если забыть изменить условие внутри цикла — получится бесконечный цикл.
Пример авари:while температура < 100: включить_нагрев() # ← но не измеряем температуру снова!Программа "застрянет", потому что
температураникогда не обновится.
Почему столько языков программирования?
Вы, наверное, слышали названия — Python, JavaScript, Scratch, C++, Lua, Rust… Зачем их так много? Разве нельзя договориться об одном?
Представьте инструменты:
- Молоток — чтобы вбить гвоздь.
- Отвёртка — чтобы закрутить шуруп.
- Паяльник — чтобы соединить провода в наушниках.
Все они "делают дырки" или "соединяют", но в разных ситуациях. Так и с языками:
| Язык | Для чего подходит | Примеры использования | "Возраст" обучения |
|---|---|---|---|
| Scratch | Первые шаги, визуальное программирование | Анимаци, простые игры | 7–12 лет |
| Python | Универсальный, простой синтаксис | Научные расчёты, веб, анализ данных, обучение ИИ | 10+ |
| JavaScript | Всё, что работает в браузере | Интерактивные сайты, игры онлайн | 12+ |
| Lua | Встраивается в другие программы | Скрипты в Roblox; в Minecraft — моды (Lua) или встроенные команды / datapack без отдельного языка | 11+ |
| C++ | Высокая скорость и контроль над железом | Видеоигры, операционные системы | 14+ |
✅ Главное — логика. Освоив
переменную,условие,циклв Scratch, Вы легко перенесёте эти знания в Python — как научившись ездить на велосипеде, легко освоить самокат.
Ошибки
Когда Вы учитесь кататься на велосипеде, падения не означают, что Вы "не созданы для езды". Они показывают — "Слишком резко повернул", "Ногу не поставил вовремя", "Скорость не сбавил на повороте".
То же — с кодом. Ошибки (bugs) неизбежны. Даже у самых опытных программистов в коде бывают опечатки, логические недосмотры или неверные предположения. Разница в том, что профессионалы умеют читать сообщения об ошибках и превращают их в шаги к исправлению.
Три основных типа ошибок
Синтаксические ошибки ("опечатки")
Это нарушения правил языка — как грамматические ошибки в письме. Компьютер не может даже начать выполнять такой код.
Пример (JavaScript):
console.log("Привет"
→ пропущена закрывающая скобка и кавычка.
Сообщение в консоли:
SyntaxError: Unexpected end of input
("Синтаксическая ошибка: неожиданный конец ввода")
Как исправить — внимательно сверить скобки, кавычки, точки с запятой. Браузер даже подсвечивает строку с ошибкой.
Ошибки времени выполнения ("сломалось при запуске")
Код синтаксически верен, но "ломается" в процессе работы — например, при обращении к несуществующему объекту.
Пример:
let возраст = "пятнадцать"; // текст, а не число
let через_год = возраст + 1;
console.log(через_год); // → "пятнадцать1"
Ожидали 16, получили "пятнадцать1". Почему? Потому что в JavaScript при сложении строки и числа — число превращается в строку, и происходит склеивание ("пятнадцать" + "1").
Это не ошибка в строгом смысле (программа не упала), но логическая неточность. Такие ошибки самые коварные — программа "работает", но даёт неверный результат.
Логические ошибки ("думал одно — сделали другое")
Код запускается, не падает, не ругается — но ведёт себя не так, как задумано.
Пример:
// Хотим проверить, чётное ли число
let n = 4;
if (n % 2 = 0) { // ← ОЙ! Должно быть ==, а не =
console.log("Чётное");
}
Здесь n % 2 = 0 — синтаксическая ошибка: в условии нужно сравнение (==), а не присваивание (=). JavaScript остановится с SyntaxError, пока Вы не исправите строку.
Правильно:
if (n % 2 === 0) { // тройное === — строгое сравнение (значение + тип)
console.log("Чётное");
}
🔎 Строгий совет: всегда используйте
===и!==вместо==/!=, если не увереныыы. Это предотвращает неожиданные приведения типов.
Как искать ошибки? Три приёма
-
Читайте сообщение. Оно почти всегда говорит:
- что пошло не так (
Cannot read property 'x' of undefined), - где (файл, строка, столбец),
- иногда — почему.
- что пошло не так (
-
Выводите промежуточные значения через
console.log():
let a = 5;
let b = 0;
console.log("a =", a, "b =", b); // ← проверяем до деления
let c = a / b;
console.log("c =", c); // → Infinity — ага, деление на ноль!
- Разбивайте задачу на мелкие шаги.
Вместо:
let результат = преобразовать(получитьДанные().фильтр(x => x > 0).map(y => y * 2));
— лучше:
let данные = получитьДанные();
console.log("Данные:", данные);
let положительные = данные.filter(x => x > 0);
console.log("Положительные:", положительные);
let удвоенные = положительные.map(y => y * 2);
console.log("Удвоенные:", удвоенные);
let результат = преобразовать(удвоенные);
Каждый console.log — как контрольный пункт на маршруте. Ошибка не пройдёт незамеченной.
Философия программиста:
"Код пишется один раз, а читается — сотни раз. Пишите так, чтобы через месяц (или коллега) понял вашу логику с первого взгляда".
Что дальше
| Если хотите… | Откройте |
|---|---|
| Разобрать вложенность блоков | Блоки |
| Справочник Scratch | Scratch |
| Шесть игр по шагам | Метод → Scratch — радужные линии и первый проект–Scratch — продвинутый платформер |
| Готовые примеры MIT (remix) | Стартовые проекты |
| Платформер и демосцена | Практика |
| Первую программу на Python | Python |
В подборках
Статья входит в тематические подборки и блок "С чего начать?" на главной. Соседние шаги того же маршрута:
Для детей — Для детей — о разделе, Компьютер — о разделе, Видеоигры — о разделе, Развитие — о разделе, Программы — о разделе, Код — о разделе.