Rust Developer. Professional

Best Practices по языку программирования Rust

28 ноября

Professional

5 месяцев

Онлайн

Вт/Чт 20:00 Мск

Для кого этот курс?

Для разработчиков на системных языках (С, C++, ...): вы изучите сильные и слабые стороны языка Rust, сможете избежать ошибок в работе с памятью и многопоточностью, научитесь проектировать высокопроизводительное ПО

Для разработчиков на интепретируемых или высокоуровневых языках (Python, JS, Java, C#, ...): с помощью Rust вы значительно ускорите работу критических секций и увеличите производительность ПО; изучите особенности работы с низкоуровневым ПО, а также исследуете подходы к разработке безопасных и отказоустойчивых

Для действующих Rust-разработчиков и тех, кто прошёл базовый курс Rust Developer. Basic: сможете повысить квалификацию с помощью новых знаний и навыков

Необходимые знания

  • базовое знание Rust или любого другого языка программирования
  • знание баз данных
Пройти тестирование

Что вам даст этот курс?

Вы рассмотрите ключевые особенности Rust и сможете не только разрабатывать сложные программные продукты, но и в целом лучше проектировать ПО. Мы разберём наиболее популярные библиотеки и проекты, а также многопоточность и архитектуру программного обеспечения

Вы научитесь:

  • использовать язык Rust для разработки ПО
  • разворачивать Rust и среду разработки
  • создавать надёжное, отказоустойчивое и высокопроизводительное ПО
  • тестировать код
  • использовать сторонние библиотеки
  • писать асинхронный код

Вы получите знания и практические навыки в областях:

1.  computer science
2.  проектировании и архитектуре ПО
3.  бэкенд- и фронтенд-разработке
4.  блокчейн-разработке
5.  геймдеве

Процесс обучения

У нас нет предзаписанных уроков!


Занятия в OTUS – это онлайн-вебинары. Преподаватели-практики помогут погрузиться в теорию, обучат на реальных примерах, расскажут о необходимых в работе инструментах. Вы всегда сможете задать вопрос и получить обратную связь.
И самое главное – сможете практиковаться!

Повышайте квалификацию


Прокачайте навыки разработки до уровня middle+ или senior

Учитесь у экспертов


Перенимайте опыт практикующих Rust-разработчиков

Дополните портфолио


Разработайте собственный проект – получите преимущество на интервью

Партнеры

  • Разместите резюме в базе OTUS: так наши партнёры смогут пригласить вас на интервью
  • Участвуйте в карьерных мероприятиях: там мы разбираемся, как составить резюме
  • Проявите себя на занятиях и получите возможность пройти собеседование у партнёров OTUS

Rust Developer

Перспективы направления
Средний уровень зарплат в Москве:
110 000Junior+ специалист
220 000Middle+ специалист
350 000Senior специалист
100
актуальных вакансий

Работодатели курса

Формат обучения

Интерактивные вебинары

2 занятия по 2 ак.ч. в неделю. Доступ к записям и учебным материалам – навсегда

Практика


Итоговая проектная работа усилит знания, а её успешная защита – откроет новые карьерные возможности

Активное комьюнити

Общайтесь с преподавателями на вебинарах и в закрытом Telegram-чате, получайте развернутое ревью на ДЗ

Программа

Основные концепции Rust

Рассмотрим основные концепции и особенности языка программирования Rust. Установим основные инструменты, компилятор и среду разработки. Разберёмся в базовом и продвинутом синтаксисе Rust.

Тема 1: Основные концепции и особенности Rust // ДЗ

Тема 2: Основные элементы синтаксиса. Часть 1

Тема 3: Основные элементы синтаксиса. Часть 2

Тема 4: Владение и заимствование // ДЗ

Тема 5: Обобщённое программирование. Часть 1

Тема 6: Обобщённое программирование. Часть 2

Тема 7: Макросы

Тема 8: Дополнительные вопросы синтаксиса // ДЗ

Модули, крейты и тесты

Научимся разбивать проект на модули, писать тесты и примеры. Разберёмся с крейтами и пакетами. Воспользуемся сторонними крейтами.

Тема 1: Разбиение проекта на файлы и логические блоки. Тесты и примеры // ДЗ

Тема 2: Пакеты и крейты. Использование сторонних крейтов. Версии и features

Тема 3: Консультация по вопросам ДЗ (Q&A)

Стандартная библиотека

Научимся использовать стандартные перечисления и реализовывать стандартные трайты. Разберёмся с управлением памятью и структурами данных. Научимся читать и писать файл и общаться по сети.

Тема 1: Основные перечисления и типажи. Часть 1 // ДЗ

Тема 2: Основные перечисления и типажи. Часть 2

Тема 3: Умные указатели и коллекции. Часть 1

Тема 4: Умные указатели и коллекции. Часть 2

Тема 5: Ввод и вывод // ДЗ

Тема 6: Работа с файлами и сетью

Тема 7: Пишем клиент-серверное приложение // ДЗ

Многопоточность

Познакомимся с проблемами многопоточного кода. Запустим выполнение задачи в отдельном системном потоке. Напишем свой ThreadPool. Создадим асинхронное клиент-серверное приложение. Организуем взаимодействие между процессами.

Тема 1: Проблемы многопоточного кода. Запуск параллельного потока

Тема 2: Контроль корректности многопоточного приложения на стадии компиляции // ДЗ

Тема 3: Пишем свой ThreadPool

Тема 4: Консультация по вопросам ДЗ (Q&A)

Тема 5: Типы многозадачности. Асинхронность

Тема 6: Асинхронность под капотом

Тема 7: Делаем клиент-серверное приложение асинхронным // ДЗ

Тема 8: Межпроцессное взаимодействие и синхронизация

Тема 9: Консультация по вопросам ДЗ (Q&A)

Архитектура

Научимся проектировать архитектуру Rust приложений. Рассмотрим элементы функционального и объектно-ориентированного программирования в Rust. Углубимся в обработку ошибок. Будем поддерживать инварианты и использовать паттерны.

Тема 1: Rust и ООП // ДЗ

Тема 2: Rust и ФП

Тема 3: Обработка ошибок // ДЗ

Тема 4: Инварианты

Тема 5: Паттерны // ДЗ

Фреймворки и библиотеки

Рассмотрим современную инфраструктуру Rust. Научимся логировать, отлаживать и профилировать приложение. Попробуем применить Rust в различных областях IT.

Тема 1: Популярные утилитарные библиотеки

Тема 2: Логирование, отладка и профилирование

Тема 3: Rust и Backend // ДЗ

Тема 4: Rust и GUI // ДЗ

Тема 5: Rust и GameDev

Тема 6: Rust и Frontend

Тема 7: Rust и Blockchain

Тема 8: Взаимодействие с другими языками // ДЗ

Проектная работа

Заключительный месяц курса посвящен проектной работе. Свой проект — это то, над чем интересно поработать слушателю. То, что можно создать на основе знаний, полученных на курсе. При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.

Тема 1: Выбор темы и организация проектной работы

Тема 2: Консультация по проектам и домашним заданиям

Тема 3: Защита проектных работ

Тема 4: Подведение итогов курса

Также вы можете получить полную программу, чтобы убедиться, что обучение вам подходит

Проектная работа


Сформулируйте идею приложения или библиотеки, разработайте архитектуру проекта, продемонстрируйте практическую осуществимость, реализуйте задуманный функционал с документацией интерфейсов и тестами бизнес-логики, разработайте документацию и примеры использования кода. А затем – опубликуйте результаты работы на GitHub и на Crates.io.

Вы можете выбрать тему самостоятельно или взять предложенную преподавателем.
Вот примеры тем:

  • Web backend
  • Real-time data processing
  • Image processing
  • Data storage and caches

Преподаватели

Руководитель курса

Кирилл Федченко

Lead Rust Developer

InfinitySwap

Илья Богданов

Rust Developer

Enso

Ментор

Павел Ершов

Rust Developer

Сергей Потамошнев

Эксперты-практики делятся опытом, разбирают кейсы студентов и дают развернутый фидбэк на домашние задания

Ближайшие мероприятия

Бесплатный открытый вебинар — это настоящее занятие в режиме онлайн с преподавателем курса, которое позволяет посмотреть, как проходит процесс обучения. На открытом вебинаре можно посмотреть, как проходит обучение, а ещё узнать что-то ценное по интересующей теме. На занятии слушатели могут задавать ведущему вопросы.

Реализуем различные интерфейсы на Rust
Кирилл Федченко
На данном занятии мы рассмотрим создание пользовательских интерфейсов разных видов на Rust. Для одной и той же бизнес-логики мы напишем:
- интерфейс командной строки (CLI);
- веб-интерфейс;
- графический интерфейс.
...
13 ноября в 17:00
Открытый вебинар
Асинхронность под капотом
Кирилл Федченко
Цель данного занятия — разобраться, как работает асинхронный код в Rust и ответить на вопросы:
- Как язык представляет асинхронную задачу?
- Как компилятор преобразует async-функции в асинхронные задачи?
- Что нужно сделать, чтобы описать свою асинхронную задачу?
...
25 ноября в 17:00
Открытый вебинар

Прошедшие
мероприятия

Кирилл Федченко
Открытый вебинар
Многопоточность без страха
Кирилл Федченко
Открытый вебинар
Backend vs Blockchain на Rust
Для доступа ко всем прошедшим мероприятиям необходимо пройти входное тестирование
Возможность пройти вступительное тестирование повторно появится только через 3 дня
Результаты тестирования будут отправлены вам на email, указанный при регистрации.
Тест рассчитан на 30 минут, после начала тестирования отложить тестирование не получится!

Корпоративное обучение для ваших сотрудников

OTUS помогает развивать высокотехнологичные команды. Почему нам удаётся это делать успешно:
  • Курсы OTUS верифицированы крупными игроками ИТ-рынка и предлагают инструменты и практики, актуальные на данный момент
  • Студенты работают в группах, могут получить консультации не только преподавателей, но и профессионального сообщества
  • OTUS проверяет знания студентов перед стартом обучения и после его завершения
  • Простой и удобный личный кабинет компании, в котором можно видеть статистику по обучению сотрудников
  • Сертификат нашего выпускника за 5 лет стал гарантом качества знаний в обществе
  • OTUS создал в IT более 120 курсов по 7 направлениям, линейка которых расширяется по 40-50 курсов в год

Отзывы

Василий

24.09.2024
Я работаю в крупной государственной компании backend разработчиком, в стеке есть в том числе rust. Otus выбрал, так как есть положительные отзывы коллег о площадке, а rust - хотелось соотнести свой уровень с уровнем опытных rust разработчиков. Курс понравился своей структурированностью (т. к. самостоятельно приходилось изучать по меняющейся rust book и ответам на вопросы разработчиков с users.rustlang.org), ориентированностью на практику (не было углубления в lifetimes, и т.д.), хорошие преподаватели, которые давали полезные ссылки на материал вне курса. Хотелось бы поблагодарить преподавателей и организаторов за очень содержательный курс, нечего добавить, очень много примеров и практики.

Михаил Комаров

19.09.2024
Занимаю позицию Senior Python Developer. Увлекаюсь ML. Курс выбирал между C++ и Rust для реализации дополнительных инструментов которые можно интегрировать в Python. Сейчас помимо основной работы занимаюсь реализацией своего проекта в Ml. В курсе понравилась коммуникация с преподавателями. За все время обучения ни один вопрос не остался без внимания. Все ответы были разжеваны - видно что преподают практикующие люди. Наверное немного не хватило примеров на уроках из реальной практики, но этот недостаток с лихвой компенсируется консультацией с преподавателями.

Виталий Блинков

19.09.2024
В настоящее время работаю консультантом (делопроизводителем) в компании ООО ЧОП «Амофон». В рамках своей работы осуществлял автоматизацию ряда процессов в делопроизводстве. Разработку осуществлял на языке программирования Java. Возник ряд затруднений при разработке. Во время поиска их решения нашёл реализацию (более простую и менее затратную) на языке программирования Rust. По рекомендации коллеги поступил на курсы в ООО «Отус Онлайн-образование». С учётом опыта в программировании выбрал professional. Обучение было эффективным. Сам процесс был организован на хорошем уровне, как пример: - была создана отдельная группа в Telegram, где преподаватели отвечали на вопросы по материалам лекции и по ДЗ; - хорошее сочетание теоретических и практических занятий; - своевременное информирование обо всех предстоящих событиях. В процессе обучения я получил навыки и умения, которые буду использовать в своей работе. На мой взгляд, необходимо расширить данный курс, как по времени, так и по объёму материалов в связи с быстрым развитие Rust. Обучение позволило мне сократить трудозатраты на разработку моего ПО. Увы, с «работай мечты», для Rust разработчиков, сейчас тяжело. Будем надеяться на изменения в будущем.

Михаил Хвостов

10.07.2024
Этот курс оказался полезным и хорошо организованным. Преподаватели не только давали теорию, но и делились своим практическим опытом, что добавляло ценности каждому занятию. Вся необходимая информация была доступна в личном кабинете, расписание занятий соблюдалось, а обратная связь от преподавателей была оперативной и конструктивной. Этот курс помог мне улучшить мои навыки программирования на Rust и дал хорошую базу для дальнейшего развития :)

