Курс на Stepik
Обложка курса «Rust для джунов» на Stepik
500 ₽

Rust для джунов ★ 5.000

Открыть на
STEPIK.ORG

Rust с нуля до junior: Cargo, типы, функции, владение, заимствование, структуры, перечисления, коллекции, ошибки, трейты, тесты и итоговый CLI-проект.

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «Rust для джунов»Учеников на курсе 31
Сертификаты, выданные на курсе «Rust для джунов»Сертификатов выдано 0
Отзывы о курсе «Rust для джунов»Отзывов получено 4
Рейтинг курса «Rust для джунов»Рейтинг курса 5.000
Уроки в курсе «Rust для джунов»Количество уроков 171
Тесты в курсе «Rust для джунов»Количество квизов 799
Время прохождения курса «Rust для джунов»Время прохождения курса —
Стоимость курса «Rust для джунов»Стоимость курса 500 ₽ —
Обновления курса «Rust для джунов»Обновления курса — —
Дата публикации курса «Rust для джунов»Дата публикации курса — ———
Последнее обновление курса «Rust для джунов»Последнее обновление — ———
Сложность easy — ———

Содержание курса

Разделы в курсе «Rust для джунов» 23 раздела Уроки в курсе «Rust для джунов» 171 урок Тесты в курсе «Rust для джунов» 799 тестов Время прохождения курса «Rust для джунов» 1 ч. Последнее обновление курса «Rust для джунов» обн. 16 июля 2026

Модуль 1. Знакомство с Rust

7 уроков
1. Что такое Rust и какую проблему он решает ↗
2. Безопасность памяти без сборщика мусора: интуиция на пальцах ↗
3. Где Rust применяют и почему его любят инженеры ↗
4. Чем Rust отличается от Python, C и Java простыми словами ↗
5. Как устроено обучение в этом курсе и что ты будешь уметь в конце ↗
6. Компилятор-друг: почему Rust ругается заранее, а не в проде ↗
7. Настрой на успех: как не бояться ошибок компилятора ↗

Модуль 2. Установка и первый проект

7 уроков
1. Устанавливаем rustup: менеджер версий Rust ↗
2. Что такое cargo и почему это твой главный инструмент ↗
3. Проверяем установку: rustc --version и cargo --version ↗
4. Создаём первый проект командой cargo new ↗
5. Что внутри проекта: Cargo.toml, src/main.rs, target ↗
6. cargo run, cargo build и cargo check: в чём разница ↗
7. Debug и release сборки: быстрый старт и быстрая программа ↗

Модуль 3. Первая программа и вывод на экран

7 уроков
1. Разбираем hello world строчка за строчкой ↗
2. Функция main: точка входа в программу ↗
3. Макрос println! и почему у него восклицательный знак ↗
4. Плейсхолдеры {} и подстановка значений ↗
5. print! против println!: перевод строки ↗
6. Форматирование: {:?} для отладки и именованные аргументы ↗
7. eprintln! и вывод в поток ошибок ↗

Модуль 4. Переменные и неизменяемость

7 уроков
1. let: создаём переменную ↗
2. Почему в Rust переменные неизменяемы по умолчанию ↗
3. Ключевое слово mut: разрешаем изменение ↗
4. Затенение (shadowing): то же имя, новое значение ↗
5. Затенение против mut: когда что выбирать ↗
6. Константы const и чем они отличаются от let ↗
7. Области видимости: блоки {} и время жизни переменной ↗

Модуль 5. Скалярные типы данных

8 уроков
1. Целые числа: i32, u32 и семейство знаковых и беззнаковых ↗
2. Как выбрать размер целого и что значат биты ↗
3. Переполнение целых: паника в debug и что делать ↗
4. Числа с плавающей точкой: f64 и f32 ↗
5. Арифметика и приоритет операций ↗
6. Логический тип bool: true и false ↗
7. Символьный тип char: это не байт, а Unicode ↗
8. Литералы и разделители: 1_000_000, 0xff, суффиксы типов ↗

Модуль 6. Составные типы: кортежи и массивы

