ジャーニー
Rustを学ぶ
無料で使えるインタラクティブなオンラインRust講座。各レッスンで実際にRustを書きます。シンタックス、ownership と borrowing、lifetimes、traits、pattern matching まで。borrow checker に阻まれたらAIヒントが助けてくれて、修了すれば無料の修了証明書がもらえます。
16,687+ 人のcoddersが登録中
- 初心者向け
AIによるコーディングサポート
実践的なインタラクティブレッスン
全レッスンに音声ナレーション付き
知識を確かめるクイズ
無料の修了証明書
シラバス
セクション 1
Fundamentals
セクションを始める開始開く閉じるBuild a strong foundation with essential concepts and basic skillsイントロダクション
4 レッスン324- 01Rustチャレンジ
- 02Hello World!チャレンジクイズ
- 03コメントクイズ
- 04プログラムの基本構造チャレンジクイズ
変数 パート1
5 レッスン539- 01数値チャレンジクイズ
- 02Charチャレンジクイズ
- 03Stringチャレンジクイズ
- 04Booleanチャレンジクイズ
- 05ミュータブルな変数チャレンジクイズ
変数 パート2
5 レッスン433- 01型宣言チャレンジクイズ
- 02命名規則クイズ
- 03型推論チャレンジクイズ
- 04おさらい - 変数の初期化チャレンジ
- 05型キャストチャレンジクイズ
演算子 パート1
5 レッスン438- 01算術演算子チャレンジクイズ
- 02剰余演算子チャレンジクイズ
- 03算術演算の短縮表記チャレンジクイズ
- 04比較演算子チャレンジクイズ
- 05文字列の比較クイズ
演算子 パート2
4 レッスン424- 01論理演算子 パート1チャレンジクイズ
- 02論理演算子 パート2チャレンジクイズ
- 03復習 - 単純な論理チャレンジ
- 04論理演算子 パート3チャレンジクイズ
条件分岐
5 レッスン532- 01if 式チャレンジクイズ
- 02if-else 文チャレンジクイズ
- 03match 文チャレンジクイズ
- 04if-else のまとめチャレンジ
- 05ネストされた if-elseチャレンジクイズ
基本の入出力
4 レッスン417- 01コンソールへの出力チャレンジクイズ
- 02ユーザー入力の読み取りチャレンジクイズ
- 03復習 - 120までチャレンジ
- 04復習 - True or Falseチャレンジ
電卓アプリ
プロジェクト4 レッスン1- 01ウェルカムメッセージチャレンジ
- 02数値の取得プロジェクト
- 03基本演算プロジェクト
- 04フォーマットされた出力プロジェクト
ループ
8 レッスン851- 01For ループ (シリーズ)チャレンジクイズ
- 02While ループチャレンジクイズ
- 03Breakチャレンジクイズ
- 04Continueチャレンジクイズ
- 05ネストしたループチャレンジクイズ
- 06ループラベルチャレンジクイズ
- 07無限ループチャレンジクイズ
- 08まとめ - 動的入力チャレンジ
変数バインディング
4 レッスン230- 01スコープクイズ
- 02シャドーイング パート1チャレンジクイズ
- 03変数バインディングクイズ
- 04シャドーイング パート2チャレンジクイズ
関数
6 レッスン634- 01関数の宣言チャレンジクイズ
- 02パラメーターと引数チャレンジクイズ
- 03戻り値チャレンジクイズ
- 04複数の戻り値チャレンジクイズ
- 05復習:シグマ関数チャレンジ
- 06復習:バリデーション関数チャレンジ
配列の基本
5 レッスン430- 01配列の宣言チャレンジクイズ
- 02引数としての配列クイズ
- 03要素へのアクセスチャレンジクイズ
- 04配列の変更チャレンジクイズ
- 05まとめ - 配列の整形出力チャレンジ
配列の続き
5 レッスン423- 01可変参照配列チャレンジクイズ
- 02配列のメソッドチャレンジクイズ
- 03復習 - 配列の積チャレンジ
- 04復習 - 配列の反転チャレンジ
- 05より良い出力クイズ
配列の反復処理
4 レッスン333- 01Range ガイドチャレンジクイズ
- 02拡張 for ループチャレンジクイズ
- 03ループ内での借用クイズ
- 04一般的な配列操作チャレンジクイズ
文字列操作
4 レッスン424- 01文字列メソッドチャレンジクイズ
- 02format! マクロチャレンジクイズ
- 03文字列変換チャレンジクイズ
- 04まとめ - フォーマットチャレンジ
最終プロジェクト
3 レッスン37- 01数値パターンチャレンジクイズ
- 02パターン検索チャレンジ
- 03成績計算ツールチャレンジ
セクション 2
Logic & Flow
セクションを始める開始開く閉じるDevelop problem-solving skills and create dynamic, interactive programs高度な制御フロー
6 レッスン640- 01'match' 式チャレンジクイズ
- 02複数の値とのマッチングチャレンジクイズ
- 03範囲とのマッチングチャレンジクイズ
- 04'if let' 式チャレンジクイズ
- 05式としてのループチャレンジクイズ
- 06復習 - シンプルなコマンドパーサーチャレンジ
ベクタ入門
8 レッスン756- 01ベクタとは?クイズ
- 02ベクタの作成チャレンジクイズ
- 03pushによる要素の追加チャレンジクイズ
- 04ベクタ要素へのアクセスチャレンジクイズ
- 05ベクタの反復処理チャレンジクイズ
- 06可変の反復処理チャレンジクイズ
- 07要素の削除チャレンジクイズ
- 08まとめ:基本的なスコアトラッカーチャレンジ
コマンドライン To-Doリスト
5 レッスン5- 01プロジェクトのセットアップチャレンジ
- 02タスクの追加チャレンジ
- 03全タスクの表示チャレンジ
- 04タスクの削除チャレンジ
- 05最終コードチャレンジ
構造体によるデータのグループ化
7 レッスン650- 01構造体とは?クイズ
- 02構造体の概要チャレンジクイズ
- 03構造体フィールドへのアクセスチャレンジクイズ
- 04可変な構造体チャレンジクイズ
- 05関数引数としての構造体チャレンジクイズ
- 06タプル構造体チャレンジクイズ
- 07まとめ - Book構造体の作成チャレンジ
ハッシュマップによるキーと値のペア
8 レッスン653- 01ハッシュマップとは?クイズ
- 02ハッシュマップの作成クイズ
- 03キーと値のペアの挿入チャレンジクイズ
- 04値へのアクセスチャレンジクイズ
- 05ハッシュマップの反復処理チャレンジクイズ
- 06値の更新チャレンジクイズ
- 07ペアの削除チャレンジクイズ
- 08まとめ - ワードカウンターチャレンジ
Optionによる値の欠如の扱い
7 レッスン645- 01Optionとは?クイズ
- 02Optionでmatchを使うチャレンジクイズ
- 03is_some() と is_none()チャレンジクイズ
- 04Optionのアンラップチャレンジクイズ
- 05expect メソッドチャレンジクイズ
- 06デフォルト値の提供:unwrap_orチャレンジクイズ
- 07まとめ:要素の検索チャレンジ
'Result' によるエラーハンドリング
7 レッスン648- 01'Result' とは?クイズ
- 02'Result' で 'match' を使うチャレンジクイズ
- 03is_ok() と is_err()チャレンジクイズ
- 04ショートカット: unwrap と expectチャレンジクイズ
- 05クエスチョンマーク演算子 '?'チャレンジクイズ
- 06文字列から数値へのパースチャレンジクイズ
- 07まとめ - 安全な除算関数チャレンジ
プロジェクト:簡易アイテム在庫管理
5 レッスン5- 01プロジェクトのセットアップチャレンジ
- 02アイテムの追加チャレンジ
- 03在庫の確認チャレンジ
- 04アイテムの販売チャレンジ
- 05すべてを組み合わせるチャレンジ
文字列スライスとその詳細
5 レッスン432- 01String と &strクイズ
- 02文字列スライスの作成チャレンジクイズ
- 03関数の引数としてのスライスチャレンジクイズ
- 04その他のスライスチャレンジクイズ
- 05まとめ:最初の単語を見つけるチャレンジ
クロージャと無名関数
5 レッスン431- 01クロージャとは?クイズ
- 02シンプルなクロージャの定義チャレンジクイズ
- 03引数を持つクロージャチャレンジクイズ
- 04環境のキャプチャチャレンジクイズ
- 05復習 - シンプルな加算クロージャチャレンジ
最終チャレンジ
3 レッスン3- 01復習 - ユニークなアイテムチャレンジ
- 02復習 - ユーザープロフィールのバリデーターチャレンジ
- 03復習 - 成績の集計チャレンジ
セクション 3
Object Oriented Programming
セクションを始める開始開く閉じるDiscover how to organize code with classes, objects, and reusable structuresメソッドと振る舞い
7 レッスン748- 01実装ブロック入門チャレンジクイズ
- 02self パラメータチャレンジクイズ
- 03ミュータブルなメソッドチャレンジクイズ
- 04関連関数チャレンジクイズ
- 05複数の実装ブロックチャレンジクイズ
- 06メソッドチェーンチャレンジクイズ
- 07まとめ:Rectangle の操作チャレンジ
カプセル化とモジュール
6 レッスン543- 01モジュールの基礎クイズ
- 02Publicキーワードチャレンジクイズ
- 03プライベートフィールドチャレンジクイズ
- 04ゲッターチャレンジクイズ
- 05セッターチャレンジクイズ
- 06まとめ - セキュアロッカーチャレンジ
高度な Enum
5 レッスン535- 01データを持つ Enumチャレンジクイズ
- 02Enum のメソッドチャレンジクイズ
- 03データバリアントのマッチングチャレンジクイズ
- 04Option Enum の再訪チャレンジクイズ
- 05まとめ - Shape Enumチャレンジ
プロジェクト:バーチャルペット
プロジェクト5 レッスン1- 01ペットの定義チャレンジ
- 02ペットに餌をあげるプロジェクト
- 03ペットと遊ぶプロジェクト
- 04ステータスレポートプロジェクト
- 05最後のインタラクションプロジェクト
ジェネリクス
5 レッスン533- 01ジェネリック構造体チャレンジクイズ
- 02ジェネリックメソッドチャレンジクイズ
- 03複数のジェネリック型チャレンジクイズ
- 04ジェネリック関数チャレンジクイズ
- 05復習 - 座標点チャレンジ
トレイトの定義
6 レッスン641- 01トレイトとは?チャレンジクイズ
- 02トレイトの実装チャレンジクイズ
- 03デフォルト実装チャレンジクイズ
- 04デフォルト実装のオーバーライドチャレンジクイズ
- 05パラメータを持つトレイトチャレンジクイズ
- 06まとめ:メディアプレーヤーチャレンジ
標準トレイト
5 レッスン536- 01Debug トレイトチャレンジクイズ
- 02Display トレイトチャレンジクイズ
- 03Clone と Copyチャレンジクイズ
- 04等価性のトレイトチャレンジクイズ
- 05まとめ:表示可能な Pointチャレンジ
境界としてのトレイト
5 レッスン534- 01トレイト境界の構文チャレンジクイズ
- 02複数の境界チャレンジクイズ
- 03where 句チャレンジクイズ
- 04トレイトを使用した型の返却チャレンジクイズ
- 05まとめ - ジェネリックなプリンターチャレンジ
トレイトオブジェクト
4 レッスン425- 01動的ディスパッチチャレンジクイズ
- 02トレイトのベクタチャレンジクイズ
- 03トレイトオブジェクトの反復処理チャレンジクイズ
- 04まとめ - 動物園マネージャーチャレンジ
プロジェクト:ドキュメントシステム
プロジェクト5 レッスン1- 01Drawトレイトチャレンジ
- 02テキストコンポーネントプロジェクト
- 03ボタンコンポーネントプロジェクト
- 04Screen構造体プロジェクト
- 05スクリーンの実行プロジェクト
Rustにおけるデザインパターン
5 レッスン531- 01Newtypeパターンチャレンジクイズ
- 02コンポジションチャレンジクイズ
- 03Dropトレイトチャレンジクイズ
- 04FromとIntoチャレンジクイズ
- 05まとめ - スマートポインタのモックチャレンジ
最終課題
3 レッスン3- 01ジェネリックスタックチャレンジ
- 02図書館カタログチャレンジ
- 03図形の面積計算機チャレンジ
CoddyでRustを学ぶ理由
- 本物のRustコードをブラウザで書いて実行できます。rustupのインストールもCargoのセットアップも不要。各レッスンであなたのRustプログラムをサーバー側でコンパイルし、出力(とコンパイラエラー)をその場で表示します。
- Rustならではのポイントを押さえます。ownership、borrowing、lifetimes、traits、enum、パターンマッチング、
Resultによるエラー処理。システムプログラマーに欠かせないRustの基礎です。 - AIヒントがRustの厳しいことで有名なコンパイラエラーを一緒に読み解いてくれるので、初心者にとってborrow checkerが壁ではなく先生のような存在になります。
- 講座を修了すると、Rustの無料修了証明書がもらえます。systems、インフラ、ブロックチェーン、組み込みなど、Rustが選ばれる場面が増えている分野で、確かなアピール材料になります。
Rust学習についてのよくある質問
Rustは初心者でも学びやすいですか?
Rustは難しいと言われがちですが、その大半はownershipとborrow checkerのせい — 他の言語ではあまり表に出てこない概念です。一方で、コンパイラがビルド時に膨大な種類のバグを捕まえてくれるという利点もあります。本コースではownershipとborrowingを段階的に導入し、小さな演習を重ねることで、borrow checkerが壁ではなく先生のような存在に変わっていきます。
Rustは何に使われるのか?
システムプログラミング、インフラ(Linux カーネルの一部、Cloudflare、Discord、Dropbox)、コマンドラインツール、組み込み開発、WebAssembly、そして比重を増しつつあるブロックチェーンや暗号資産関連のコード。狙う領域は C や C++ と同じですが、安全性の保証ははるかに強力です。
Rustの習得にはどれくらいかかりますか?
Rustの基礎(構文、制御フロー、関数、構造体、enum)は、毎日コツコツ取り組んで2〜4週間ほど。ownership、borrowing、lifetimes、traitsに慣れるまでには、さらに2〜6か月かかるのが普通です。応用的なlifetimesやasync、unsafe Rustといった上級レベルはもっと長い道のりで、実際のプロジェクトを通して身につけていくのが一番です。
Rust と Go、どちらを学ぶべき?
どちらもサーバーやインフラ向けの、モダンな静的型付け言語ですが、設計思想は異なります。Go はコンパイルの速さ、シンプルな並行処理、小さな言語仕様を重視しており、習得しやすいのが特長です。一方 Rust は、ガベージコレクタなしでパフォーマンスとメモリ安全性を両立することを重視しており、学習コストは高めですが、より低レイヤーまで踏み込めます。バックエンドやクラウド系ツールなら Go、システムプログラミングやパフォーマンスが重要なコード、これまで C/C++ で書かれてきたような領域なら Rust を選ぶといいでしょう。
Rustをオンラインで無料で学べますか?
はい。インタラクティブなRustコースは無料です ― レッスン本編、コーディング演習、クイズ、修了証まで全部含まれています。Rustのコンパイルはサーバー側で行われるので、rustupやCargoをローカルにインストールしなくても、すぐに本物のRustを書き始められます。
Rustコース修了後に修了証はもらえますか?
はい。Rustコースを修了すると、無料の修了証明書がもらえます。履歴書に追加したり、自分で作ったRustのプロジェクトやCLIツール、オープンソースへの貢献と一緒にLinkedInでシェアできる、検証可能な実績になります。