目次を開く

※本記事にはアフィリエイト広告(プロモーション)が含まれています

Go学習ロードマップ|他言語経験のあるエンジニアが8週間で「バックエンドAPI/インフラ・SRE」に進む2トラック【2026年9月版・Go 1.27対応】

・ 著者:福朗(フリーランスAIエンジニア)
Go学習ロードマップ実務エンジニア向け。共通コアのあとにバックエンドAPIとインフラ・SREの2トラックに分かれる構成を示したアイキャッチ

「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なのか」を数字で確認しておきます。学習の途中でモチベーションが落ちたとき、ここに戻れるようにしておくと続けやすくなります。

723万円
paiza転職の求人票の提示年収で言語別1位(3年連続)。2位TypeScript 714万円、3位Ruby 689万円
75%超
CNCF(Cloud Native Computing Foundation)のプロジェクトのうちGoで書かれている割合(go.dev)
91%
2025 Go Developer Survey でGoの利用に満足と答えた割合(回答者5,379人)

「求人は多くないが、年収は高い」

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週間

Go学習ロードマップ全体像。Week0環境構築、Week1-2文法を差分で、Week3-4 Goらしさ、Week5並行処理の共通コアのあと、Week6-8でバックエンドAPIトラックかインフラ・SREトラックを選ぶ
各フェーズに「完了条件」を置き、満たしたら次へ進む

時間の目安は平日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 ./... を習慣化する
完了条件:モジュール付きのHello Worldを実行し、go vet が通る

Goは「フォーマットを議論しない」言語です。gofmt に任せると決めた時点で、インデントや括弧位置の好みは考えなくてよくなります。

Week 1–2文法を「差分」で覚える

公式チュートリアル A Tour of Go(日本語版あり)をブラウザで一通りやり、並行して入門書を1冊読みます。他言語経験者なら Tour of Go は数日で終わります。

入門書は『初めてのGo言語 第2版』(オライリー・ジャパン、2025年8月5日発行)が第一候補です。副題が「他言語プログラマーのためのイディオマティックGo実践ガイド」で、まさにこの記事の想定読者向けです。第2版ではジェネリクスの説明が大幅に改訂され、ツールの章と各章末の練習問題が追加されています。

この期間は、次の表の「差分」を自分の手で確かめることに集中してください。

テーマ他言語でよくある書き方Goでの書き方
失敗の扱い例外を throw/catcherror を戻り値で返し、呼び出し側が if err != nil で判断
クラスと継承class・extendsstruct+メソッド。継承はなく、埋め込み(embedding)で合成する
インターフェースimplements で明示メソッドが揃えば暗黙に満たす。使う側で小さく定義する
nullnull/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 前提標準ライブラリで足りる範囲が広い。まず標準で書く
完了条件:上の表の各行について「自分がメインで使う言語ではこう、Goではこう」を短いコードで示せる

Week 3–4Goらしさ:error・テスト・パッケージ設計

ここがこのロードマップで一番時間をかけるところです。

error の扱い

例外モデルではrepositoryでthrowされた例外がserviceを飛び越えてhandlerのcatchに届くのに対し、Goではrepositoryがerrorを返し、serviceが文脈を足して包み、handlerがif err != nilで判断する流れを比較した図
例外は途中を飛び越えるが、Goのerrorは各層を1段ずつ上がる

他言語経験者が最初に戸惑うのが 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/ 配下に置く
完了条件:標準ライブラリだけで小さなCLI(例:ログファイルを集計してJSONで出す)を作り、テーブル駆動テストが通る。errorは %w で包んでいる

Week 5並行処理:goroutine より先に context を覚える

mainからerrgroup.WithContextで3つのgoroutineを起動してAPI A、API B、DBを並列に呼び、結果を集約する。1つでも失敗したら残りをキャンセルし、context.WithTimeoutでタイムアウトを全goroutineに伝播する様子を示した図
実務で最初に出会うのは、この「並列に投げて集める」形

Goの並行処理はGoを選ぶ大きな理由ですが、goroutine を起動すること自体は go f() と書くだけです。難しいのは止め方です。業務コードでは次の順で覚えると事故が少なくなります。

  1. context.Context を関数の第1引数で受け渡す慣習と、context.WithTimeout / WithCancel
  2. sync.WaitGroup と、エラーを扱える golang.org/x/sync/errgroup
  3. channel は「値を渡す」用途から。select と組み合わせたパターンはその後
  4. go test -race でデータ競合を検出する

goroutine は起動したら必ず「いつ終わるか」を説明できるようにしてください。終わらない goroutine(goroutine リーク)はメモリを食い続け、本番で気づきにくい障害になります。

並行処理を体系的に学ぶなら『Go言語による並行処理』(オライリー・ジャパン、2018年)が定番です。刊行は古めですが、扱っているのは言語仕様の中核で、考え方は今も通用します。

完了条件:複数のURLに並列でリクエストを投げ、全体に3秒のタイムアウトをかけ、1件失敗したら残りをキャンセルする処理を書き、-race 付きのテストが通る

Week 6〜8:志望職種でトラックを選ぶ

共通コアを終えたら、狙うポジションに合わせて後半3週間の中身を変えます。ここで作ったものが、そのまま選考で見せる成果物になります。

A:バックエンドAPI
  • Web系のサーバーサイド
  • マイクロサービス
  • PHP・Ruby・Javaからの移行組
B:インフラ・SRE
  • SRE・プラットフォームエンジニア
  • 社内ツール・運用自動化
  • インフラ経験者のコード力強化

トラックA:バックエンドAPI

