- Кто такой Rust-разработчик?
- Что делают Rust-разработчики и чем занимаются?
- Что должен знать и уметь Rust-разработчик?
- Востребованность и зарплаты Rust-разработчиков
- Как стать Rust-разработчиком и где учиться?
- 10+ лучших курсов для обучения Rust-разработчика: подробный обзор
- 1 место. Курс «Rust Developer» — OTUS
- 2 место. Курс «Программирование на Rust» — НИУ ВШЭ
- 3 место.Курс «The Rust Programming Language» — Udemy
- Курс «Изучить Rust» — rust-lang
- Курс «Плагин для Rust» — JetBrains
- Курс «[rust] язык программирования» — Академия IT
- Курс «Руководство по языку программирования Rust» — metanit
- Курс «Learning Rust» — Dumindu Madunuwan
- Курс «Программирование на Rust» — Computer Science Center
- Курс «Rust для начинающих» — GitHub
- Курс «Уроки по языку программирования Rust» — rust_lang_ru
Кто такой Rust-разработчик?
Rust-разработчик — это программист на языке программирования Rust. Rust — это системный язык, основными особенностями которого являются быстрая обработка данных на компьютере и высокий уровень безопасности. Rust-разработчик может устранить большинство причин сбоев сервера.
Что делают Rust-разработчики и чем занимаются?
Обязанности на примере одной из вакансий:
- Создание нового функционала продукта;
- Участие в выдвижении технических решений задач, взаимодействие с командой;
- Участие в улучшении и оптимизации сценариев на локальных комплексах;
- Участие в проработке и улучшении архитектуры системы и API;
Что должен знать и уметь Rust-разработчик?
Требования к Rust-разработчикам:
- Умение взаимодействовать в команде и с бизнесом: прояснять требования, понимать за обратную совместимость API;
- понимание, зачем нужны и как настроить логи, метрики
- Умение писать SOLIDный код, желательно на Rust;
- Понимание async, async streams;
Востребованность и зарплаты Rust-разработчиков
На сайте поиска работы в данный момент открыто 179 вакансий, с каждым месяцем спрос на Rust-разработчиков растет.
Количество вакансий с указанной зарплатой Rust-разработчика по всей России:
- от 150 000 руб. – 79
- от 275 000 руб. – 50
- от 400 000 руб. – 30
- от 525 000 руб. – 22
- от 650 000 руб. – 13
Вакансий с указанным уровнем дохода по Москве:
- от 220 000 руб. – 36
- от 395 000 руб. – 22
- от 570 000 руб. – 13
- от 740 000 руб. – 8
- от 915 000 руб. – 2
Вакансий с указанным уровнем дохода по Санкт-Петербургу:
- от 255 000 руб. – 10
- от 455 000 руб. – 4
- от 555 000 руб. – 2
- от 655 000 руб. – 1
Как стать Rust-разработчиком и где учиться?
Варианты обучения для Rust-разработчика с нуля:
- Самостоятельное обучение – всевозможные видео на YouTube, книги, форумы, самоучители и т.д. Плюсы – дешево или очень недорого. Минусы – нет системности, самостоятельное обучение может оказаться неэффективным, полученные навыки могут оказаться невостребованными у работодателя;
- Онлайн-обучение. Пройти курс можно на одной из образовательных платформ. Такие курсы рассчитаны на людей без особой подготовки, поэтому подойдут большинству людей. Обычно упор в онлайн-обучении делается на практику – это позволяет быстро пополнить портфолио и устроиться на работу сразу после обучения.
Ниже сделали обзор 10+ лучших онлайн-курсов.
10+ лучших курсов для обучения Rust-разработчика: подробный обзор
1 место. Курс «Rust Developer» — OTUS
https://otus.ru/lessons/rust-developer/
Стоимость: 82 000 ₽
Углублённый курс по языку программирования Rust, в котором мы разберем:
- ключевые особенности Rust, понимание которых позволяет не только разрабатывать сложные программные продукты на этом языке, но и помогает лучше проектировать ПО в целом;
- наиболее популярные библиотеки и проекты, широко используемые на практике;
- многопоточность и архитектуру программного обеспечения.
Курс будет интересен:
Разработчикам на системных языках (С, C++, …), которые хотят:
- изучить Rust, его сильные и слабые стороны;
- научиться избегать ошибки по работе с памятью и многопоточностью;
- изучить проектирование высокопроизводительного ПО
Разработчикам на интепретируемых или высокоуровневых языках (Python, JS, Java, C#, …), которые хотят:
- изучить язык, позволяющий делать критические по производительности секции вашего ПО максимально быстрыми;
- особенности работы с низкоуровневым ПО;
- подходы к разработке безопасного и отказоустойчивого ПО.
Чему вы научитесь на курсе?
- использовать язык Rust для разработки ПО;
- разворачивать Rust и среду разработки;
- создавать надёжное, отказоустойчивое и высокопроизводительное ПО;
- тестировать код;
- использовать сторонние библиотеки;
- писать асинхронный код.
Программа обучения
Модуль 1. Введение в Rust
- Тема 1. Основные концепции и особенности Rust
- Тема 2. Система сборки. Вспомогательные утилиты. Выбор среды разработки
- Тема 3. Базовый синтаксис
- Тема 4. Продвинутый синтаксис
Модуль 2. Модули, крейты и тесты
- Тема 5. Разбиение проекта на файлы и логические блоки. Тесты и примеры
- Тема 6. Пакеты и крейты
- Тема 7. Использование сторонних крейтов. Версии и features
Модуль 3. Стандартная библиотека
- Тема 8. Основные перечисления и типажи
- Тема 9. Умные указатели и коллекции
- Тема 10. Ввод и вывод
- Тема 11. Пишем клиент-серверное приложение
Модуль 4. Многопоточность
- Тема 12. Проблемы многопоточного кода. Запуск параллельного потока.
- Тема 13. Контроль корректности многопоточного приложения на стадии компиляции
- Тема 14. Пишем свой ThreadPool
- Тема 15. Типы многозадачности. Асинхронность
- Тема 16. Асинхонность под капотом
- Тема 17. Делаем клиент-серверное приложение асинхронным
- Тема 18. Межпроцессное взаимодействие и синхронизация
Модуль 5. Архитектура
- Тема 19. Rust и ООП
- Тема 20. Rust и ФП
- Тема 21. Обработка ошибок
- Тема 22. Инварианты
- Тема 23. Паттерны
Модуль 6. Фреймворки и библиотеки
- Тема 24. Популярные утилитарные библиотеки
- Тема 25. Логирование, отладка и профилирование
- Тема 26. Rust и Backend
- Тема 27. Rust и GUI
- Тема 28. Rust и GameDev
- Тема 29. Rust и Frontend
- Тема 30. Взаимодействие с другими языками
Модуль 7. Проектная работа
- Тема 31. Выбор темы и организация проектной работы
- Тема 32. Консультация по проектам и домашним заданиям
- Тема 33. Защита проектных работ
- Тема 34. Подведение итогов курса.
Выпускной проект
Задачи выпускного проекта:
- Сформулировать идею приложения или библиотеки;
- Разработать архитектуру проекта;
- Написать proof-of-concept код, демонстрирующий жизнеспособность текущего дизайна;
- Полноценно реализовать задуманный функционал, с документацией интерфейсов и тестами бизнес-логики;
- Разработать документацию и примеры использования кода;
- Опубликовать результаты работы на GitHub и на Crates.io.
Темы на выбор (+возможность предложить свою тему):
— Web backend
— Real-time data processing
— Image processing
— Data storage and caches.
После обучения вы:
- бессрочно получите материалы по всем пройденным занятиям (видеозаписи вебинаров, выполненные домашние задания, выпускной проект)
- получите сертификат об окончании курса
- получите приглашение пройти собеседование в компаниях-партнёрах (в случае успешного обучения).
2 место. Курс «Программирование на Rust» — НИУ ВШЭ
https://www.hse.ru/edu/courses/405005195
Стоимость: нет информации
Этот курс научит вас основам Rust, современного языка программирования, обладающего как мощью нативного кода, так и безопасностью некоторых управляемых языков.
В этом курсе вы узнаете следующее:
- Как скачать и установить Rust;
- Как компилировать программы и (опционально) работать с IDE.
- Узнаете о фундаментальных типах данных и о том, как использовать их для объявления переменных
- Поймете массивы, векторы и строки, понятие срезов
- Научитесь создавать функции, методы, замыкания, функции высшего порядка
- Поймете, как создавать различные структуры данных, такие как структуры и перечисления; также черты.
- Узнаете, как безопасно обмениваться данными вокруг вашего (возможно, многопоточного) приложения с Rc, Arc и Mutex.
- Используете пакетный менеджер Rust с помощью Cargo.
- Узнаете о других полезных темах: документация, условная компиляция, тестирование.
Цель освоения дисциплины — обучение основам Rust, современного языка программирования, обладающего как мощью нативного кода, так и безопасностью некоторых управляемых языков.
Планируемые результаты обучения:
- Знает, как установить и настроить Rust. Владеет понятием менеджер пакетов Cargo; Rust в IntelliJ IDEA
- Знает основные типы данных. Владеет понятиями: числа на компьютере; операторы; Scope и Shadowing; объявление и использование констант; стек и куча
- Знает конструкции if, while, for, match.
- Знает структуры, перечисления, союзы, оption <T>, массивы, векторы, срезы, HashMap. Умеет проводить сопоставление с образцом.
- Владеет понятиями: функции и аргументы функций; методы; замыкания; функции высшего порядка.
- Владеет понятиями: Traits; Into; Drop; перегрузка оператора; статическая рассылкa; динамическая отправка; Векторы разных объектов
- Владеет понятиями: право собственности; заимствование; продолжительность жизни; время жизни в реализации структуры. Знает переменные с атомной привязкой. Использует Mutex для поточно-ориентированной изменчивости
- Владеет понятием циркулярных ссылок.
Содержание учебной дисциплины:
- Введение в курс
- Типы и переменные
- Контроль потока
- Структуры данных
- Функции
- Traits
- Время жизни и память
- Расширенные темы.
3 место.Курс «The Rust Programming Language» — Udemy
https://www.udemy.com/course/rust-lang/
Стоимость: 2 490 ₽
Чему вы научитесь:
- Решайте проблемы в Rust
- Поймите сильные и слабые стороны Rust
- Эффективно используйте гарантии безопасности памяти Rust
- Написание приложений и библиотек
- Протестируйте и задокументируйте свой код.
Материалы курса:
12 разделов, 61 лекция
- Вступление
- Типы и переменные
- Поток управления
- Структуры данных
- Стандартные Коллекции
- Символы и строки
- Функции
- Черты
- Жизнь и память
- Дополнительные темы
- Совпадение
- Мелочи и концы
Курс «Изучить Rust» — rust-lang
https://www.rust-lang.org/ru/learn
Стоимость: бесплатно
Основная документация:
- СТАНДАРТНАЯ БИБЛИОТЕКА
Полное руководство по API стандартной библиотеки. - РУКОВОДСТВО ПО РЕДАКЦИЯМ ЯЗЫКА
Руководство по редакциям Rust. - КНИГА ПО CARGO
Книга о пакетном менеджере и системе сборки Rust. - КНИГА ПО RUSTDOC
Узнайте, как создать удивительную документацию для вашего проекта. - КНИГА ПО RUSTC
Познакомьтесь с опциями, доступными в компиляторе Rust. - РУКОВОДСТВО ПО ОШИБКАМ КОМПИЛЯТОРА
Подробные объяснения ошибок, которые вы можете получить от компилятора.
С чего начать?
- «The Rust Programming Language», ласково называемая «книгой»
даст вам обзор языка начиная с базовых принципов. По ходу чтения вы создадите несколько проектов и к концу изучения получите твёрдое понимание языка. - Курс Rustlings
поможет вам в установке и настройке инструментов Rust, и обучит вас основам чтения и написания кода на Rust. Это альтернатива книге «Rust на примерах», которая работает с вашим собственным окружением. - «Rust на примерах» («Rust By Example», RBE).
Пока «Книга» большим количеством слов рассуждает о коде, RBE показывает куски кода и сводит рассуждения к минимуму. Также она содержит упражнения.
Курс «Плагин для Rust» — JetBrains
https://www.jetbrains.com/ru-ru/edu-products/learning/rust/
Стоимость: бесплатно
Адаптированный курс Rustlings
Этот курс поможет вам разобраться со всеми главными возможностями языка Rust: базовым синтаксисом, стандартной библиотекой, макросами, потоками, автоматизированными тестами и т. д.
Наша адаптация сохранила всю прелесть исходного курса, а вдобавок она познакомит вас со всеми возможностями для работы с Rust, которые только есть в IDE на базе IntelliJ — это умный редактор, автодополнение кода, вызов документации, рефакторинги и многое другое.
Курс «[rust] язык программирования» — Академия IT
https://academiait.ru/course/rust-yazyk-programmirovaniya/
Стоимость: бесплатно
Уроки курса:
- Введение — установка, первая программа
- Переменные
- Типы данных
- Функции
- Условные выражения и циклы
- Чтение логов в реальном времени на RUST и запись данных в influxDB.
Курс «Руководство по языку программирования Rust» — metanit
https://metanit.com/rust/tutorial/
Стоимость: бесплатно
Глава 1. Введение в язык Rust
- Общий обзор языка программирования Rust. Установка
- Первая программа
Глава 2. Основы Rust
- Структура программы
- Переменные
- Типы данных
- Арифметические операции
- Поразрядные операции
- Условные выражения
- Конструкция if..else
- Конструкция match
- Циклы
- Функции
- Параметры функции
- Возвращение значения из функции
- Константы
- Анонимные функции
- Замыкания
- Тип функции
- Функция как параметр и результат другой функции
Глава 3. Составные типы данных
- Кортежи
- Массивы
- Структуры
- Структуры-кортежи
- Перечисления Enum
- Последовательность Range
- Паттерны и конструкция match
- Паттерны и конструкция if let
Глава 4. Ссылки и Ownership
- Контекст/область видимости
- Устройство памяти в Rust. Стек и куча
- Ownership
- Ссылки
- Изменяемые ссылки
- Slice
Глава 5. Объектно-ориентированное программирование
- Методы
- Ассоциированные функции
- Trait
- Trait как параметр и результат функции
- Обобщенные типы
- Обобщенные функции и методы
- Trait bound
Глава 6. Время жизни ссылки
- Аннотации и время жизни ссылки
- Аннотации ссылок в функциях
- Аннотации ссылок в структурах
- Аннотации ссылок в определениях методов
- Статическое время жизни
Глава 7. Коллекции
- Вектор
- String
- HashMap
Глава 8. Модули
- Определение модулей. Приватность и публичность
- Вложенные модули и ключевое слово super
- Оператор use и подключение модулей
- Определение модуля во внешнем файле
Глава 9. Обработка ошибок
- Макрос panic!
- Тип Result
- Методы unwrap и expect типа Result
- Обработка нескольких типов ошибок
- Оператор ?
Глава 10. Cargo
- Создание проекта с помощью Cargo
- Загрузка и использование внешних зависимостей
Глава 11. Ввод и вывод
- Ввод с клавиатуры
Глава 12. Unsafe-контекст
- Указатели.
Курс «Learning Rust» — Dumindu Madunuwan
https://learning-rust.github.io/
Стоимость: бесплатно
- Basics
Installation, Hello World, Cargo, Crates, Variable bindings, Functions, Primitive Data Types, Operators & Control Flows. - Beyond the Basics
Vectors, Structs, Enums, Generics, Impls & Traits. - The Tough Part
Ownership, Borrowing, Lifetimes & Lifetime Elision. - Let’s Get It Started
Modules, Crates, Workspaces, std modules and Preludes. - Error Handling
Smart compiler, Panicking, Option & Result, Unwrap & Expect, Error & None propagation, Combinators and Custom Error Types. - Stay tuned!
More things are coming in 2021. Stay in touch.
Курс «Программирование на Rust» — Computer Science Center
https://compscicenter.ru/courses/rustprogramming/2019-spring/
Стоимость: бесплатно
- Курс знакомит слушателей с языком программирования Rust.
- Для курса необходимо уметь программировать на любом другом языке, например Python. Особенно хорошо курс сочетается с курсом по C++.
Цель курса не просто научить программировать на Rust, а сделать акцент на его особенностях и отличиях от более традиционных языков, и увидеть знакомые задачи с другого ракурса.
Предварительная программа курса:
- Зачем нужны языки программирования без сборщика мусора?
- Дисциплина владения, линейные типы, RAII.
- Ссылки и времена жизни.
- Механика языка: встроенные типы, выражения, алгебраические типы данных, macro by example.
- Модули, библиотеки и модель компиляции.
- Стратегии обработки ошибок.
- Параметрический полиморфизм, трейты, статичекое и динамическое связывание.
- FFI и unsafe.
- Реализация коллекций и итераторов.
- Надёжное многопоточное программирование.
- Стратегии управления памятью.
- Процедурные макросы.
Список лекций
- Введение
- Время жизни, ADT
- Трейты
- Модули
- Функции и итераторы
- Управление ошибками
- Объекты, строки
- Время жизни II
- Умные указатели, static
- Многопоточность
- unsafe
- Коллекции
- Макросы.
Курс «Rust для начинающих» — GitHub
https://github.com/rustkas/simple-about-rust
Стоимость: бесплатно
Это пошаговое руководство научит основам языка Rust. Для понимания содержания потребуется только знания основ программирования. Необходимо понимать, чем отличаются целые числа от дробных, суметь отличить название переменной от строковой константы и в общем виде понимать, что такое компилятор.
Оглавление:
- Привет, Rust!
- Арифметические вычисления
- Переменные
- Логический тип данных
- Выражение if
- Хранилища однотипных данных
- Использование простых типов данных в Rust
- Перечисления
- Кортежи и структуры
- Функция
- Обобщенные структуры и функции
- Использование различных мест хранения переменных
- Реализация типов данных в Rust
- Анонимные функции
- Строка
- Диапазон
- Срез
- Итератор
- Типаж.
Курс «Уроки по языку программирования Rust» — rust_lang_ru
https://www.youtube.com/playlist?list=PLQQFvHDqx-V8Qjj-oyga0tYSCKzq5DJQE
Стоимость: бесплатно
Уроки:
- Введение — Rust язык программирования
- Установка и компиляция — Rust язык программирования
- Менеджер пакетов Cargo — Rust язык программирования
- Редактор исходного кода VS Code — Rust язык программирования
- Переменные — Rust язык программирования
- Типы данных — Rust язык программирования
- Функции — Rust язык программирования
- Конструкции управления — Rust язык программирования
- Владение — Rust язык программирования
- Ссылочные переменные — Rust язык программирования
- Срезы — Rust язык программирования
- Структуры — Rust язык программирования
- Перечисления — Rust язык программирования
- Операторы Match и If let — Rust язык программирования
- Модули Mod — Rust язык программирования
- Управление доступом — Rust язык программирования
- Импорт имён с Use — Rust язык программирования
- Векторы — Rust язык программирования
- Строки — Rust язык программирования
- Hash Maps — Rust язык программирования
- Обработка ошибок ч.1 — Rust язык программирования
- Обработка ошибок ч.2 — Rust язык программирования
- Шаблонные типы данных (Generics) — Rust язык программирования
- Типажи — Rust язык программирования
- Время жизни ссылок — Rust язык программирования
- Тестирование ч.1 — Rust язык программирования
- Тестирование ч.2 — Rust язык программирования
- Аргументы командной строки — Rust язык программирования
- Чтение файлов — Rust язык программирования
- Рефакторинг — Rust язык программирования
- Разработка через тестирование (TDD) — Rust язык программирования.