Лаборатория кодера

Учебные маршруты

Доклады и демонстрации

Когда шпаргалки мало, помогает увидеть, как это делают другие. Здесь собраны лекции преподавателей и короткие разборы по темам справочника — от первых шагов до приёмов посложнее. Выберите тему, начните с записи для новичков и держите шпаргалку открытой рядом: к каждому видео есть короткий список главного.

Git

Три минуты, чтобы увидеть Git в деле: настройка, первые коммиты, ветка и слияние на живом репозитории.

Начните здесь: Git: шпаргалка на каждый день, Сравнение текстов (diff)

  1. Уровень: новичок · демонстрация в терминале · 2 мин

    Git за две минуты: от пустой папки до слияния веток

    Автор: Лаборатория кодера · разбор по шпаргалке «Git» · лицензия CC BY 4.0

    Что в демонстрации

    • Имя и почта в настройках попадают в каждый коммит, поэтому их задают один раз в самом начале.
    • Изменение проходит путь: рабочая папка → индекс (git add) → коммит. git status и git diff показывают, где оно сейчас.
    • Новую работу удобно вести в отдельной ветке: main не меняется, пока вы не вольёте правки.
    • Если main не ушёл вперёд, слияние просто передвигает указатель ветки (fast-forward), а влитую ветку можно удалить.

    Оглавление

Регулярные выражения

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

Начните здесь: Регулярные выражения: синтаксис и готовые шаблоны, Тестер регулярных выражений

  1. Уровень: новичок · демонстрация в терминале · 1 мин

    grep и регулярные выражения на живых логах

    Автор: Лаборатория кодера · разбор по шпаргалке «Регулярные выражения» · лицензия CC BY 4.0

    Что в демонстрации

    • grep -E включает привычный синтаксис: классы [45], квантификаторы {2}, группы и альтернативы.
    • -o печатает только найденный кусок, и вместе с sort | uniq -c это готовая статистика по журналу.
    • sed -E с группами в скобках переставляет части строки: \1, \2 в замене — это найденные группы.
    • -w ищет целое слово, -v — строки без совпадения; шаблоны почты и телефонов из шпаргалки работают как есть.

    Оглавление

Терминал, Bash и Linux

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

