Ласкаво просимо в Comprehensive Rust 🦀

Робочий процес створення Учасники GitHub зірки GitHub

Це безкоштовний курс Rust, розроблений командою Android у Google. Курс охоплює весь спектр Rust, від базового синтаксиса до складних тем, таких як узагальнення (generics) и обробка помилок.

Останню версію курсу можна знайти за адресою https://google.github.io/comprehensive-rust/. Якщо ви читаєте десь в іншому місці, перевіряйте там на оновлення.

Курс доступний на інших мовах. Виберіть потрібну мову у верхньому правому куті сторінки або перегляньте сторінку Переклади, щоб ознайомитися зі списком усіх доступних перекладів.

Курс також доступний у форматі PDF.

Ціль курсу навчити вас мові Rust. Ми припускаємо, що ви нічого не знаєте про Rust та сподіваємося:

  • Дати вам повне уявлення про синтаксис та семантику мови Rust.
  • Навчити працювати з існуючим кодом та писати нові програми на Rust.
  • Показати розповсюджені ідіоми мови Rust.

Перші чотири дні курсу ми називаємо Rust Fundamentals.

Спираючись на це, вам пропонується зануритися в одну або кілька спеціалізованих тем:

  • Android: розрахований на половину дня курс з використання Rust для розробки на платформі Android (AOSP). Сюди входить взаємодія з C, C++ та Java.
  • Chromium: розрахований на половину дня курс курс із використання Rust у браузерах на основі Chromium. Сюди входить взаємодія з C++ та як включити крейти сторонніх розробників у Chromium.
  • Голе залізо: одноденне заняття з використання Rust для низькорівневої (embedded) розробки, що охоплює як мікроконтролери, так і звичайні процесори.
  • Concurrency: повний день занять з вивчення конкурентності у Rust. Ми розглянемо як класичну конкурентність (витіснююча багатозадачність з використанням потоків і м'ютексів), так і async/await конкурентність (кооперативна багатозадачність з використанням futures).

За рамками курсу

Rust це об'ємна мова, і ми не зможемо охопити її за кілька днів. Теми, що виходять за межі курсу:

Припущення

Передбачається, що ви вже можете програмувати. Rust це статично типізована мова, і іноді ми порівнюватимемо і зіставлятимемо її з C та C++, щоб краще пояснити чи підкреслити різницю у підходах до написання коду на Rust.

Якщо ви знаєте, як програмувати мовою з динамічною типізацією, наприклад Python або JavaScript, ви зможете також успішно пройти цей курс.

Це приклад нотаток для викладача. Ми будемо використовувати їх для додавання додаткової інформації до слайдів. Це можуть бути ключові моменти, які викладач повинен висвітлити, а також відповіді на типові питання, що виникають під час проходження курсу.