成果物:認証なしでよいので、CRUDのREST API(net/http+database/sql+slog)、テーブル駆動テスト、Dockerfile、READMEに「なぜこの構成にしたか」を書いたリポジトリ

APIの設計そのもの(キャッシュ、キュー、スケーリング)を面接で問われる職種を狙うなら、システム設計の学習方法もあわせて進めてください。

トラックB:インフラ・SRE

成果物:日常の運用作業(例:特定ラベルのPodの再起動履歴を集計してSlack用テキストで出す)を自動化するCLI。GitHub Actionsでテストとクロスコンパイルしたバイナリを配布する

SREやインフラ職への転職そのものを考えている人は、SRE転職の進め方やインフラエンジニアの転職の記事も参考になります。クラウド側の知識を資格で補うならAWS資格の選び方もどうぞ。

教材の選び方:「版」と「Goのバージョン」を必ず確認する

Goは後方互換性を重視する言語ですが、ここ数年で「書き方の標準」はかなり変わりました。ジェネリクス(1.18)、構造化ログ slog(1.21)、ServeMux のパターン拡張(1.22)、そして1.27のジェネリックメソッドと encoding/json/v2。古い教材だけで学ぶと、今の現場では使われない書き方を覚えてしまいます。

公式の Effective Go は冒頭で「2009年のリリース時に書かれ、積極的には更新されていない。ジェネリクス、モジュール、その後追加されたライブラリは扱わない」と明記しています。Goらしさの基本を学ぶには今も有用ですが、これだけを最新の正解として扱わないでください。
教材種類使いどころ注意点
A Tour of Go公式・無料Week 1。文法の全体像をブラウザでテストは扱わない
初めてのGo言語 第2版書籍(2025年8月、4,950円)Week 1〜4の主教材第1版はジェネリクスの扱いが古い。第2版を選ぶ
Learn Go with TestsWeb・無料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ツールを使った開発の進め方はClaude Codeの使い方(エンジニア向け)でも扱っています。

学習の成果を転職で評価してもらうには

paiza調査のとおりGoの求人は数が限られるので、応募先1社ごとの通過率が大切になります。学習の成果は次の3点に落とし込んでおくと、職務経歴書と面接の両方で使えます。

  1. 成果物のREADMEに「判断」を書く。標準の net/http を選んだ理由、errorをどの層で処理したか、goroutine をどう止めたか。コードより判断のほうが面接で深掘りされやすい
  2. 既存業務との接点を言語化する。「PHPのバッチをGoのCLIに置き換えて実行時間がどう変わったか」のように、今の職場で小さく試せると最も説得力がある
  3. 求人票の技術要件と成果物を対応づける。Kubernetes、gRPC、AWSなど、応募先が挙げているものと重なる部分を示す

成果物のどれを見せるかはポートフォリオの選び方、コーディング試験やライブコーディングの準備は技術面接対策で詳しく書いています。

Goの経験を活かせる求人を相談する

成果物ができたら、Goを使う求人の技術要件や年収レンジをエンジニア転職に強いエージェントで確認しておくと、残りの学習の優先順位を決めやすくなります。

エンジニア転職の無料面談を申し込む

よくある質問

Go言語は将来性がありますか?
用途がはっきりしている言語です。go.dev によるとCNCFのプロジェクトの75%超がGoで書かれており、Kubernetes もGo製です。2025 Go Developer Survey でもCLIとAPI/RPCサービスが2大用途でした。国内では、paizaの2025年調査で求人票の提示年収が言語別1位(723万円、3年連続)でした。一方で求人数ランキングではトップ10外なので、「どこでも使える言語」ではなく「クラウド・バックエンド領域で強い言語」と捉えるのが正確です。
他言語経験者なら、どれくらいでGoを実務で使えるようになりますか?
この記事の設計では、週8時間×8週間(約64時間)で「テスト付きのAPIかCLIを1本作り、設計判断を説明できる」ところまでを目安にしています。既存のGoプロジェクトのコードを読んで小さな修正ができる、というレベルです。設計をリードできるようになるには、その後の実務経験が必要です。
PythonとGo、次に学ぶならどちらがいいですか?
目的で決まります。データ分析・機械学習・AI関連が目的ならPythonのエコシステムが圧倒的です(2025年の調査でもML/AI関連の作業をしているGoユーザーは11%)。APIサーバー、CLI、Kubernetes周辺のツールなど、単一バイナリで配布・運用しやすいものを作るならGoが向いています。バックエンドやSREを狙うなら、この記事のロードマップでGoを選ぶ価値は十分あります。
プログラミング未経験でも、最初の言語としてGoを学んでいいですか?
言語としては学びやすい部類ですが、この記事は他言語経験者向けに文法を「差分」で扱っているので、未経験の人には向きません。また、paizaの調査ではGoは求人数トップ10に入っておらず、未経験者向けの募集は多くありません。未経験から転職を目指すなら、まずプログラミング独学ロードマップで求人の多い言語から始めるのが現実的です。
ジェネリクスはいつ学べばいいですか?
Week 1〜2で文法として一通り触れ、深追いはしなくて大丈夫です。業務コードでは、ライブラリ側のジェネリックな関数を「使う」場面のほうが「定義する」場面より多いからです。Go 1.27でメソッドにも型パラメータを書けるようになったので、共通処理を自作する段階(Week 6以降)で改めて確認するのが効率的です。

まとめ

フロントエンド側の学習順序が気になる人はReactの学習順序やTypeScriptの学習方法もあわせてどうぞ。

福朗
福朗

フリーランスAIエンジニア。AIパイプライン開発と技術キャリアについて発信しています。

関連記事

読み込み中...