Руслан Фадин

17.09.2023
Работаю в области информационной безопасности и по работе периодически приходилось писать различные сервисы и утилиты для собственных нужд. Последние пару лет для этого использовался язык Go в связи с простотой распространения собранных программ. Однако появилось желание углубиться в системное программирование, а особенности Rust делали его наиболее привлекательным из возможных вариантов. Ещё несколько лет назад он привлек внимание, однако попытки написать на нем что-то с наскоку вызывали лишь боль, так как язык не похож ни на один из тех, с которыми сталкивался ранее. В связи с этим возникло желание пройти обучение на курсе, а otus, по крайней мере на момент поиска, единственная площадка на которой была такая возможность. Из плюсов отметил бы домашние задания, а именно тот факт, что решая их удалось охватить значительную долю возможностей языка, что по итогу позволяет уже самостоятельно писать полноценные приложения. Также понравилось отсутствие жёстких дедлайнов, так как иногда проще пропустить что-то и потом наверстать, нежели всегда подстраиваться под график занятий. По поводу того, что можно было бы улучшить. Порой не хватало какого-то описания к коду из презентаций. Когда параллельно смотришь видео, то всё понятно, но если пользоваться только презентацией, то не всегда очевидно что к чему. Обучение на курсе позволило получить ту необходимую базу знаний по языку и практических навыков с которыми можно уже самостоятельно продолжать углублять знания по языку и писать собственные проекты.

