Эта заметка - продолжение гайда по изучению Rust.

Видео-курс от ФПМИ

Я посмотрел курс лекций ФПМИ для освежения основ. В целом, он справляется с этой задачей, но глубины в разборе продвинутых тем не хватает.

Первые две лекции была база на уровне типов данных, ветвлений и циклов. Что то интересное начинается с третьей лекции, где лектор начинает рассказывать тонкие моменты, которые стоят того, чтобы повторять.

В пятой лекции тема макросов разобрана на уровне, которого я раньше не встречал.

В конце седьмой лекции был обзор интересных крейтов crossbeam и rayon для работы с многопоточностью.

Половина восьмой лекции посвящана Pin - тема сложная и автором раскрыта плохо, рекоменду найти дополнительные материалы.

Практика

Тренировки по алгоритмам 7.0 от Yandex

Прошёл седьмые тренировки по алгоритмам от Яндекса.

Подробнее о контестах - в заметке.

cert yandex

Контест получился увлекательным: разобрали классические задачи спортивного программирования - рюкзак, дерево отрезков.

Порадовали новый тип практических заданий по кодам Хэмминга и сжатию.

Отдельное удовольствие доставило решать задачи на двусвязные списки в Rust. Рекомендую туториал по связным спискам.

Скучная книга рецептов

Для наработки навыка кодирования Rust выбрал rust-cookbook.

Честно: было скучновато - задачи шаблонные, но стоит хотя бы раз пройти, чтобы познакомиться с крейтами. Советую не решать все за раз, а стабильно уделять задачам каждый день по полчаса.

Отмечу интересное:

  • узнал о крейте mmap, который облегчает мапинг файлов в память;
  • познакомился с Build Time Tooling (build.rs);
  • познал дзен с помощью универсальной обработки ошибок через Result<(), Box<dyn std::error::Error>> без anyhow.

Все примеры из книги переписал и залил в свой учебный репозиторий. Иногда приходилось дорабатывать код: крейты да и сам Rust обновляются.

Что прочитал интересного

Статья Уменьшаем базу данных в 2000 раз при помощи Rust содержит классный паттерн Intern, как бы кэш. Идея взята из блога Алексея Кладова.