Начните здесь: Bash: скрипты без сюрпризов, Команды Linux на каждый день, Права файлов в Linux: chmod, chown, umask

  1. Уровень: новичок · демонстрация в терминале · 1 мин

    Скрипт на Bash: заготовка, переменные, циклы и ошибки

    Автор: Лаборатория кодера · разбор по шпаргалке «Bash» · лицензия CC BY 4.0

    Что в демонстрации

    • Переменные берут в двойные кавычки: так значение с пробелами не разваливается на части.
    • Подстановки ${f##*/}, ${f%.csv} и ${PORT:-8080} режут строки и подставляют значения без внешних программ.
    • set -euo pipefail останавливает скрипт на первой ошибке, а ${1:?текст} сам объясняет, какого аргумента не хватает.
    • > и 2> разводят результат и сообщения об ошибках по разным файлам.

    Оглавление

  2. Уровень: новичок · лекция · 1 ч 35 мин

    Командная строка GNU/Linux

    Автор: Тимофей Хирьянов · МФТИ, курс «Анализ данных на Python», занятие 5, 2021 · страница записи · лицензия CC BY 3.0

    О чём лекция

    • Linux — многопользовательская многозадачная система: у пользователя есть номер UID, у группы — GID, у каждого процесса — владелец. Сначала это объясняется на доске.
    • Процессы: ps и top, папка /proc, где у каждого процесса своя папка со сведениями, и как узнать, кто запустил процесс.
    • Задания в одном терминале: запуск в фоне через &, Ctrl+Z, jobs, fg и bg, сигналы и kill.
    • Перенаправление вывода в файл, конвейеры с grep и как не перепутать вывод программы с сообщениями об ошибках.
    • Свои скрипты: строка #!, право на выполнение через chmod, переменная PATH и переменные окружения.

SQL и PostgreSQL

Четыре лекции на одной учебной базе магазина игр: подключаемся к PostgreSQL, выбираем и считаем данные, связываем таблицы и аккуратно их меняем. Подойдёт тем, кто только начинает работать с базами данных.

Начните здесь: SQL: шпаргалка по запросам

  1. Уровень: новичок · лекция · 25 мин

    Консоль psql и первые команды SQL

    Автор: Владислав Перлин · цикл «Базы данных» на канале «Алгоритмизация и программирование», 2025–2026 · страница записи · лицензия CC BY-SA 4.0

    О чём лекция

    • Для подключения к PostgreSQL нужны адрес, порт, имя базы, пользователь и пароль; основной рабочий инструмент — консоль psql.
    • Команды консоли: \l — список баз, \dt — таблицы, \d имя — устройство таблицы с ключами и индексами, \du — пользователи, \q — выход.
    • SQL-команда выполняется только после точки с запятой. Если её забыть, меняется приглашение консоли, а Ctrl+C сбрасывает набранное.
    • \gx вместо точки с запятой показывает каждую запись отдельным блоком — удобно для широких таблиц.
    • Длинные запросы удобно хранить в файлах проекта и выполнять командой \i.
  2. Уровень: новичок · лекция · 43 мин

    Простые и агрегатные запросы

    Автор: Владислав Перлин · цикл «Базы данных» на канале «Алгоритмизация и программирование», 2025–2026 · страница записи · лицензия CC BY-SA 4.0

    О чём лекция

    • Учебная база магазина игр: схема таблиц и связи между ними, на ней построены все запросы цикла.
    • SELECT с нужными столбцами, сортировка ORDER BY и отбор строк WHERE — по дате и по шаблону почты оператором ~.
    • EXPLAIN показывает план запроса: полный перебор таблицы (Seq Scan) или поиск по индексу (Index Scan).
    • Агрегатные запросы: COUNT и группировка по году и месяцу с функцией date_part, разбор ошибок по сообщениям PostgreSQL.
  3. Уровень: средний · лекция · 43 мин

    Перекрёстные запросы: JOIN

    Автор: Владислав Перлин · цикл «Базы данных» на канале «Алгоритмизация и программирование», 2025–2026 · страница записи · лицензия CC BY-SA 4.0

    О чём лекция

    • Перекрёстный запрос собирает данные из нескольких таблиц, связанных внешним ключом.
    • Псевдонимы таблиц и столбцов через AS делают длинный запрос читаемым.
    • INNER JOIN оставляет только строки, для которых нашлась пара; LEFT OUTER JOIN сохраняет все строки левой таблицы.
    • Связь «многие ко многим» через промежуточную таблицу: игры и их категории.
  4. Уровень: средний · лекция · 43 мин

    INSERT, UPDATE, DELETE и транзакции

    Автор: Владислав Перлин · цикл «Базы данных» на канале «Алгоритмизация и программирование», 2025–2026 · страница записи · лицензия CC BY-SA 4.0

    О чём лекция

    • INSERT добавляет строки, а ограничение NOT NULL не даёт записать строку без обязательного поля — PostgreSQL объясняет, что не так.
    • UPDATE и DELETE с условием WHERE; правки внутри START TRANSACTION … COMMIT становятся видны только после фиксации.
    • Те же операции из программы на Python через psycopg: подключение, курсор, commit.
    • Значения передаются в запрос параметрами %s, а не склейкой строк, и тестовые данные генерирует библиотека Faker.

HTTP и curl

Проверяем API прямо из терминала: запросы, коды ответа, заголовки и разбор JSON — без графических программ.

Начните здесь: curl: запросы из командной строки, Коды ответа HTTP, Заголовки HTTP: кеш, CORS, cookie, безопасность, URL-кодирование и разбор адреса, JSON-форматтер и валидатор

  1. Уровень: новичок · демонстрация в терминале · 1 мин

    curl и jq: проверяем API из терминала

    Автор: Лаборатория кодера · разбор по шпаргалке «curl» · лицензия CC BY 4.0

    Что в демонстрации

    • curl -s печатает только ответ, -i добавляет строку статуса и заголовки.
    • jq делает из ответа читаемый JSON и достаёт нужные поля: .[].name, select(.role == "admin").
    • Для скриптов: -o /dev/null -w '%{http_code}' даёт только код ответа, а -f превращает ошибку HTTP в код выхода.
    • --json отправляет JSON методом POST, -H добавляет заголовок, например токен авторизации.

    Оглавление

Python

Лекции Тимофея Хирьянова (МФТИ): от первой программы и циклов к функциональному стилю, ООП, модулям и обработке ошибок. Короткие приёмы для терминала — в шпаргалке.

Начните здесь: Python в одну строку: полезные приёмы для терминала

  1. Уровень: новичок · лекция · 1 ч 20 мин

    Первая лекция по Python: присваивание, арифметика, циклы

    Автор: Тимофей Хирьянов · МФТИ, курс «Алгоритмы и структуры данных на Python 3», лекция 1, 2017 · страница записи · лицензия CC BY 3.0

    Лекция у доски, без компьютера: всё объясняется мелом.

    О чём лекция

    • Что такое программирование: синтаксис языка, алгоритмы и структуры данных, прикладные библиотеки и практика.
    • Присваивание в Python связывает имя с объектом; обмен значений через временную переменную и множественным присваиванием a, b = b, a.
    • Арифметика: возведение в степень **, деление нацело // и остаток %, и как ими пользоваться в задачах.
    • Циклы while и for, вложенные циклы, break и continue, функция range() и условный оператор if.
  2. Уровень: средний · лекция · 2 ч 00 мин

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

    Автор: Тимофей Хирьянов · МФТИ, курс «Анализ данных на Python», занятие 2, 2021 · страница записи · лицензия CC BY 3.0

    О чём лекция

    • Императивный и функциональный стиль: функция как объект, который можно передать в другую функцию и вернуть из неё.
    • Рекурсия на примере снежинки Коха, нарисованной черепашкой turtle.
    • Итерируемые объекты и итераторы, ленивые генераторные выражения и range, который не хранит числа в памяти.
    • map, filter, lambda и zip: обработка последовательностей без явного цикла; свой итератор через __next__ и функция-генератор с yield.
    • Задачи на модуль itertools: перестановки, сочетания и groupby.
  3. Уровень: средний · лекция · 1 ч 10 мин

    ООП и принципы SOLID, модули и исключения в Python

    Автор: Тимофей Хирьянов · МФТИ, курс «Анализ данных на Python», занятие 1, 2021 · страница записи · лицензия CC BY 3.0

    О чём лекция

    • Пять принципов SOLID простыми словами и почему не стоит увлекаться наследованием.
    • Классы и объекты в Python: конструктор, атрибуты класса и экземпляра, специальные методы, статические и классовые методы, абстрактные классы.
    • Как делить программу на модули и не путаться в именах, что есть в стандартной библиотеке: sys, os, os.path, tempfile, csv.
    • Обработка ошибок: try, except, else и finally, и какие исключения лучше не перехватывать.

    Оглавление