7 уроков
1. Кортеж: складываем разные типы в одну упаковку ↗
2. Доступ к элементам кортежа по индексу .0 .1 ↗
3. Деструктуризация кортежа через let ↗
4. Пустой кортеж (): тип «ничего» ↗
5. Массив: фиксированный набор одинаковых элементов ↗
6. Индексация массива и выход за границы ↗
7. Инициализация массива значением по умолчанию [0; 5] ↗

Модуль 7. Функции

8 уроков
1. Объявляем функцию с fn и вызываем её ↗
2. Параметры функции и их типы ↗
3. Возврат значения и тип результата ↗
4. Выражения против инструкций: главное различие Rust ↗
5. Неявный возврат: последнее выражение без точки с запятой ↗
6. return для раннего выхода из функции ↗
7. Комментарии: // и /* */ для заметок и объяснений ↗
8. Документирующие комментарии /// на будущее ↗

Модуль 8. Ветвление

7 уроков
1. if: делаем что-то по условию ↗
2. else и else if: развилки на несколько путей ↗
3. Условие обязано быть bool: никаких неявных истинностей ↗
4. if как выражение: присваиваем результат в let ↗
5. Сравнения и логические операторы && || ! ↗
6. Вложенные условия и как не запутаться ↗
7. Ранний возврат вместо глубокой вложенности ↗

Модуль 9. Циклы

7 уроков
1. loop: бесконечный цикл и зачем он нужен ↗
2. break: выходим из цикла ↗
3. continue: пропускаем шаг ↗
4. break со значением: loop, который что-то возвращает ↗
5. while: цикл с условием ↗
6. for и диапазоны: самый частый цикл в Rust ↗
7. Метки циклов 'outer: управляем вложенными циклами ↗

Модуль 10. Владение — сердце Rust

8 уроков
1. Зачем нужно владение: память без утечек и без сборщика ↗
2. Стек и куча простыми словами ↗
3. Правила владения: у каждого значения один хозяин ↗
4. Перемещение (move): передали значение — потеряли старое ↗
5. Почему после move старая переменная недоступна ↗
6. Владение и функции: значение уезжает в функцию ↗
7. Возврат владения из функции ↗
8. Drop на пальцах: как Rust сам убирает за собой ↗

Модуль 11. Copy и Clone

7 уроков
1. Проблема: почему числа ведут себя не как строки ↗
2. Трейт Copy: дешёвые типы копируются сами ↗
3. Какие типы являются Copy, а какие нет ↗
4. Clone: осознанная глубокая копия ↗
5. Когда .clone() оправдан, а когда это костыль ↗
6. Copy против Clone: как выбрать и не бояться ↗
7. Копирование в реальных примерах кода ↗

Модуль 12. Заимствование и ссылки

7 уроков
1. Ссылка &: одалживаем значение вместо передачи ↗
2. Заимствование в функциях: работаем без потери владения ↗
3. Изменяемая ссылка &mut: одалживаем с правом менять ↗
4. Правило одной изменяемой ссылки ↗
5. Нельзя смешивать &mut и & одновременно: почему ↗
6. Висячие ссылки: почему компилятор их не пропустит ↗
7. Разыменование * простыми словами ↗

Модуль 13. Срезы, String и &str

7 уроков
1. Срез: ссылка на часть коллекции ↗
2. Строковые срезы &str: окно в строку ↗
3. String против &str: владелец и заимствование ↗
4. Создание строк: String::new, to_string, String::from ↗
5. Литерал строки — это &str ↗
6. Передача строк в функции: брать &str, а не String ↗
7. Срезы массивов &[T] ↗

Модуль 14. Структуры

8 уроков
1. Зачем нужны структуры: свои типы под задачу ↗
2. Определяем структуру с полями ↗
3. Создаём экземпляр и читаем поля ↗
4. Изменяемые экземпляры и обновление полей ↗
5. Сокращённая инициализация полей и синтаксис .. ↗
6. Кортежные структуры и unit-структуры ↗
7. Дерив #[derive(Debug)] и печать структуры ↗
8. Владение внутри структур: храним свои данные ↗

Модуль 15. Методы и associated-функции

