Курс информатики · Программирование

Войди в мир кода

Программирование — это способ разговаривать с компьютером на его языке. Научись создавать сайты, приложения и игры. Всё объясним просто, с примерами.

Язык Python

Основы Python

Python — язык, который читается почти как обычный английский. Идеален для начала: минимум лишних символов, максимум ясности. Разберём 6 главных тем.

Переменные

Переменные

Переменная — это коробка с именем. Кладёшь туда данные, называешь коробку и потом достаёшь по имени. Можно назвать как угодно: name, age, score.

# Создаём коробку name и кладём текст name = "Алексей" # Создаём коробку age и кладём число age = 16 # Печатаем содержимое коробки print(name) # Выведет: Алексей print(age) # Выведет: 16
Типы данных

Типы данных

Данные бывают разные: str — текст в кавычках, int — целое число, float — дробное число, bool — либо True (да), либо False (нет).

# Текст — оборачиваем в кавычки name = "Привет" # str (строка) # Целое число — без кавычек year = 2025 # int (целое) # Дробное число — с точкой price = 9.99 # float (дробное) # Да или нет is_done = True # bool (булево)
Операторы

Операторы

Операторы — это знаки действий: сложение, вычитание, сравнение. Простая математика, которую компьютер выполняет мгновенно.

a = 10 b = 3 print(a + b) # 13 — сложение print(a - b) # 7 — вычитание print(a * b) # 30 — умножение print(a / b) # 3.33 — деление # Сравнение — всегда True или False print(a > b) # True — 10 больше 3 print(a == b) # False — 10 не равно 3
Условия

Условия if / else

Условие — это проверка: «Если оценка 5 — хорошо, если 3 — надо подтянуть, иначе — попробовать снова». Компьютер проверяет и идёт по нужной ветке.

grade = 5 # наша оценка if grade >= 4: # если 4 или 5 print("Хорошо!") # ← выполнится это elif grade == 3: # иначе, если 3 print("Надо подтянуть") else: # во всех остальных случаях print("Попробуй снова")
Циклы

Циклы for и while

Цикл повторяет действие несколько раз. for — проходит по списку или диапазону чисел. while — повторяет, пока условие истинно.

# Повторить 3 раза (числа 0, 1, 2) for i in range(3): print(f"Номер {i}") # выведет 0, 1, 2 # Повторять, пока count меньше 3 count = 0 while count < 3: print(count) # выведет 0, 1, 2 count = count + 1 # увеличиваем на 1
Функции

Функции

Функция — как рецепт. Описал один раз — пользуешься сколько хочешь. Подаёшь ингредиенты (параметры) — получаешь блюдо (результат).

# Создаём функцию greet def greet(who): # who — это то, что передали внутрь return f"Привет, {who}!" # Вызываем функцию с разными параметрами print(greet("Мария")) # Привет, Мария! print(greet("Дима")) # Привет, Дима!

Язык JavaScript

Основы JavaScript

JavaScript — главный язык веба. Он оживляет страницы: кнопки реагируют на клики, данные загружаются, появляются новые элементы. Вот три темы для начала.

Урок 01

Переменные

В JS переменные объявляют через let (можно перезаписать), const (нельзя перезаписать) или var (устаревший способ, лучше не использовать).

// let — переменную можно менять let name = "Олег"; name = "Новый Олег"; // всё нормально // const — менять нельзя const age = 17; // age = 18; ← будет ошибка! console.log(name); // "Новый Олег"
Урок 02

Функции

Два способа написать функцию: обычную через function или стрелочную через =>. Стрелочная — короче и современнее. Обе работают одинаково.

// Обычная функция function add(a, b) { return a + b; // возвращает сумму } // Стрелочная — то же, но короче const multiply = (a, b) => a * b; console.log(add(2, 3)); // 5 console.log(multiply(4, 5)); // 20
Урок 03

Работа с DOM

DOM — это дерево всех элементов на странице. JavaScript находит элементы по ID и меняет их: текст, цвет, видимость. Так кнопки начинают «работать».

// Находим кнопку по её id const btn = document.getElementById("myBtn"); // Ждём клик по кнопке btn.addEventListener("click", () => { // Меняем текст на странице const out = document.getElementById("out"); out.textContent = "Кнопка нажата!"; });

Объектно-ориентированное программирование

ООП: моделируем реальный мир

ООП — это подход, при котором ты описываешь «класс» (шаблон), а потом создаёшь по нему «объекты» (конкретные вещи). У каждой вещи есть свойства и действия.

Класс — это шаблон

Представь печенье: класс — это рецепт, а каждое испечённое печенье — объект. Рецепт один, а печенье можно напечь сколько угодно, и каждое будет немного отличаться.

Объект — конкретная вещь

Класс «Автомобиль» — это описание. А объект «Мой синий Kia 2024» — это реальная машина с конкретным цветом, пробегом и номером.

Наследование

Новый класс может наследовать всё от старого и добавить своё. «Автомобиль» → «Электромобиль»: всё то же самое, но ещё есть батарея и зарядка.

Инкапсуляция

Ты нажимаешь кнопку «старт», а как работает мотор внутри — не твоя забота. Инкапсуляция прячет сложную начинку за простым интерфейсом.

Пример · Python

