Go学習ロードマップ|他言語経験のあるエンジニアが8週間で「バックエンドAPI/インフラ・SRE」に進む2トラック【2026年9月版・Go 1.27対応】
「Go 学習 ロードマップ」で検索すると、上位は未経験者向けの独学ガイドか、個人の学習記録がほとんどです。でも実際にGoを学ぼうとしている人の多くは、PHP・Java・Python・Ruby・TypeScriptなどをすでに実務で書いているエンジニアでしょう。そういう人にとって「変数とは」「if文とは」から始まるロードマップは遠回りです。
この記事は、他言語で1年以上の実務経験がある人が、Goでバックエンド or インフラ・SRE寄りのポジションを狙うことを前提にしたロードマップです。文法は他言語との「差分」だけを押さえ、時間は Goらしい書き方(error・テスト・並行処理)と、志望職種に合わせた成果物づくりに回します。
- 週8時間×8週間(約64時間)を目安に、共通コア5週間+トラック別3週間で組む
- 文法は Tour of Go と1冊の入門書で「差分」だけ押さえる。時間をかけるべきは error の扱い・テスト・並行処理(context)
- 後半は A:バックエンドAPI(net/http・database/sql・slog)か B:インフラ・SRE(CLI・client-go・Prometheus exporter)を選ぶ
- Goは求人数では上位に入らないが提示年収は高い「少数精鋭」市場(paiza調査)。「Goを触った」ではなく「Goで運用に耐えるものを作った」と言える成果物がゴール
- 教材は版に注意。Effective Go は2009年時点の文書でジェネリクスやモジュールを扱わない。書籍は2025年刊の改訂版を選ぶ
プログラミング自体が初めての人は、先にプログラミング独学ロードマップで1言語目を固めてから戻ってくるほうが結果的に早いです。
Goを学ぶ前に押さえる市場の数字
まず「なぜGoなのか」を数字で確認しておきます。学習の途中でモチベーションが落ちたとき、ここに戻れるようにしておくと続けやすくなります。
「求人は多くないが、年収は高い」
paizaの「プログラミング言語に関する調査(2025年版)」は、2024・2025年にpaiza転職に掲載された求人票(2024年10,387件、2025年9,280件)の記載年収の中央値から言語別平均を出したものです。Goは723万円で3年連続1位でした。一方、同調査の求人数(企業ニーズ)ランキングではGoはトップ10に入っていません。上位はJavaScript(14.4%)、Java(13.9%)、PHP(11.0%)です。
つまり、Goの求人は「数は少ないが単価が高い」。未経験者を大量に採るポジションではなく、他言語でWeb・インフラの実務を経験した人が、Goを扱えることで一段上のレンジに乗る市場だと読めます。この記事が「他言語経験者向け」に絞っているのはこのためです。
Goで実際に何が作られているか
Go公式の2025 Go Developer Survey(2025年9月実施、有効回答5,379人)によると、回答者の87%がプロの開発者で、82%が本業でGoを使っています。作っているものはCLIツールとAPI/RPCサービスが2大用途で、両方を作っている人が55%、クラウドインフラ向けのツールを作っている人も3分の1以上いました。デプロイ先はAWS(46%)、自社サーバー(44%)、Google Cloud(26%)の順です。
go.dev の Cloud ページでは、Kubernetesを「Goで書かれたオープンソースのコンテナオーケストレーションシステム」と紹介し、CNCFのプロジェクトの75%超がGoで書かれていると説明しています。ロードマップを「APIトラック」と「インフラ・SREトラック」の2本に分けるのは、この用途の分布にそのまま合わせたものです。
回答者の8割は「Goより他言語の経験が長い」
同じ調査で、回答者の75%は6年以上の開発経験があり、81%はGoよりも他の言語での経験のほうが長いと答えています。Goは「最初の言語」より「2つ目、3つ目の言語」として学ばれることが多い、ということです。そして、Goユーザーが挙げた不満の1位は「ベストプラクティスやGoらしい書き方に従うこと」(33%)でした。
文法そのものより「他言語の癖を持ち込まずにGoらしく書く」ことが難所になる。このロードマップがWeek 3〜4を「Goらしさ」に充てているのは、ここがボトルネックだからです。
ロードマップの全体像:共通コア5週間+トラック別3週間
時間の目安は平日1時間×5日+週末3時間=週8時間で、8週間なら約64時間です。参考までに、roadmap.sh のGoロードマップ(全69項目)のうち55項目を5か月かけて進めた個人の学習記録では、合計141時間かかっています。そこまで網羅する必要はなく、業務や選考で問われる部分に絞れば半分以下に圧縮できる、という設計です。
各フェーズには完了条件を書いています。「教材を読み終えた」ではなく「これが動いた/説明できた」で進捗を判断してください。
Week 0環境構築:最初の1時間で済ませる
- 公式サイトから最新の安定版をインストール(2026年9月時点では Go 1.27、2026年8月19日リリース)
- エディタは VS Code+Go拡張(gopls)か GoLand。2025年の調査では VS Code 37%、GoLand 28%
go mod init example.com/helloでモジュールを作り、go run .で実行する- 保存時に
gofmtが走るよう設定。go vet ./...を習慣化する
go vet が通るGoは「フォーマットを議論しない」言語です。gofmt に任せると決めた時点で、インデントや括弧位置の好みは考えなくてよくなります。
Week 1–2文法を「差分」で覚える
公式チュートリアル A Tour of Go(日本語版あり)をブラウザで一通りやり、並行して入門書を1冊読みます。他言語経験者なら Tour of Go は数日で終わります。
入門書は『初めてのGo言語 第2版』(オライリー・ジャパン、2025年8月5日発行)が第一候補です。副題が「他言語プログラマーのためのイディオマティックGo実践ガイド」で、まさにこの記事の想定読者向けです。第2版ではジェネリクスの説明が大幅に改訂され、ツールの章と各章末の練習問題が追加されています。
この期間は、次の表の「差分」を自分の手で確かめることに集中してください。
| テーマ | 他言語でよくある書き方 | Goでの書き方 |
|---|---|---|
| 失敗の扱い | 例外を throw/catch | error を戻り値で返し、呼び出し側が if err != nil で判断 |
| クラスと継承 | class・extends | struct+メソッド。継承はなく、埋め込み(embedding)で合成する |
| インターフェース | implements で明示 | メソッドが揃えば暗黙に満たす。使う側で小さく定義する |
| null | null/None/undefined | 型ごとのゼロ値(0, "", false)。nil はポインタ・スライス・map・interface 等のみ |
| 非同期 | async/await、スレッドプール | goroutine+channel。キャンセルは context |
| 可視性 | public/private | 識別子の頭文字が大文字ならパッケージ外に公開 |
| ジェネリクス | 最初からある言語が多い | Go 1.18(2022年3月)で導入。Go 1.27でメソッドにも型パラメータを書けるようになった |
| フレームワーク | Rails・Laravel・Spring 前提 | 標準ライブラリで足りる範囲が広い。まず標準で書く |
Week 3–4Goらしさ:error・テスト・パッケージ設計
ここがこのロードマップで一番時間をかけるところです。
error の扱い
他言語経験者が最初に戸惑うのが if err != nil の多さです。ただ、これは「失敗しうる箇所がすべてシグネチャに出る」ことの裏返しでもあります。押さえるのは次の3つです。
fmt.Errorf("load user %d: %w", id, err)で文脈を足して包む(%wで元のerrorを保持)errors.Is(特定のエラー値か)とerrors.As(特定のエラー型か)で原因を判定する- 同じエラーを「ログに出して、さらに return する」二重処理をしない。処理するか、返すかのどちらか
テーブル駆動テスト
Goのテストは標準の testing パッケージと go test だけで始められます。入力と期待値をスライスに並べてループで回す「テーブル駆動テスト」が定番です。
func TestSlugify(t *testing.T) {
tests := []struct {
name, in, want string
}{
{"space", "Hello World", "hello-world"},
{"trim", " Go ", "go"},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := Slugify(tt.in); got != tt.want {
t.Errorf("Slugify(%q) = %q, want %q", tt.in, got, tt.want)
}
})
}
}
テストを軸に学びたい人には、無料のWeb教材 Learn Go with Tests が向いています。Tour of Go はテストを扱わないので、補完関係になります。
パッケージ設計
- 最初は
mainパッケージ+機能ごとの数個のパッケージで十分。レイヤーを先に大量に切らない - インターフェースは使う側のパッケージで、必要なメソッドだけを定義する(テスト時の差し替えが楽になる)
- 外に見せたくないものは
internal/配下に置く
%w で包んでいるWeek 5並行処理:goroutine より先に context を覚える
Goの並行処理はGoを選ぶ大きな理由ですが、goroutine を起動すること自体は go f() と書くだけです。難しいのは止め方です。業務コードでは次の順で覚えると事故が少なくなります。
context.Contextを関数の第1引数で受け渡す慣習と、context.WithTimeout/WithCancelsync.WaitGroupと、エラーを扱えるgolang.org/x/sync/errgroup- channel は「値を渡す」用途から。select と組み合わせたパターンはその後
go test -raceでデータ競合を検出する
goroutine は起動したら必ず「いつ終わるか」を説明できるようにしてください。終わらない goroutine(goroutine リーク)はメモリを食い続け、本番で気づきにくい障害になります。
並行処理を体系的に学ぶなら『Go言語による並行処理』(オライリー・ジャパン、2018年)が定番です。刊行は古めですが、扱っているのは言語仕様の中核で、考え方は今も通用します。
-race 付きのテストが通るWeek 6〜8:志望職種でトラックを選ぶ
共通コアを終えたら、狙うポジションに合わせて後半3週間の中身を変えます。ここで作ったものが、そのまま選考で見せる成果物になります。
- Web系のサーバーサイド
- マイクロサービス
- PHP・Ruby・Javaからの移行組
- SRE・プラットフォームエンジニア
- 社内ツール・運用自動化
- インフラ経験者のコード力強化
トラックA:バックエンドAPI
- ルーティングは標準の
net/httpから。Go 1.22 でServeMuxがHTTPメソッドとワイルドカードに対応し、"GET /posts/{id}"のようなパターンを標準だけで書けるようになった。サードパーティのルーターを入れる前に、まず標準で書いてみる - DBアクセスは
database/sql+PostgreSQL/MySQLドライバ。ORMを使う現場もあるが、SQLを直接書く設計やコード生成(sqlc など)を採る現場も多い。まず生のdatabase/sqlでトランザクションとcontext付きクエリを書けるようにしておく - ログは
log/slog。Go 1.21 で標準ライブラリに入った構造化ロガーで、JSON出力もできる - JSONは Go 1.27 の
encoding/json/v2も確認しておく。設定可能なオプションを持つ新しいJSON処理パッケージとして追加された。既存コードは従来のencoding/jsonが多いので、両方読めるようにする - 仕上げにコンテナ化。マルチステージビルドで単一バイナリを小さなイメージに載せる。これはGoが得意とするところ
APIの設計そのもの(キャッシュ、キュー、スケーリング)を面接で問われる職種を狙うなら、システム設計の学習方法もあわせて進めてください。
トラックB:インフラ・SRE
- CLIを作る。標準の
flagで始め、サブコマンドが増えたらCLIライブラリ(cobra など)を検討する。単一バイナリで配れるのはGoのCLIの強み - Kubernetes API を叩く。Kubernetes自体がGoで書かれており、公式クライアント
client-goで Pod 一覧取得や Deployment の状態監視ができる。慣れたらカスタムコントローラー(controller-runtime / kubebuilder)へ - Prometheus exporter を書く。社内システムのメトリクスを
/metricsで公開する小さなexporterは、SREの成果物として説明しやすい - 既存OSSのコードを読む。普段使っているツールのリポジトリで、CLIの引数処理やエラーの返し方を追うと「Goらしさ」の実例が大量に見つかる
SREやインフラ職への転職そのものを考えている人は、SRE転職の進め方やインフラエンジニアの転職の記事も参考になります。クラウド側の知識を資格で補うならAWS資格の選び方もどうぞ。
教材の選び方:「版」と「Goのバージョン」を必ず確認する
Goは後方互換性を重視する言語ですが、ここ数年で「書き方の標準」はかなり変わりました。ジェネリクス(1.18)、構造化ログ slog(1.21)、ServeMux のパターン拡張(1.22)、そして1.27のジェネリックメソッドと encoding/json/v2。古い教材だけで学ぶと、今の現場では使われない書き方を覚えてしまいます。
| 教材 | 種類 | 使いどころ | 注意点 |
|---|---|---|---|
| A Tour of Go | 公式・無料 | Week 1。文法の全体像をブラウザで | テストは扱わない |
| 初めてのGo言語 第2版 | 書籍(2025年8月、4,950円) | Week 1〜4の主教材 | 第1版はジェネリクスの扱いが古い。第2版を選ぶ |
| Learn Go with Tests | Web・無料 | Week 3〜4。テスト駆動で書き方を固める | 英語(有志の和訳あり) |
| Effective Go | 公式・無料 | Week 3〜4。命名・インターフェース・並行処理の作法 | 2009年時点の文書。ジェネリクス・モジュール非対応 |
| Go言語による並行処理 | 書籍(2018年) | Week 5。並行処理を体系的に | 刊行は古いが扱う内容は言語の中核 |
| 実用 Go言語 第2版 | 書籍(2025年12月、4,620円) | Week 6以降。JSON・DB・HTTP・ログ・テストなど現場の実装 | 入門書の後に読む |
| リリースノート | 公式・無料 | 随時。自分の教材より新しい変更を確認 | 英語 |
書籍は2冊(入門1冊+実務1冊)で十分です。それ以上は、教材を増やすより成果物のコードを書き直すほうが伸びます。
AIコーディングツールとの付き合い方
2025 Go Developer Survey では、回答者の53%がAIツールを毎日使っている一方、AIツールに満足しているのは55%で、Go自体の満足度(91%)と大きな差がありました。不満の1位は「動かないコードを生成する」(53%)、動いても品質が低いという声も約3割あります。
学習中にAIを使うこと自体は問題ありません。ただ、Goでの不満1位が「Goらしい書き方」である以上、AIが出した他言語っぽいコードをそのまま受け入れると、学習の一番大事な部分を飛ばすことになります。おすすめの使い方は次のとおりです。
- 自分で先に書いてから、AIにレビューさせる(逆にしない)
- AIの出力は
go vet、テスト、-raceを通してから採用する - Go 1.27 の
go fixには古い書き方を新しいイディオムに書き換える modernizer が追加された。AIの出力とgo fixの結果を比べると、今のGoの書き方が見えてくる
AIツールを使った開発の進め方はClaude Codeの使い方(エンジニア向け)でも扱っています。
学習の成果を転職で評価してもらうには
paiza調査のとおりGoの求人は数が限られるので、応募先1社ごとの通過率が大切になります。学習の成果は次の3点に落とし込んでおくと、職務経歴書と面接の両方で使えます。
- 成果物のREADMEに「判断」を書く。標準の net/http を選んだ理由、errorをどの層で処理したか、goroutine をどう止めたか。コードより判断のほうが面接で深掘りされやすい
- 既存業務との接点を言語化する。「PHPのバッチをGoのCLIに置き換えて実行時間がどう変わったか」のように、今の職場で小さく試せると最も説得力がある
- 求人票の技術要件と成果物を対応づける。Kubernetes、gRPC、AWSなど、応募先が挙げているものと重なる部分を示す
成果物のどれを見せるかはポートフォリオの選び方、コーディング試験やライブコーディングの準備は技術面接対策で詳しく書いています。
成果物ができたら、Goを使う求人の技術要件や年収レンジをエンジニア転職に強いエージェントで確認しておくと、残りの学習の優先順位を決めやすくなります。
よくある質問
Go言語は将来性がありますか?
他言語経験者なら、どれくらいでGoを実務で使えるようになりますか?
PythonとGo、次に学ぶならどちらがいいですか?
プログラミング未経験でも、最初の言語としてGoを学んでいいですか?
ジェネリクスはいつ学べばいいですか?
まとめ
- Goは「求人数は多くないが提示年収は高い」市場。他言語経験者が2つ目の言語として学び、成果物で示すのが一番効く
- 文法は差分だけ。時間は error・テスト・並行処理(context)に使う
- 後半3週間は バックエンドAPI(net/http・database/sql・slog)か インフラ・SRE(CLI・client-go・exporter)を選び、READMEに設計判断を書いた成果物を1本作る
- 教材は版を確認する。Effective Go は2009年時点の文書で、書籍は2025年刊の改訂版を選ぶ
- AIツールは「自分で書いてからレビューさせる」。go vet・テスト・
-race・go fixを通してから採用する
フロントエンド側の学習順序が気になる人はReactの学習順序やTypeScriptの学習方法もあわせてどうぞ。
参考・出典
- paiza「プログラミング言語に関する調査(2025年版)」(2025年12月22日)
- The Go Blog: Results from the 2025 Go Developer Survey
- The Go Blog: Go 1.27 is released(2026年8月19日)
- Go 1.27 Release Notes
- Go for Cloud & Network Services(go.dev)
- The Go Blog: Routing Enhancements for Go 1.22
- The Go Blog: Structured Logging with slog
- Effective Go
- A Tour of Go
- オライリー・ジャパン『初めてのGo言語 第2版』
- オライリー・ジャパン『実用 Go言語 第2版』
- オライリー・ジャパン『Go言語による並行処理』
- Learn Go with Tests
- Ritolabo「Go学習ロードマップを完走!141時間かけて学んだこと」