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

Rust для джунов 5.000

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

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

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «Rust для джунов»Учеников на курсе 31
Сертификаты, выданные на курсе «Rust для джунов»Сертификатов выдано 0
Отзывы о курсе «Rust для джунов»Отзывов получено 3
Рейтинг курса «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 для мидлов»