# Класс Animal — шаблон для животных class Animal: # Конструктор — вызывается при создании def __init__(self, name, sound): self.name = name # имя животного self.sound = sound # его звук # Метод — действие животного def speak(self): return f"{self.name}: {self.sound}!" # Dog наследует Animal и добавляет fetch class Dog(Animal): def fetch(self): return f"{self.name} приносит мяч" # Создаём объект — конкретную собаку rex = Dog("Рекс", "Гав") print(rex.speak()) # Рекс: Гав! print(rex.fetch()) # Рекс приносит мяч

Стиль программирования

Функциональное программирование

Идея простая: данные входят → функция обрабатывает → результат выходит. Никаких сюрпризов по пути. Такой код легче читать и исправлять.

λ

Чистые функции

Pure Functions

Чистая функция всегда даёт одинаковый ответ на одинаковый вопрос. Как калькулятор: 2 + 2 = 4 и вчера, и сегодня. Ничего лишнего не меняет вокруг себя — ни переменных, ни файлов, ни экрана.

❌ Плохо

// total живёт снаружи — сюрпризы!
let total = 0;

function add(value) {
  total += value;   // меняем мир вокруг
  return total;
}

✅ Хорошо

// Чистая: только вход и выход
function add(a, b) {
  return a + b;
}

add(2, 3); // 5, всегда

map / filter / reduce

Три основных метода

map — переводит каждый элемент списка на новый язык. filter — оставляет только те, которые проходят проверку. reduce — сворачивает весь список в одно значение. Это 80% работы с данными.

❌ Без map

const nums = [1, 2, 3];
const result = [];           // пустой
for (let i = 0; i < nums.length; i++) {
  result.push(nums[i] * 2);  // 4 строки
}

✅ С map

const nums = [1, 2, 3];
const result = nums.map(n => n * 2);
// [2, 4, 6] — одна строка!

Деструктуризация

Destructuring

Вытаскиваешь значения из объекта по имени за одну строку. Не нужно писать user.name, user.age по очереди — распаковываешь всё сразу, как коробку с подарками.

❌ Без неё

const user = {name: "Лена", age: 18};
const name = user.name;  // строка 1
const age = user.age;    // строка 2

✅ С ней

const user = {name: "Лена", age: 18};
const {name, age} = user;
// Одна строка — всё готово!

Интерфейсы приложений

Работа с API

API — это «телефон» между твоей программой и чужим сервером. Ты отправляешь запрос — получаешь данные. Погода, курсы валют, картинки — всё приходит через API.

💻
Твой код
→ запрос →
🌐
API-сервер
→ ответ →
📊
JSON-данные
01

Пишем URL

Указываем адрес сервера и параметры: что хотим получить. Например, погоду в Москве.

02

Отправляем fetch()

fetch() — как позвонить по телефону. Отправляем запрос и ждём ответа. Программа при этом не зависает.

03

Получаем JSON

Сервер присылает данные в формате JSON — структурированный текст. Мы превращаем его в объект через .json().

04

Используем данные

Готово! Выводим на экран, сохраняем, строим график — данные у тебя.

Пример: получаем погоду

// async — значит, функция работает не мгновенно async function getWeather(city) { // Формируем адрес запроса const url = `https://api.weather.com/${city}`; // Отправляем запрос и ждём ответ const res = await fetch(url); // Превращаем ответ в объект const data = await res.json(); // Используем данные console.log(`Температура: ${data.temp}°C`); } // Вызываем с нужным городом getWeather("Москва");

Принципы

Чистый код

Чистый код — это код, который легко понять другому человеку (и себе через месяц). Не просто «работает», а «работает и читается». Вот шесть правил.

Понятные имена

Переменная x — непонятно. Переменная userAge — сразу ясно. Называй вещи так, чтобы даже комментарий не понадобился.

Одна функция — одно дело

Если в названии функции есть «и» — значит, её пора разделить. Функция считает и выводит — это две задачи, а не одна.

DRY — не повторяйся

Если один и тот же код написан дважды — вынеси его в функцию. Меняешь один раз — работает везде.

Отступы и структура

Отступы показывают логику. Вложенность — как папки в проводнике. Код должен выглядеть аккуратно, а не как сплошной текст.

Комментируй «почему»

// прибавляем 1 — бесполезно. // +1, потому что нумерация с нуля — вот это полезно. Объясняй контекст, а не сам код.

Рефакторинг

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

Наглядный пример

❌ Плохо

function f(x, y) { if (x > 18) { if (y == 1) { return x * 0.9; } else { return x; } } return x; } // Что делает? Непонятно.

✅ Хорошо

function calculatePrice(price, isStudent) { const DISCOUNT = 0.1; if (price > 18 && isStudent) { return price * (1 - DISCOUNT); } return price; } // Сразу ясно!

Советы для старта

Как учиться программированию

⌨️

Пиши код каждый день

20 минут в день лучше, чем 5 часов раз в неделю. Мозг привыкает к паттернам. Практика — главный учитель.

🐛

Не бойся ошибок

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

🔧

Делай мини-проекты

Калькулятор, таймер, список задач — проекты учат быстрее, чем учебники. Выбери идею и допиливай до результата.

📚

Читай чужой код

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

🤝

Объясняй другим

Попробуй объяснить другу, как работает функция. Если не получается просто — значит, стоит разобраться ещё раз.

🚀

Начни с малого

Не пытайся сразу написать соцсеть. «Привет, мир!» → калькулятор → сайт. Каждый шаг — это рост.