Rust Developer. Basic. 2025 [Otus] [Сергей Потамошнев, Артем Павлов]
Разрабатывайте безопасное и отказоустойчивое ПО на языке Rust
Для кого этот курс?
Rust используется в веб-разработке, в разработке системного ПО, мобильной разработке, разработке встраиваемых систем и даже в анализе данных. А ещё — в блокчейне и машинном обучении. На этом курсе вы изучите особенности работы с низкоуровневым ПО, подходы к разработке безопасного и отказоустойчивого ПО, а также основные библиотеки Rust.
Вы научитесь:
Введение
Познакомимся с языком. Узнаем, как устроен курс. Поговорим о разработке ПО в целом.
Тема 1: Знакомство с Rust. Подготовка к обучению
Тема 2: Основы архитектуры компьютера
Синтаксис Rust и основы Computer Science
Разберёмся с базовыми концепциями разработки ПО. Рассмотрим и попрактикуемся в реализации этих концепций с использованием Rust.
Тема 1: Типы данных. Переменные и функции
Тема 2: Сложные типы данных. Кортеж, структура, перечисление
Тема 3: Ветвление и циклы
Тема 4: Практика: Типы данных. Переменные и функции. Ветвление и циклы
Тема 5: Управление ресурсами. Клонирование. Трейт Copy. Принцип владения
Тема 6: Владение. Ссылки и заимствование
Тема 7: Практика: Владение и заимствование
Тема 8: Коллекции. Слайсы, массивы, строки
Тема 9: Q&A сессия
Тема 10: Структуры и методы. Инкапсуляция
Тема 11: Перечисления и pattern matching
Тема 12: Практика: Структуры и методы. Перечисления и pattern matching
Тема 13: Введение в систему типов. Типы стандартной библиотеки: Result, Option, ()
Тема 14: Введение в лямбда-функции
Тема 15: Обрабока ошибок. Оператор ?. Обработчики Result, Option
Тема 16: Практика: работа с Result, Option
Типы, полиморфизм и дженерики
Познакомимся с утилитарными элементами стандартной библиотеки. Научимся работать со стандартными коллекциями и оценивать сложность алгоритмов. Научимся писать сложный полиморфный код и рассуждать о типах.
Тема 1: Обобщённое программирование. Статический полиморфизм
Тема 2: Q&A сессия
Тема 3: Времена жизни
Тема 4: Обобщённое программирование. Наследование
Тема 5: Обобщенное программирование. Динамический полиморфизм. dyn Trait. dyn Any
Тема 6: Практика: Обобщённое программирование
Тема 7: Коллекции. Big O нотация. Хэш-мэп и вектор
Тема 8: Коллекции. Итераторы.
Тема 9: Практика: коллекции и итераторы
Тема 10: Функции. Типы функций. Лямбда-функции
Тема 11: Q&A сессия
Многопоточность и дополнительные темы
Изучим концепцию многопоточности и увидим, как Rust упрощает написание многопоточных приложений.
Тема 1: Работа с кучей. Box, Arc, Rc. RAII
Тема 2: Потоки. Создание потоков. Send + Sync
Тема 3: Лямбды и потоки. Send + Sync. Использование move и Arc
Тема 4: Mutex, Atomic
Тема 5: Практика: потоки, куча, mutex, atomic
Тема 6: Interior mutability
Тема 7: Q&A сессия
Тема 8: Сборка. Модули
Тема 9: Продвинутые элементы синтаксиса
Тема 10: Макросы: декларативные и процедурные
Тема 11: Асинхронность. Понятие Event Loop, проблема 10k соединений. Использование async/await
Тема 12: Пример: разбор приложения на Rust
Тема 13: Q&A сессия
Проектная работа
Эксперты-практики делятся опытом, разбирают кейсы студентов и дают развернутый фидбэк на домашние задания
Преподаватели:
- Сергей Потамошнев
Ведущий разработчик
10+ лет опыта промышленной разработки, в том числе создания веб-приложений, инфраструктурных решений, высоконагруженных систем, баз данных и аналитических систем.
Образование: СурГу, инженер - программист, факультет информационных технологий.
- Артём Павлов
Опытный Rust программист. Являюсь создателем и одним из главных мейнтейнеров проекта RustCrypto. Занимался разработкой программного обеспечения для беспилотного автотранспорта. На данный момент занимаюсь разработкой баз данных и средств криптографических зашиты информации
Образование: степень бакалавра и магистра в Московском Физико-Техническом Институте, закончил аспирантуру в Сколковском Институте Науки и Технологий
Цена: 43680 руб.
Разрабатывайте безопасное и отказоустойчивое ПО на языке Rust
Для кого этот курс?
- Для тех, кто знаком с основами программирования и хочет развиваться в разработке на Rust: разберётесь в синтаксисе Rust, получите ценный практический опыт
- Для начинающих разработчиков на системных языках С и C++: познакомитесь с языком, который не уступает в производительности C и C++, а также гарантирует безопасность в работе с памятью
- Для начинающих разработчиков на интерпретируемых или высокоуровневых языках (Python, JS, Java, C#): сможете увеличить производительность приложений
Rust используется в веб-разработке, в разработке системного ПО, мобильной разработке, разработке встраиваемых систем и даже в анализе данных. А ещё — в блокчейне и машинном обучении. На этом курсе вы изучите особенности работы с низкоуровневым ПО, подходы к разработке безопасного и отказоустойчивого ПО, а также основные библиотеки Rust.
Вы научитесь:
- пользоваться инструментарием Rust
- чинить, собирать и запускать приложения
- реализовывать функции
- работать с циклами, ветвлениями, кортежами, структурами и перечислениями
- писать программы в процедурном стиле с использованием ссылок
- работать со слайсами, строками и массивами
- писать программы в объектном стиле
- переиспользовать код и обобщать поведение с помощью шаблонов и трейтов
- писать приложения с полиморфизмом
- писать безопасный сложный многопоточный код
- создавать декларативные макросы
- использовать асинхронные вызовы для работы с сетью и файловой системой
- читать и писать сложные Rust-приложения
Введение
Познакомимся с языком. Узнаем, как устроен курс. Поговорим о разработке ПО в целом.
Тема 1: Знакомство с Rust. Подготовка к обучению
Тема 2: Основы архитектуры компьютера
Синтаксис Rust и основы Computer Science
Разберёмся с базовыми концепциями разработки ПО. Рассмотрим и попрактикуемся в реализации этих концепций с использованием Rust.
Тема 1: Типы данных. Переменные и функции
Тема 2: Сложные типы данных. Кортеж, структура, перечисление
Тема 3: Ветвление и циклы
Тема 4: Практика: Типы данных. Переменные и функции. Ветвление и циклы
Тема 5: Управление ресурсами. Клонирование. Трейт Copy. Принцип владения
Тема 6: Владение. Ссылки и заимствование
Тема 7: Практика: Владение и заимствование
Тема 8: Коллекции. Слайсы, массивы, строки
Тема 9: Q&A сессия
Тема 10: Структуры и методы. Инкапсуляция
Тема 11: Перечисления и pattern matching
Тема 12: Практика: Структуры и методы. Перечисления и pattern matching
Тема 13: Введение в систему типов. Типы стандартной библиотеки: Result, Option, ()
Тема 14: Введение в лямбда-функции
Тема 15: Обрабока ошибок. Оператор ?. Обработчики Result, Option
Тема 16: Практика: работа с Result, Option
Типы, полиморфизм и дженерики
Познакомимся с утилитарными элементами стандартной библиотеки. Научимся работать со стандартными коллекциями и оценивать сложность алгоритмов. Научимся писать сложный полиморфный код и рассуждать о типах.
Тема 1: Обобщённое программирование. Статический полиморфизм
Тема 2: Q&A сессия
Тема 3: Времена жизни
Тема 4: Обобщённое программирование. Наследование
Тема 5: Обобщенное программирование. Динамический полиморфизм. dyn Trait. dyn Any
Тема 6: Практика: Обобщённое программирование
Тема 7: Коллекции. Big O нотация. Хэш-мэп и вектор
Тема 8: Коллекции. Итераторы.
Тема 9: Практика: коллекции и итераторы
Тема 10: Функции. Типы функций. Лямбда-функции
Тема 11: Q&A сессия
Многопоточность и дополнительные темы
Изучим концепцию многопоточности и увидим, как Rust упрощает написание многопоточных приложений.
Тема 1: Работа с кучей. Box, Arc, Rc. RAII
Тема 2: Потоки. Создание потоков. Send + Sync
Тема 3: Лямбды и потоки. Send + Sync. Использование move и Arc
Тема 4: Mutex, Atomic
Тема 5: Практика: потоки, куча, mutex, atomic
Тема 6: Interior mutability
Тема 7: Q&A сессия
Тема 8: Сборка. Модули
Тема 9: Продвинутые элементы синтаксиса
Тема 10: Макросы: декларативные и процедурные
Тема 11: Асинхронность. Понятие Event Loop, проблема 10k соединений. Использование async/await
Тема 12: Пример: разбор приложения на Rust
Тема 13: Q&A сессия
Проектная работа
Эксперты-практики делятся опытом, разбирают кейсы студентов и дают развернутый фидбэк на домашние задания
Преподаватели:
- Сергей Потамошнев
Ведущий разработчик
10+ лет опыта промышленной разработки, в том числе создания веб-приложений, инфраструктурных решений, высоконагруженных систем, баз данных и аналитических систем.
Образование: СурГу, инженер - программист, факультет информационных технологий.
- Артём Павлов
Опытный Rust программист. Являюсь создателем и одним из главных мейнтейнеров проекта RustCrypto. Занимался разработкой программного обеспечения для беспилотного автотранспорта. На данный момент занимаюсь разработкой баз данных и средств криптографических зашиты информации
Образование: степень бакалавра и магистра в Московском Физико-Техническом Институте, закончил аспирантуру в Сколковском Институте Науки и Технологий
Цена: 43680 руб.
https://otus.ru/lessons/rust-developer-basic/