ジャーニー
Go (Golang)を学ぶ
無料で学べるインタラクティブなオンラインGo講座。各レッスンで実際にGoのコードを書きます——構文、構造体、スライス、インターフェース、goroutines、channels まで。並行処理でつまずいたときはAIヒントが助けてくれて、修了すれば無料の修了証ももらえます。
20,998+ 人のcoddersが登録中
- 初心者向け
AIによるコーディングサポート
実践的なインタラクティブレッスン
全レッスンに音声ナレーション付き
知識を確かめるクイズ
無料の修了証明書
シラバス
セクション 1
基礎
セクションを始める開始開く閉じる必須の概念と基本スキルで強固な基礎を築きましょうGo入門
4 レッスン423- 01Goとは?チャレンジ
- 02Hello Worldチャレンジクイズ音声
- 03Printlnチャレンジクイズ音声
- 04Goのコメントチャレンジクイズ音声
変数と基本データ型
10 レッスン1069- 01変数とはチャレンジクイズ音声
- 02`:=` による型推論チャレンジクイズ音声
- 03整数型 (int)チャレンジクイズ音声
- 04浮動小数点数チャレンジクイズ音声
- 05真偽値 (Boolean)チャレンジクイズ音声
- 06文字列チャレンジクイズ音声
- 07ゼロ値チャレンジクイズ音声
- 08定数チャレンジクイズ音声
- 09命名規則チャレンジクイズ音声
- 10まとめ:変数と型チャレンジ
基本演算子
7 レッスン744- 01算術演算子チャレンジクイズ音声
- 02除算演算子チャレンジクイズ音声
- 03剰余演算子チャレンジクイズ音声
- 04代入演算子チャレンジクイズ音声
- 05複合代入演算子チャレンジクイズ音声
- 06インクリメントとデクリメントチャレンジクイズ音声
- 07まとめ:計算チャレンジ
比較演算子と論理演算子
7 レッスン742- 01比較演算子 - パート1チャレンジクイズ音声
- 02比較演算子 - パート2チャレンジクイズ音声
- 03論理 AND 演算子チャレンジクイズ音声
- 04論理 OR 演算子チャレンジクイズ音声
- 05論理 NOT 演算子チャレンジクイズ音声
- 06演算子の優先順位の基本チャレンジクイズ音声
- 07まとめ - 比較を行うチャレンジ
基本の入出力
5 レッスン532- 01書式付き出力チャレンジクイズ音声
- 02フォーマット動詞チャレンジクイズ音声
- 03型の表示チャレンジクイズ音声
- 04基本的なユーザー入力の取得チャレンジクイズ音声
- 05まとめ:入出力チャレンジ
制御フロー:条件分岐
10 レッスン1069- 01`if` 文チャレンジクイズ音声
- 02`else` キーワードチャレンジクイズ音声
- 03`else if` キーワードチャレンジクイズ音声
- 04`if` における変数のシャドウイングチャレンジクイズ音声
- 05変数の初期化チャレンジクイズ音声
- 06`switch` 文チャレンジクイズ音声
- 07式を伴う `switch`チャレンジクイズ音声
- 08式を伴わない `switch`チャレンジクイズ音声
- 09`fallthrough` キーワードチャレンジクイズ音声
- 10まとめ:条件分岐チャレンジ
制御フロー:ループ
7 レッスン743- 01`for` ループの解説チャレンジクイズ音声
- 02`for` ループ - 基本チャレンジクイズ音声
- 03`for` ループ - 条件のみチャレンジクイズ音声
- 04`break` キーワードチャレンジクイズ音声
- 05`continue` キーワードチャレンジクイズ音声
- 06ネストされたループチャレンジクイズ音声
- 07まとめ:処理の繰り返しチャレンジ
関数
9 レッスン962- 01関数の理解チャレンジクイズ音声
- 02関数の宣言チャレンジクイズ音声
- 03関数の呼び出しチャレンジクイズ音声
- 04関数の引数チャレンジクイズ音声
- 05単一の戻り値を返すチャレンジクイズ音声
- 06複数の戻り値を返すチャレンジクイズ音声
- 07名前付き戻り値チャレンジクイズ音声
- 08関数のスコープの基本チャレンジクイズ音声
- 09まとめ:再利用可能なコードの作成チャレンジ
ポインタ
7 レッスン644- 01ポインタとは?クイズ音声
- 02ポインタ変数の宣言チャレンジクイズ音声
- 03アドレス演算子チャレンジクイズ音声
- 04ポインタのデリファレンスチャレンジクイズ音声
- 05関数でのポインタの使用チャレンジクイズ音声
- 06Nilポインタチャレンジクイズ音声
- 07まとめ:ポインタの理解チャレンジ
複合型:配列
7 レッスン650- 01配列の概要クイズ音声
- 02配列の宣言チャレンジクイズ音声
- 03配列の初期化チャレンジクイズ音声
- 04配列要素へのアクセスチャレンジクイズ音声
- 05`len` による配列の長さチャレンジクイズ音声
- 06配列の反復処理チャレンジクイズ音声
- 07多次元配列チャレンジクイズ音声
複合型:スライス
10 レッスン965- 01スライス入門クイズ音声
- 02スライスリテラルの宣言チャレンジクイズ音声
- 03`make` によるスライスの作成チャレンジクイズ音声
- 04スライスの長さと容量チャレンジクイズ音声
- 05スライス要素へのアクセスチャレンジクイズ音声
- 06要素の追加チャレンジクイズ音声
- 07既存のスライス/配列のスライスチャレンジクイズ音声
- 08スライスの反復処理チャレンジクイズ音声
- 09スライスのコピーチャレンジクイズ音声
- 10まとめ:動的リストチャレンジ
複合型:マップ
10 レッスン965- 01マップの概要クイズ音声
- 02マップリテラルの宣言チャレンジクイズ音声
- 03`make` によるマップの作成チャレンジクイズ音声
- 04キーと値の追加と更新チャレンジクイズ音声
- 05マップの値へのアクセスチャレンジクイズ音声
- 06キーの存在確認チャレンジクイズ音声
- 07マップ要素の削除チャレンジクイズ音声
- 08マップの長さチャレンジクイズ音声
- 09マップの反復処理チャレンジクイズ音声
- 10まとめ:キー・バリューストレージチャレンジ
複合型:構造体
8 レッスン854- 01カスタム型の定義チャレンジクイズ音声
- 02構造体インスタンスの作成チャレンジクイズ音声
- 03構造体フィールドへのアクセスチャレンジクイズ音声
- 04構造体へのポインタチャレンジクイズ音声
- 05構造体の初期化チャレンジクイズ音声
- 06埋め込み構造体チャレンジクイズ音声
- 07匿名構造体チャレンジクイズ音声
- 08まとめ:カスタムデータ構造チャレンジ
エラーハンドリングの基本
8 レッスン858- 01エラーの概念チャレンジクイズ音声
- 02`error` インターフェースチャレンジクイズ音声
- 03エラーを返す関数チャレンジクイズ音声
- 04エラーのチェックチャレンジクイズ音声
- 05シンプルなエラーの作成チャレンジクイズ音声
- 06フォーマット済みエラーの作成チャレンジクイズ音声
- 07基本的なエラーハンドリングチャレンジクイズ音声
- 08まとめ:問題への対処チャレンジ
セクション 2
論理とフロー
セクションを始める開始開く閉じるデータ構造とフロー制御に焦点を当てた高度な Go プログラミングを習得しましょう。複雑な配列、コレクション、エラーハンドリング、時間管理の扱いを学びます。高度な制御フロー
5 レッスン528- 01`fallthrough` を伴う Switch 文チャレンジクイズ
- 02ネストされたループからの Breakチャレンジクイズ
- 03特定のループの Continueチャレンジクイズ
- 04`goto` 文チャレンジクイズ
- 05まとめ:高度なループ制御チャレンジ
構造体とメソッド
6 レッスン439- 01構造体でのメソッド定義チャレンジクイズ
- 02値レシーバチャレンジクイズ
- 03ポインタレシーバチャレンジクイズ
- 04レシーバの選び方クイズ
- 05メソッド vs 関数クイズ
- 06まとめ:構造体の振る舞いチャレンジ
インターフェース(基本)
8 レッスン757- 01インターフェースとは?クイズ
- 02インターフェースの定義チャレンジクイズ
- 03インターフェースの実装チャレンジクイズ
- 04インターフェース型の使用チャレンジクイズ
- 05空のインターフェースチャレンジクイズ
- 06型アサーションチャレンジクイズ
- 07型スイッチチャレンジクイズ
- 08まとめ:図形と振る舞いチャレンジ
プロジェクト:シンプルなタスクリスト
プロジェクト6 レッスン1- 01プロジェクトのセットアップチャレンジ
- 02タスクの追加プロジェクト
- 03タスク一覧の表示プロジェクト
- 04タスクの完了プロジェクト
- 05タスクの削除プロジェクト
- 06全体をまとめるプロジェクト
Mapの詳細
5 レッスン432- 01構造体のMapチャレンジクイズ
- 02Mapの値としてのポインタチャレンジクイズ
- 03Nil Mapの判定チャレンジクイズ
- 04Mapの比較クイズ
- 05まとめ - 単語出現頻度カウンターチャレンジ
Goらしい書き方:セット
7 レッスン648- 01Goにおけるセットの慣用法クイズ
- 02セットの作成チャレンジクイズ
- 03セットへの追加チャレンジクイズ
- 04要素の存在確認チャレンジクイズ
- 05セットからの削除チャレンジクイズ
- 06セットの反復処理チャレンジクイズ
- 07まとめ:一意なユーザー名チャレンジ
エラーハンドリング詳説
7 レッスン650- 01カスタムエラー型チャレンジクイズ
- 02%w によるエラーのラッピングチャレンジクイズ
- 03errors.Is によるアンラップチャレンジクイズ
- 04errors.As によるアンラップチャレンジクイズ
- 05panic の理解クイズ
- 06recover の使用チャレンジクイズ
- 07まとめ:安全な除算チャレンジ
プロジェクト:簡易在庫管理
プロジェクト6 レッスン1- 01プロジェクトの概要チャレンジ
- 02在庫の確認プロジェクト
- 03新規アイテムの追加プロジェクト
- 04在庫数の更新プロジェクト
- 05レポートの生成プロジェクト
- 06全体のまとめプロジェクト
パッケージとスコープ
7 レッスン550- 01パッケージとは?クイズ
- 02エクスポートと非エクスポートチャレンジクイズ
- 03シンプルなパッケージの作成チャレンジクイズ
- 04パッケージのエイリアスチャレンジクイズ
- 05ブランク識別子 `_`クイズ
- 06`init` 関数チャレンジクイズ
- 07まとめ:ユーティリティの作成チャレンジ
時間の操作
8 レッスン857- 01現在時刻の取得チャレンジクイズ
- 02特定の日時の作成チャレンジクイズ
- 03日時のフォーマットチャレンジクイズ
- 04日時文字列のパースチャレンジクイズ
- 05時間の期間チャレンジクイズ
- 06時間の演算チャレンジクイズ
- 07スリープとティッカーチャレンジクイズ
- 08まとめ:簡易タイマーチャレンジ
最終チャレンジ
3 レッスン3- 01基本の連絡先リストチャレンジ
- 02シンプルな数値バリデーターチャレンジ
- 03ユニークなアイテムコレクターチャレンジ
セクション 3
オブジェクト指向プログラミング
セクションを始める開始開く閉じるクラス、オブジェクト、再利用可能な構造を使ってコードを整理する方法を学びましょうGo オブジェクト指向の基礎
11 レッスン1189- 01外部ファイルチャレンジクイズ
- 02Go ワークスペースとモジュールチャレンジクイズ
- 03パッケージとインポートチャレンジクイズ
- 04公開された名前と非公開の名前チャレンジクイズ
- 05Go におけるオブジェクト指向入門チャレンジクイズ
- 06クラスとしての構造体チャレンジクイズ
- 07構造体へのメソッド定義チャレンジクイズ
- 08ポインタレシーバと値レシーバチャレンジクイズ
- 09構造体の初期化チャレンジクイズ
- 10コンストラクタ関数チャレンジクイズ
- 11まとめ:簡易計算機チャレンジ
型と構造体の徹底解説
7 レッスン752- 01基本型と複合型チャレンジクイズ
- 02カスタム型の定義チャレンジクイズ
- 03構造体タグチャレンジクイズ
- 04匿名の構造体チャレンジクイズ
- 05構造体のネストチャレンジクイズ
- 06ゼロ値とデフォルト値チャレンジクイズ
- 07まとめ:連絡帳アプリチャレンジ
ポインタとメモリ
6 レッスン644- 01Goのポインタの基本チャレンジクイズ
- 02構造体へのポインタチャレンジクイズ
- 03値渡し vs 参照渡しチャレンジクイズ
- 04new() 関数チャレンジクイズ
- 05Goのガベージコレクションチャレンジクイズ
- 06復習 - 連結リストの構築チャレンジ
インターフェース
9 レッスン969- 01インターフェース入門チャレンジクイズ
- 02暗黙的な実装チャレンジクイズ
- 03契約としてのインターフェースチャレンジクイズ
- 04空のインターフェース (any)チャレンジクイズ
- 05型アサーションチャレンジクイズ
- 06型スイッチチャレンジクイズ
- 07インターフェースの合成チャレンジクイズ
- 08Stringer と Error インターフェースチャレンジクイズ
- 09まとめ - 図形計算機チャレンジ
継承よりコンポジション
7 レッスン749- 01Goに継承がない理由チャレンジクイズ
- 02構造体の埋め込みの基本チャレンジクイズ
- 03メソッドの昇格チャレンジクイズ
- 04複数の構造体の埋め込みチャレンジクイズ
- 05埋め込み vs 集約チャレンジクイズ
- 06埋め込まれたメソッドのシャドウイングチャレンジクイズ
- 07まとめ - 従業員の階層構造チャレンジ
Goにおけるポリモーフィズム
6 レッスン643- 01インターフェースによるポリモーフィズムチャレンジクイズ
- 02Goにおけるダックタイピングチャレンジクイズ
- 03インターフェースの充足ルールチャレンジクイズ
- 04ポリモーフィックなコレクションチャレンジクイズ
- 05依存性の注入チャレンジクイズ
- 06まとめ - 決済プロセッサチャレンジ
カプセル化
5 レッスン536- 01公開フィールドと非公開フィールドチャレンジクイズ
- 02パッケージレベルのカプセル化チャレンジクイズ
- 03Getter & Setter メソッドチャレンジクイズ
- 04Go における情報隠蔽チャレンジクイズ
- 05まとめ - 学生の記録チャレンジ
エラー処理とOOP
7 レッスン754- 01error インターフェースチャレンジクイズ
- 02カスタムエラー型チャレンジクイズ
- 03エラーラッピング (fmt.Errorf)チャレンジクイズ
- 04センチネルエラーチャレンジクイズ
- 05errors.Is() と errors.As()チャレンジクイズ
- 06Panic、Defer、Recoverチャレンジクイズ
- 07復習 - ファイルパーサーチャレンジ
並行処理とオブジェクト指向
8 レッスン863- 01Goroutine の基本チャレンジクイズ
- 02Channel と通信チャレンジクイズ
- 03バッファあり Channel とバッファなし Channelチャレンジクイズ
- 04select 文チャレンジクイズ
- 05sync.Mutex と sync.RWMutexチャレンジクイズ
- 06sync.WaitGroupチャレンジクイズ
- 07スレッドセーフな構造体設計チャレンジクイズ
- 08まとめ - Worker Poolチャレンジ
ジェネリクス (Go 1.18+)
6 レッスン645- 01ジェネリクス入門チャレンジクイズ
- 02型パラメータチャレンジクイズ
- 03型制約チャレンジクイズ
- 04ジェネリック構造体チャレンジクイズ
- 05ジェネリックメソッドの回避策チャレンジクイズ
- 06まとめ:ジェネリックコレクションチャレンジ
標準ライブラリとOOP
6 レッスン644- 01io.Reader と io.Writerチャレンジクイズ
- 02sort.Interfaceチャレンジクイズ
- 03fmt.Stringer インターフェースチャレンジクイズ
- 04encoding/json と構造体チャレンジクイズ
- 05http.Handler インターフェースチャレンジクイズ
- 06まとめ:REST API モデルチャレンジ
高度なOOPの概念
6 レッスン655- 01Functional Options パターンチャレンジクイズ
- 02Go における Builder パターンチャレンジクイズ
- 03メソッドチェーンチャレンジクイズ
- 04型エイリアスと型定義チャレンジクイズ
- 05リフレクションの基本チャレンジクイズ
- 06コード生成の概要チャレンジクイズ
デザインパターン パート1
6 レッスン651- 01デザインパターン入門チャレンジクイズ
- 02Singleton パターンチャレンジクイズ
- 03Factory パターンチャレンジクイズ
- 04Abstract Factory パターンチャレンジクイズ
- 05Observer パターンチャレンジクイズ
- 06Strategy パターンチャレンジクイズ
デザインパターン パート2
7 レッスン764- 01Commandパターンチャレンジクイズ
- 02Adapterパターンチャレンジクイズ
- 03Decoratorパターンチャレンジクイズ
- 04Template Methodパターンチャレンジクイズ
- 05Stateパターンチャレンジクイズ
- 06Compositeパターンチャレンジクイズ
- 07DecoratorとしてのMiddlewareチャレンジクイズ
プロジェクト:図書管理
プロジェクト7 レッスン1- 01プロジェクトの概要と構成チャレンジ
- 02BookとUserの構造体プロジェクト
- 03貸出システムプロジェクト
- 04Interfaceによる検索機能プロジェクト
- 05JSON永続化レイヤープロジェクト
- 06管理者用CLIインターフェースプロジェクト
- 07テストと統合プロジェクト
最終課題
3 レッスン3- 01eラーニングプラットフォームチャレンジ
- 02銀行システムチャレンジ
- 03ゲームキャラクターシステムチャレンジ
CoddyでGo (Golang)を学ぶ理由
- 本物のGoコードをブラウザ上で書いて実行できます。Goツールチェーンのインストールも、GOPATHの設定も不要。各レッスンではサーバー側でGoプログラムをコンパイルし、結果をその場で表示します。
- イディオマティックなGo:パッケージ、struct、スライスとマップ、インターフェース、エラー処理、goroutines、channels。バックエンドやCLIを実際に作るときに使うGoのパターンばかりです。
- AIヒントがGoコードのデバッグや、goroutineやchannelまわりのバグの解きほぐしをサポート。答えそのものは見せないので、混乱せずに並行処理モデルが腑に落ちます。
- 修了するとGolangの無料修了証明書がもらえます。バックエンド、クラウドインフラ、DevOpsといった、Goのスキルがますます求められる職種で信頼できるアピール材料になります。
Go (Golang)学習についてのよくある質問
Go (Golang)は初心者でも学びやすいですか?
Goは現代の言語のなかでも意図的にシンプルに作られています。仕様は小さく、継承はなく、ジェネリクスのデフォルト的な複雑さもなく、標準ライブラリは充実しています。多くの初心者は最初の1時間で初めてのGoプログラムを動かし、数週間のうちにgoroutineを書き始めます。
Go(Golang)は何に使われているの?
バックエンドサービス、クラウドインフラ、CLI、DevOpsツール。Docker、Kubernetes、Terraform、そしてクラウドネイティブインフラの大半はGoで書かれています。高速なコンパイル、扱いやすい並行処理、単一の静的バイナリを生成する設計が特徴で、サーバーやコマンドラインツールに自然にフィットします。
Goの習得にはどれくらいかかりますか?
Goの基礎——構文、関数、structs、slices、maps——は、毎日練習すれば1〜2週間で身につきます。interfaces、goroutines、channelsを快適に使いこなせるようになるには、さらに2〜6週間ほど。そこからGoサービスで実戦レベルに到達するかどうかは、実際のコードベースに触れる経験次第です。
GoとPythonのどちらを学ぶべき?
目的で選びましょう。データ処理、スクリプト、AIなら、Pythonの方が早く生産性を上げられます。一方、バックエンドサービスやインフラ系のツール、並行処理が組み込まれた高速で静的型付けのバイナリが欲しい場面ではGoが輝きます。両者は補完関係にあり、実際に多くのバックエンドチームが両方を使っています。
Golangをオンラインで無料で学べますか?
はい。インタラクティブなGoコースは無料です——レッスン全編、コーディング演習、クイズ、そして修了証まで含まれます。Goコンパイラはサーバー側で動くので、コードを書き始めるのにローカルへGoをインストールしたりGOPATHを設定したりする必要はありません。
Goコース修了後に証明書はもらえますか?
はい。Goコースを修了すると、無料の修了証がもらえます。履歴書に追加したり、LinkedInでシェアしたりできます。これまでに作ったGoのプロジェクトやGitHubリポジトリと並べて示せる、検証可能な実績になります。