7 уроков
1. Блок impl: добавляем поведение к структуре ↗
2. Первый метод и приёмник &self ↗
3. &mut self: методы, которые меняют структуру ↗
4. self без ссылки: метод забирает владение ↗
5. Ассоциированные функции и конструктор new ↗
6. Несколько impl-блоков и организация кода ↗
7. Цепочки вызовов методов ↗

Модуль 16. Перечисления и сопоставление с образцом

8 уроков
1. enum: тип с несколькими вариантами ↗
2. Варианты с данными внутри ↗
3. match: главный инструмент разбора перечислений ↗
4. Обязательная полнота match и заглушка _ ↗
5. Привязка данных в ветках match ↗
6. if let: короткий match для одного случая ↗
7. while let: цикл, пока образец совпадает ↗
8. Методы для перечислений через impl ↗

Модуль 17. Option — отсутствие значения

7 уроков
1. Проблема null и как Rust её решает ↗
2. Тип Option: Some и None ↗
3. Разбор Option через match ↗
4. if let для быстрой проверки Some ↗
5. unwrap и expect: удобно, но осторожно ↗
6. unwrap_or и unwrap_or_else: значение по умолчанию ↗
7. Полезные методы: map, is_some, as_ref ↗

Модуль 18. Vec — динамический список

8 уроков
1. Зачем нужен Vec и чем он лучше массива ↗
2. Создаём вектор: Vec::new и макрос vec! ↗
3. Добавляем и убираем элементы: push и pop ↗
4. Доступ по индексу против метода get ↗
5. Перебор вектора циклом for ↗
6. Изменение элементов через &mut ↗
7. Вектор владеет элементами: move внутрь и наружу ↗
8. Полезные методы: len, contains, sort ↗

Модуль 19. Строки и HashMap подробно

8 уроков
1. Строка как UTF-8: почему нельзя индексировать по числу ↗
2. Склеиваем строки: push_str, push и + ↗
3. Перебор символов через chars и байтов через bytes ↗
4. Полезные методы строк: split, trim, replace, to_uppercase ↗
5. HashMap: хранилище пар ключ-значение ↗
6. Вставка и чтение: insert и get ↗
7. Обновление значений и entry ↗
8. Перебор HashMap и владение ключами и значениями ↗

Модуль 20. Обработка ошибок

8 уроков
1. Два вида ошибок: невосстановимые и восстановимые ↗
2. panic! и когда программа обязана упасть ↗
3. Тип Result: Ok и Err ↗
4. Разбор Result через match ↗
5. unwrap и expect на Result: быстро и рискованно ↗
6. Оператор ?: элегантное распространение ошибок ↗
7. Возврат Result из функции и из main ↗
8. Пишем понятные сообщения об ошибках ↗

Модуль 21. Дженерики и трейты: введение

8 уроков
1. Зачем нужны дженерики: избавляемся от дублирования ↗
2. Обобщённая функция с параметром типа ↗
3. Обобщённые структуры ↗
4. Трейт: общий контракт поведения ↗
5. Реализуем трейт для своего типа через impl ↗
6. Метод трейта по умолчанию ↗
7. Простое ограничение трейтом: ↗
8. Стандартные трейты рядом: Debug, Clone, PartialEq ↗

Модуль 22. Модули, тесты и внешние крейты

8 уроков
1. Зачем нужны модули: наводим порядок в коде ↗
2. mod и вложенные модули ↗
3. pub: делаем элементы публичными ↗
4. use: подключаем пути коротко ↗
5. Разбиваем проект на файлы-модули ↗
6. Крейты и стандартная библиотека ↗
7. Пишем первый тест: #[test] и assert! ↗
8. cargo test, assert_eq! и подключение крейта через cargo add ↗

Модуль 23. Итоговый проект: менеджер задач в терминале

7 уроков
1. Задумка проекта: что должен уметь наш CLI-менеджер задач ↗
2. Проектируем данные: структура Task и enum статуса ↗
3. Хранилище задач на Vec и методы добавления ↗
4. Читаем ввод пользователя и разбираем команды ↗
5. Отмечаем выполнение и удаляем задачи с обработкой ошибок ↗
6. Наводим красоту: вывод списка и понятные сообщения ↗
7. Куда двигаться дальше: анонс курса «Rust для мидлов» ↗