Дмитрий Назаров

14.09.2023
Очень интересный курс, охватывающий как синтаксис языка Rust так и области его применения. Домашние задания позволяют отработать полученные на лекциях навыки.

Евгений Салоников

14.09.2023
В целом, курс прикольный, галопом пробегаемся по всем основным частям языка, которые позволяют написать какой-то более-менее серьёзный проект. Жаль не удалось попробовать групповую работу, сокурсники не нашли это интересным, а задания, которое бы подталкивало к групповой работе отсутствует.

Глеб Акимов

13.09.2023
Добрый день! Хочу поблагодарить преподавателей, спасибо! В целом, мне курс понравился. Многое для себя подчеркнул, освоил и использую уже в работе. Очень рад, что материалы останутся у меня в личном кабинете. Буду советовать своим колегам. Хочу попросить доработать последние два модуля, уж очень мало информации о фреймворках. Хочется потрогать хотя бы несколько, сравнить и т.п. Очень быстро и поверхностно пролетает на мой взгляд очень важная информация. В отсальном, я очень доволен! Наверное, это первый курс, который оставил положительные эмоции после его прохождения!

Дмитрий Журавлев

02.08.2023
Курс достаточно подробный. Много концепций Rust разбирается не поверхностно, конечно требуется и самостоятельная работа, чтение документации. Для вкатывания в язык с нуля может быть сложновато, но опять таки зависит от желания. Так как домашние задания вполне по плечу + есть разборы и примеры. Хорошо, что к урокам можно возвращаться по истечении курса, освежать в памяти.

