Путь
Изучайте Rust
Бесплатный интерактивный онлайн-курс по Rust. На каждом уроке вы пишете код на Rust — синтаксис, ownership и borrowing, lifetimes, типажи, сопоставление с образцом — с подсказками ИИ, когда borrow checker сопротивляется, и бесплатным сертификатом по окончании.
16,687+ codders записались
- Для начинающих
Помощь ИИ при написании кода
Практические интерактивные уроки
Аудио-озвучка к каждому уроку
Тесты для проверки знаний
Бесплатный сертификат о прохождении
Программа
Раздел 1
Fundamentals
Начать разделНачатьРазвернутьСвернутьBuild a strong foundation with essential concepts and basic skillsВведение
4 уроков324- 01RustЗадача
- 02Hello World!ЗадачаКвиз
- 03КомментарииКвиз
- 04Базовая структура программыЗадачаКвиз
Переменные. Часть 1
5 уроков539- 01ЧислаЗадачаКвиз
- 02CharЗадачаКвиз
- 03СтрокиЗадачаКвиз
- 04BooleanЗадачаКвиз
- 05Изменяемые переменныеЗадачаКвиз
Переменные. Часть 2
5 уроков433- 01Объявление типаЗадачаКвиз
- 02Соглашения об именованииКвиз
- 03Вывод типовЗадачаКвиз
- 04Повторение: инициализация переменныхЗадача
- 05Приведение типовЗадачаКвиз
Операторы. Часть 1
5 уроков438- 01Арифметические операторыЗадачаКвиз
- 02Оператор остатка от деленияЗадачаКвиз
- 03Арифметические сокращенияЗадачаКвиз
- 04Операторы сравненияЗадачаКвиз
- 05Сравнение строкКвиз
Операторы. Часть 2
4 уроков424- 01Логические операторы. Часть 1ЗадачаКвиз
- 02Логические операторы. Часть 2ЗадачаКвиз
- 03Повторение — простая логикаЗадача
- 04Логические операторы. Часть 3ЗадачаКвиз
Принятие решений
5 уроков532- 01Выражения IfЗадачаКвиз
- 02Конструкция If-ElseЗадачаКвиз
- 03Оператор MatchЗадачаКвиз
- 04Повторение: If-ElseЗадача
- 05Вложенные If-ElseЗадачаКвиз
Основы ввода-вывода
4 уроков417- 01Вывод в консольЗадачаКвиз
- 02Чтение ввода пользователяЗадачаКвиз
- 03Повторение — До 120Задача
- 04Повторение — True или FalseЗадача
Приложение-калькулятор
Проект4 уроков1- 01Приветственное сообщениеЗадача
- 02Получение чиселПроект
- 03Основные операцииПроект
- 04Форматированный выводПроект
Циклы
8 уроков851- 01Цикл For по последовательностиЗадачаКвиз
- 02Цикл WhileЗадачаКвиз
- 03Оператор BreakЗадачаКвиз
- 04Оператор ContinueЗадачаКвиз
- 05Вложенные циклыЗадачаКвиз
- 06Метки цикловЗадачаКвиз
- 07Бесконечный циклЗадачаКвиз
- 08Повторение — Динамический вводЗадача
Связывание переменных
4 уроков230- 01Область видимостиКвиз
- 02Затенение, часть 1ЗадачаКвиз
- 03Связывание переменнойКвиз
- 04Затенение, часть 2ЗадачаКвиз
Функции
6 уроков634- 01Объявление функцийЗадачаКвиз
- 02Параметры и аргументыЗадачаКвиз
- 03Возвращаемые значенияЗадачаКвиз
- 04Множественные возвращаемые значенияЗадачаКвиз
- 05Повторение: функция SigmaЗадача
- 06Повторение: функция валидацииЗадача
Основы массивов
5 уроков430- 01Объявление массивовЗадачаКвиз
- 02Массив как параметрКвиз
- 03Доступ к элементамЗадачаКвиз
- 04Изменение массивовЗадачаКвиз
- 05Повторение — Красивый вывод массиваЗадача
Массивы: продолжение
5 уроков423- 01Изменяемые ссылочные массивыЗадачаКвиз
- 02Методы массивовЗадачаКвиз
- 03Повторение — Массив произведенийЗадача
- 04Повторение — Перевернутый массивЗадача
- 05Улучшенный выводКвиз
Итерация по массивам
4 уроков333- 01Работа с диапазонамиЗадачаКвиз
- 02Улучшенный цикл forЗадачаКвиз
- 03Заимствование в циклеКвиз
- 04Основные операции с массивамиЗадачаКвиз
Операции со строками
4 уроков424- 01Методы строкЗадачаКвиз
- 02Макрос format!ЗадачаКвиз
- 03Преобразование строкЗадачаКвиз
- 04Итоги — FormatЗадача
Итоговые проекты
3 уроков37- 01Числовой узорЗадачаКвиз
- 02Поиск паттерновЗадача
- 03Калькулятор оценок студентовЗадача
Раздел 2
Logic & Flow
Начать разделНачатьРазвернутьСвернутьDevelop problem-solving skills and create dynamic, interactive programsПродвинутое управление потоком выполнения
6 уроков640- 01Выражение 'match'ЗадачаКвиз
- 02Сопоставление нескольких значенийЗадачаКвиз
- 03Сопоставление диапазоновЗадачаКвиз
- 04Выражение 'if let'ЗадачаКвиз
- 05Циклы как выраженияЗадачаКвиз
- 06Итоги — Простой парсер командЗадача
Введение в векторы
8 уроков756- 01Что такое вектор?Квиз
- 02Создание вектораЗадачаКвиз
- 03Добавление элементов с помощью pushЗадачаКвиз
- 04Доступ к элементам вектораЗадачаКвиз
- 05Итерация по векторуЗадачаКвиз
- 06Изменяемая итерацияЗадачаКвиз
- 07Удаление элементовЗадачаКвиз
- 08Итоги — Простой счетчик очковЗадача
Список дел в командной строке
5 уроков5- 01Настройка проектаЗадача
- 02Добавление задачиЗадача
- 03Просмотр всех задачЗадача
- 04Удаление задачиЗадача
- 05Итоговый кодЗадача
Группировка данных с помощью структур
7 уроков650- 01Что такое структура?Квиз
- 02Обзор структурЗадачаКвиз
- 03Доступ к полям структурыЗадачаКвиз
- 04Изменяемые структурыЗадачаКвиз
- 05Структуры как параметры функцийЗадачаКвиз
- 06Кортежные структурыЗадачаКвиз
- 07Итоги: создание структуры BookЗадача
Пары «ключ-значение» в Hash Map
8 уроков653- 01Что такое Hash Map?Квиз
- 02Создание Hash MapКвиз
- 03Вставка пар «ключ-значение»ЗадачаКвиз
- 04Доступ к значениямЗадачаКвиз
- 05Итерация по Hash MapЗадачаКвиз
- 06Обновление значенияЗадачаКвиз
- 07Удаление парыЗадачаКвиз
- 08Итоги — Счетчик словЗадача
Обработка отсутствия значения с 'Option'
7 уроков645- 01Что такое 'Option'?Квиз
- 02Использование 'match' с 'Option'ЗадачаКвиз
- 03is_some() и is_none()ЗадачаКвиз
- 04Распаковка 'Option'ЗадачаКвиз
- 05Метод expectЗадачаКвиз
- 06Значение по умолчанию: unwrap_orЗадачаКвиз
- 07Итоги: поиск элементаЗадача
Обработка ошибок с помощью 'Result'
7 уроков648- 01Что такое 'Result'?Квиз
- 02Использование 'match' с 'Result'ЗадачаКвиз
- 03is_ok() и is_err()ЗадачаКвиз
- 04Сокращения: unwrap и expectЗадачаКвиз
- 05Оператор вопросительного знака '?'ЗадачаКвиз
- 06Парсинг строк в числаЗадачаКвиз
- 07Итоги: функция безопасного деленияЗадача
Проект: Простой инвентарь товаров
5 уроков5- 01Настройка проектаЗадача
- 02Добавление товараЗадача
- 03Проверка наличияЗадача
- 04Продажа товараЗадача
- 05Собираем всё воединоЗадача
Срезы строк и не только
5 уроков432- 01String и &strКвиз
- 02Создание срезов строкЗадачаКвиз
- 03Срезы как параметры функцийЗадачаКвиз
- 04Другие срезыЗадачаКвиз
- 05Итоги: поиск первого словаЗадача
Замыкания и анонимные функции
5 уроков431- 01Что такое замыкание?Квиз
- 02Определение простого замыканияЗадачаКвиз
- 03Замыкания с параметрамиЗадачаКвиз
- 04Захват окруженияЗадачаКвиз
- 05Итоги: Простое замыкание-сумматорЗадача
Финальные испытания
3 уроков3- 01Повторение — Уникальные элементыЗадача
- 02Повторение — Валидатор профиля пользователяЗадача
- 03Повторение — Сводка оценокЗадача
Раздел 3
Object Oriented Programming
Начать разделНачатьРазвернутьСвернутьDiscover how to organize code with classes, objects, and reusable structuresМетоды и поведение
7 уроков748- 01Введение в блоки реализацииЗадачаКвиз
- 02Параметр SelfЗадачаКвиз
- 03Изменяемые методыЗадачаКвиз
- 04Ассоциированные функцииЗадачаКвиз
- 05Несколько блоков реализацииЗадачаКвиз
- 06Цепочки вызовов методовЗадачаКвиз
- 07Итоги: действия с RectangleЗадача
Инкапсуляция и модули
6 уроков543- 01Основы модулейКвиз
- 02Ключевое слово PublicЗадачаКвиз
- 03Приватные поляЗадачаКвиз
- 04ГеттерыЗадачаКвиз
- 05СеттерыЗадачаКвиз
- 06Итоги — Безопасный сейфЗадача
Продвинутые перечисления
5 уроков535- 01Перечисления с даннымиЗадачаКвиз
- 02Методы в перечисленияхЗадачаКвиз
- 03Сопоставление вариантов с даннымиЗадачаКвиз
- 04Снова об Option EnumЗадачаКвиз
- 05Итоги — перечисление ShapeЗадача
Проект: Виртуальный питомец
Проект5 уроков1- 01Определение питомцаЗадача
- 02Кормление питомцаПроект
- 03Игры с питомцемПроект
- 04Отчет о состоянииПроект
- 05Финальное взаимодействиеПроект
Обобщения
5 уроков533- 01Обобщённые структурыЗадачаКвиз
- 02Обобщённые методыЗадачаКвиз
- 03Несколько обобщённых типовЗадачаКвиз
- 04Обобщённые функцииЗадачаКвиз
- 05Повторение — Координатная точкаЗадача
Определение трейтов
6 уроков641- 01Что такое трейт?ЗадачаКвиз
- 02Реализация трейтовЗадачаКвиз
- 03Реализации по умолчаниюЗадачаКвиз
- 04Переопределение реализаций по умолчаниюЗадачаКвиз
- 05Трейты с параметрамиЗадачаКвиз
- 06Итоги — Media PlayerЗадача
Стандартные трейты
5 уроков536- 01Трейт DebugЗадачаКвиз
- 02Трейт DisplayЗадачаКвиз
- 03Clone и CopyЗадачаКвиз
- 04Трейты равенстваЗадачаКвиз
- 05Итоги — Printable PointЗадача
Трейты как ограничения
5 уроков534- 01Синтаксис ограничений трейтовЗадачаКвиз
- 02Множественные ограниченияЗадачаКвиз
- 03Конструкция whereЗадачаКвиз
- 04Возврат типов с трейтамиЗадачаКвиз
- 05Итоги — Обобщённый принтерЗадача
Трейт-объекты
4 уроков425- 01Динамическая диспетчеризацияЗадачаКвиз
- 02Векторы трейтовЗадачаКвиз
- 03Итерация по трейт-объектамЗадачаКвиз
- 04Повторение — Менеджер зоопаркаЗадача
Проект: Система документов
Проект5 уроков1- 01Трейт DrawЗадача
- 02Компонент TextПроект
- 03Компонент ButtonПроект
- 04Структура ScreenПроект
- 05Запуск ScreenПроект
Паттерны проектирования в Rust
5 уроков531- 01Паттерн NewtypeЗадачаКвиз
- 02КомпозицияЗадачаКвиз
- 03Трейт DropЗадачаКвиз
- 04From и IntoЗадачаКвиз
- 05Итоги — Мок-объект Smart PointerЗадача
Финальные испытания
3 уроков3- 01Обобщенный стекЗадача
- 02Каталог библиотекиЗадача
- 03Калькулятор площади фигурЗадача
Почему стоит изучать Rust на Coddy
- Пишите и запускайте настоящий Rust-код прямо в браузере. Никакой установки rustup, никакой настройки Cargo. На каждом уроке ваша программа компилируется на сервере, и вы сразу видите вывод (и ошибки компилятора, если они есть).
- Что делает Rust особенным: ownership, borrowing, lifetimes, traits, перечисления и pattern matching, обработка ошибок через
Result. Основы Rust, которые нужны каждому системному программисту. - AI-подсказки помогают разобраться со знаменитыми строгими ошибками компилятора Rust — так borrow checker на старте становится не стеной, а учителем.
- Бесплатный сертификат по Rust после завершения курса. Весомый аргумент для вакансий в системном программировании, инфраструктуре, блокчейне и embedded-разработке, где Rust всё чаще становится языком по умолчанию.
Частые вопросы об изучении Rust
Легко ли изучать Rust?
У Rust репутация сложного языка — в основном из-за ownership и borrow checker, концепций, которых нет в большинстве других языков. Зато компилятор ловит огромный класс ошибок ещё на этапе сборки. Курс знакомит с ownership и borrowing постепенно, через небольшие упражнения, которые превращают borrow checker из стены в учителя.
Для чего используется Rust?
Системное программирование, инфраструктура (части ядра Linux, Cloudflare, Discord, Dropbox), консольные утилиты, embedded-разработка, WebAssembly и всё большая часть блокчейн- и крипто-кода. Rust занимает те же ниши, что C и C++, но с куда более строгими гарантиями безопасности.
Сколько времени нужно, чтобы выучить Rust?
Основы Rust — синтаксис, поток управления, функции, структуры, enums — занимают две-четыре недели ежедневной практики. На то, чтобы освоиться с ownership, borrowing, lifetimes и traits, обычно уходит ещё от двух до шести месяцев. Мастерство (продвинутые lifetimes, async, unsafe Rust) — это уже долгий путь, и проще всего его пройти на реальных проектах.
Что учить — Rust или Go?
Оба — современные, статически типизированные языки для серверов и инфраструктуры, но компромиссы у них разные. Go делает ставку на быструю компиляцию, простую конкурентность и компактную спецификацию — его проще освоить. Rust — на производительность и безопасность памяти без сборщика мусора, его сложнее учить, но он работает на более низком уровне. Берите Go для бэкендов и облачных инструментов; берите Rust для системного программирования, кода, критичного к производительности, и всего, что раньше писали на C/C++.
Можно ли учить Rust онлайн бесплатно?
Да. Интерактивный курс по Rust бесплатный — полноценные уроки, практические задания, тесты и сертификат. Rust компилируется на сервере, так что устанавливать rustup или Cargo локально не нужно — можно сразу писать настоящий Rust.
Выдаётся ли сертификат после курса Rust?
Да. По завершении курса по Rust вы получаете бесплатный сертификат. Это проверяемое подтверждение, которое можно добавить в резюме или опубликовать на LinkedIn вместе с вашими проектами на Rust, CLI-утилитами или вкладом в open-source.