Подучиваем rust
Эта заметка - продолжение гайда по изучению Rust.
Видео-курс от ФПМИ
Я посмотрел курс лекций ФПМИ для освежения основ. В целом, он справляется с этой задачей, но глубины в разборе продвинутых тем не хватает.
Первые две лекции была база на уровне типов данных, ветвлений и циклов. Что то интересное начинается с третьей лекции, где лектор начинает рассказывать тонкие моменты, которые стоят того, чтобы повторять.
В пятой лекции тема макросов разобрана на уровне, которого я раньше не встречал.
В конце седьмой лекции был обзор интересных крейтов crossbeam
и rayon
для работы с многопоточностью.
Половина восьмой лекции посвящана Pin
- тема сложная и автором раскрыта плохо, рекоменду найти дополнительные материалы.
Практика
Тренировки по алгоритмам 7.0 от Yandex
Прошёл седьмые тренировки по алгоритмам от Яндекса.
Подробнее о контестах - в заметке.

Контест получился увлекательным: разобрали классические задачи спортивного программирования - рюкзак, дерево отрезков.
Порадовали новый тип практических заданий по кодам Хэмминга и сжатию.
Отдельное удовольствие доставило решать задачи на двусвязные списки в Rust. Рекомендую туториал по связным спискам.
Скучная книга рецептов
Для наработки навыка кодирования Rust выбрал rust-cookbook.
Честно: было скучновато - задачи шаблонные, но стоит хотя бы раз пройти, чтобы познакомиться с крейтами. Советую не решать все за раз, а стабильно уделять задачам каждый день по полчаса.
Отмечу интересное:
- узнал о крейте
mmap
, который облегчает мапинг файлов в память; - познакомился с Build Time Tooling (
build.rs
); - познал дзен с помощью универсальной обработки ошибок через
Result<(), Box<dyn std::error::Error>>
безanyhow
.
Все примеры из книги переписал и залил в свой учебный репозиторий. Иногда приходилось дорабатывать код: крейты да и сам Rust обновляются.
Что прочитал интересного
Статья Уменьшаем базу данных в 2000 раз при помощи Rust содержит классный паттерн Intern
, как бы кэш. Идея взята из блога Алексея Кладова.