第3回まで無料

Go 入門コース

環境構築から、変数・制御構文・スライスとマップ・関数とポインタ・構造体とインターフェース・エラー処理・パッケージ分割・ジェネリクス・並行処理・テストまで。全50レッスンで「標準ライブラリだけでテスト付きのツールを 1 本組み立てられる」ところまで進みます。コードと実行結果はすべて Go 1.27.1 で実際に動かしたものです。

カリキュラム

全50レッスンを7つの章に分けています。第1章から順に進めるのがおすすめですが、 気になるところだけ拾い読みしてもかまいません。 ※ ブラウザ内で実行できないため、手元の go run か Go Playground(go.dev/play)で試してください。

Chapter 1 — 基礎(第1〜9回)

Go が動く仕組みを押さえ、go run で自分の手で実行できる状態にします。変数・ゼロ値・数値と文字列・標準入力、そしてコンパイルエラーの読み方まで進みます。

1

Go とは何か(環境構築と Hello World)

Go の 3 つの特徴とインストール。package main と func main() から始まる 4 行を go run で動かす。

Free
2

fmt の出力とコメント

Println・Print・Printf・Sprintf の使い分け。書式指定子の読み方と、%!d(string=…) の意味。

Free
3

変数と型・型推論

var と := の使い分け。ゼロ値があるので未初期化の変数は存在しない。型は自動変換されない。

Free
4

定数 const と iota

書き換えない値は const。iota で連番を作り、独自の型と String() を付けて Go の enum にする。

🔒 ベーシック
5

数値型と演算子

整数同士の割り算は切り捨て。int と float64 は混ぜられない。オーバーフローは黙って一周する。

🔒 ベーシック
6

文字列の基本(string・byte・rune)

文字列は UTF-8 のバイト列。len() はバイト数を返す。byte と rune の違いと、日本語の切り出し方。

🔒 ベーシック
7

strings パッケージで文字列を操作する

検索・変換・分割・除去・連結。strings の関数を用途別に整理し、Builder で連結を速くする。

🔒 ベーシック
8

標準入力と strconv

bufio.Scanner で 1 行読み、strconv で数値へ。変換関数は「値, エラー」を返す——ここが Go のリズム。

🔒 ベーシック
9

コンパイルエラーの読み方と go vet

エラーは「ファイル:行:桁」から読む。よく出る 7 つの文面と直し方、そして go vet の役割。

🔒 ベーシック

Chapter 2 — 制御構文(第10〜15回)

条件分岐とくり返しを扱います。括弧のない if、落ちない switch、for しかないループ、ラベルによる脱出。最後は数当てゲームを 1 本組み立てます。

Chapter 3 — データ構造(第16〜24回)

配列・スライス・マップ・多次元でデータをまとめます。Go の要である「スライスは配列を共有する」性質をここで正面から扱い、最後に売上データを集計します。

16

配列

長さが型の一部。宣言した時点でゼロ値が入り、関数に渡すと全体がコピーされる。だから実務はスライス。

🔒 ベーシック
17

スライスの基本

スライスはポインタ・長さ・容量の 3 つ組。切り出しても関数に渡しても、内部の配列は共有される。

🔒 ベーシック
18

append と容量(len・cap)

append は戻り値を代入し直す。len と cap の違いと、容量が余っていると共有元を壊す落とし穴。

🔒 ベーシック
19

スライスの操作と並べ替え

Go 1.21 の slices パッケージ。Sort はその場で並べ替える。絞り込みと変換は for と append で書く。

🔒 ベーシック
20

マップの基本

存在しないキーはゼロ値。0 なのか未登録なのかはカンマ OK イディオムで区別する。range の順序は毎回変わる。

🔒 ベーシック
21

マップの応用

集計は m[key]++ の 1 行。キー順出力・グループ分け・集合の代用、そしてマップは関数に渡すと共有される。

🔒 ベーシック
22

range を使いこなす

対象ごとに返る値が違う。range の値はコピー。Go 1.22 で変わったループ変数の扱いとイテレータ。

🔒 ベーシック
23

多次元スライス

スライスのスライスで表を作る。make は外側と内側の 2 段階。行方向と列方向で集計を書き分ける。

🔒 ベーシック
24

【実践】売上データを集計する

1 件を型にし、スライスに溜め、マップに足し込み、詰め替えて並べ替える。集計処理の 4 段階を 1 本に。

🔒 ベーシック

Chapter 4 — 関数(第25〜32回)

処理に名前を付けて切り出します。複数戻り値と (結果, error)、可変長引数、クロージャ、defer、そしてポインタと再帰まで進みます。

Chapter 5 — 型とインターフェース(第33〜37回)

自分でデータ型を作ります。struct と method、継承ではない埋め込み、そして implements を書かないインターフェース。標準ライブラリの仕組みに自分の型を載せるところまで。

Chapter 6 — エラーとデータ(第38〜43回)

例外のない言語で失敗をどう扱うかを体系的に学びます。%w によるラップ、panic と recover、ファイルと JSON。最後は構造体で在庫管理を設計します。

Chapter 7 — 実務へ(第44〜50回)

パッケージ分割・ジェネリクス・並行処理・テストを扱います。最後に全50回の内容を 1 つにまとめ、次に学ぶべきことを示します。

全50レッスンを終えたら、次は同じくコンパイル型で安全側に倒す Rust 入門コース や、コンテナで配る力を付ける Docker 入門コース へ。メンバーシップで全コースが解放されます。