Николай Пролеев

15.05.2023
Мне в целом понравилось обучение, единственный момент - слишком много опросов после занятий) Пожалуй я бы еще больше уделил внимание асинхронному и многопоточному коду и работе с футурами, тасками и итераторами в этом контексте. А так все очень достойно, особенно спасибо за занятие по блокчейну.

Михаил Самусев

17.10.2022
Все очень понравилось. У меня есть опыт с курса по Архитектуре и Паттернам который я не смог закончить потому что пропала мотивация из за слабоватой поддержки по домашкам со стороны менторов. На курсе по расту эта часть была организована намного лучше. Также я очень рад был увидеть что курс охватывает очень широкую публику, на лекциях обговорили огромное количество областей применений языка, разные подходы к разработке на нем ну и конечно же все детали того как сам язык устроен. Мне это помогло на прошлой неделе пройти техническое собеседование, и думаю учась сам по книжкам я бы этого сделать не смог. Сильно помогло то что мы с группой изначально перенесли чат в Телеграм, обмен знаниями между одногруппниками проходил в разы быстрее в сравнении с упомянутым курсом по архитектуре. В общем курс задал хорошую базу с которой можно дальше прокачиваться в любое направление где используется данный язык. Большое спасибо всем организаторам и менеджерам.

Дмитрий Любаневич

