О курсе
Курс Rust Developer. Professional от Otus ориентирован на разработчиков, уже знакомых с программированием, и посвящён углублённому изучению языка Rust. В программе рассматриваются ключевые отличия Rust от других языков, идиоматический код с использованием стандартной библиотеки, организация проекта, владение и заимствование, статический и динамический полиморфизм, макросы.
Отдельный блок посвящён многопоточности: разбираются способы избегания гонок данных, трейты Send и Sync, синхронизация потоков. В практической части предлагается реализовать ThreadPool, освоить модель акторов и создать многопользовательский чат. Также рассматриваются основы асинхронного программирования с async/await и принципы работы асинхронных задач и планировщиков.
Блок архитектуры включает идиомы функционального и объектно-ориентированного программирования в Rust, стратегии обработки ошибок, инварианты и паттерны проектирования. Практические занятия направлены на принятие архитектурных решений и написание идиоматического кода.
В разделе экосистемы рассматриваются популярные крейты для математики, сериализации, многопоточности и тестирования, работа с логами, отладкой и профилированием (Valgrind, Flamegraph, Miri), основы FFI и создание интерфейсов между Rust и другими языками. Также включены темы по backend, frontend, GUI, blockchain и GameDev с примерами кода и смарт-контрактов.
Курс завершается проектной работой. Занятия проводят преподаватели-практики: Кирилл Федченко (Lead Rust Developer, InfinitySwap), Илья Богданов (Rust Developer, Enso), Павел Ершов (Rust Developer) и Сергей Потамошнев. По описанию программы, преподаватели делятся опытом, разбирают кейсы студентов и дают обратную связь по домашним заданиям.
Что рассматривается в программе
- Рассматривается использование языка Rust для разработки ПО
- Разбирается развёртывание Rust и настройка среды разработки
- Изучаются подходы к созданию надёжного, отказоустойчивого и высокопроизводительного ПО
- Рассматривается тестирование кода
- Разбирается работа со сторонними библиотеками (крейтами)
- Изучается написание асинхронного кода
- Рассматриваются многопоточность, синхронизация и модель акторов
- Изучаются инструменты отладки и профилирования: Valgrind, Flamegraph, Miri
Кому может быть полезен курс
- Разработчикам на системных языках (C, C++ и других), интересующимся особенностями Rust
- Разработчикам на интерпретируемых или высокоуровневых языках (Python, JS, Java, C# и других), желающим ознакомиться с низкоуровневой разработкой на Rust
- Действующим Rust-разработчикам и выпускникам базового курса Rust Developer. Basic, которым нужно углублённое изучение языка
- Специалистам, имеющим базовые знания Rust или другого языка программирования и знакомым с базами данных
Вопросы о программе
Какие предварительные знания нужны для прохождения курса?
По описанию программы, требуются базовое знание Rust или любого другого языка программирования, а также знание баз данных.
В каком формате проходят занятия?
Занятия в Otus проводятся в формате онлайн-вебинаров. Предусмотрены практика, возможность задать вопрос и получить обратную связь от преподавателей.
Какие темы включает программа курса?
Программа охватывает особенности Rust, многопоточность и асинхронность, архитектуру и паттерны проектирования, экосистему крейтов, а также прикладные направления: backend, frontend, GUI, blockchain и GameDev. Завершается курс проектной работой.
Кто ведёт курс?
В числе преподавателей указаны Кирилл Федченко (Lead Rust Developer, InfinitySwap), Илья Богданов (Rust Developer, Enso), Павел Ершов (Rust Developer) и Сергей Потамошнев.