О курсе

Курс 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) и Сергей Потамошнев.