12.10.2022
Обучение прошло прекрасно, отличные преподаватели и материал. Это уже 2 мое обучение в otus и считаю, что это лучшая платформа для образования. И вот на сравнении двух курсов, Java Spring и Rust, я выделил для себя, чего мне тут не хватило и оставил пожелания по улучшению курса в итоговом отзыве. В общем не хватило практики на самих занятиях, она была иногда только на занятиях Ильи Богданова, и цельного проекта по ДЗ, т.е. хотелось бы на дз иметь один проект, который бы улучшался и дорабатывался с каждым заданием и по итогу был бы готов достаточно большой и интересный проект. Курс своих денег стоит, мне все понравилось и буду советовать otus своим знакомым.

Роман Воронкин

05.10.2022
Курс оставил о себе хорошее впечатление. Позволил достаточно хорошо разобраться в многопоточности и асинхронности в Rust.

Сертификат о прохождении курса

OTUS осуществляет лицензированную образовательную деятельность. В конце обучения вы получите сертификат OTUS о прохождении курса, а при выполнении проектной работы – удостоверение о повышении квалификации

После обучения вы:

  • научитесь разрабатывать сложные программные продукты на Rust
  • получите доступ к материалам всех занятий: видеозаписям вебинаров, презентациям
  • получите свидетельство о повышении квалификации и сертификат OTUS об окончании курса

Частые вопросы

Что, если в середине курса я не смогу продолжать обучение?
Вы можете бесплатно перейти в другую группу. Но только один раз.
Обязательно ли защищать итоговый проект?
Для получения сертификата OTUS сдавать проект необязательно (в сертификате будет отражено кол-во выполненных домашних работ). Для получения Удостоверения о повышении квалификации необходимо выполнить итоговый проект. Кроме того, проект необязательно защищать перед аудиторией, а можно сдать в чате с преподавателем.
Я могу вернуть деньги?
Да, мы можем вернуть деньги за то время, которое вы ещё не успели отучиться. Например, если курс длится пять месяцев, а вы отучились один, мы вернём деньги за оставшиеся четыре месяца.
Обязательно ли выполнять домашние задания? Кто проверяет домашние задания и итоговый проект?
Да, если вы действительно хотите повысить свои навыки программирования на Rust. На все задания развернутую обратную связь дают наши преподаватели и наставники. При желании вы можете защитить свой итоговый проект перед руководителем и преподавателями курса.
Можно ли задавать вопросы?
Да, даже нужно! Вы можете задавать преподавателю вопросы по содержанию во время онлайн-вебинара, в закрытом Telegram-чате или в чате по ДЗ. На организационные вопросы вам всегда поможет ответить коммьюнити-менеджер курса.
Насколько сложно учиться?
Курс подходит для всех, кто имеет опыт разработки на системных языках (С, C++, ...), на интепретируемых или высокоуровневых языках (Python, JS, Java, C#, ...). Для успешного прохождения обучения необходимо приложить усилия и старания, в т.ч. и при самостоятельном изучении материалов. Будьте готовы тратить на обучение и выполнение домашних заданий от 5 до 10 часов в неделю.
Какой объем практики предусмотрен на курсе?
Больше 80%. Также во время обучения вам будут доступны дополнительные источники информации, богатый список литературы и референсов для ознакомления и углубления знаний, видеозаписи всех вебинаров занятий. А наши преподаватели всегда готовы поделиться с вами самыми актуальными материалами.