Go言語エンジニアになるにはどれくらいかかりますか?
ゼロからなら、1日1時間ほどのペースでジュニア職の面接に臨めるところまで6〜12か月です。他の言語の経験があれば、ずっと短く済みます。Go言語は小さな言語だからです。このロードマップでは、Go言語コースに8〜10週間、コマンドライン、Git、SQLを合わせて約1か月、データ構造とソートのステップでさらに2か月。その後、net/httpとデータベースで小さなサービスを自分で作りましょう。Go言語のチームが採用で求めているのは、まさにそういう仕事です。
Go言語はソフトウェアエンジニアの最初の言語として適していますか?
はい。言語が小さいので全体を学びきることができ、gofmtとコンパイラが、初心者によくあるミスやスタイルをめぐる議論を、まるごと取り除いてくれます。エラーは必ずチェックすべき普通の値なので、慎重な習慣も身につきます。トレードオフは、PythonやJavaScriptより初心者向けの教材が少ないこと、そして求人がバックエンドとインフラの職種に集中していることです。
Go言語エンジニアはGo言語以外に何を知っておく必要がありますか?
このロードマップで扱うコマンドライン、Git、SQL、そしてその先の、Go言語が動く環境です:HTTPとJSONのAPI、DockerとKubernetes、リレーショナルデータベース、そしてログ、メトリクス、プロファイルを通じて稼働中のサービスを観察する方法。Go言語の標準ライブラリはWebの層の多くをカバーしているので、このロードマップの次のステップは、大きなフレームワークよりも、たいていnet/httpと実際のサービスです。
Go言語にクラスやオブジェクト指向プログラミングはありますか?
クラスも継承もありませんが、オブジェクト指向のコードが目的としているものは備わっています:メソッドを持つ構造体、型が宣言しなくても満たすインターフェース、振る舞いを再利用するための埋め込み。Go言語コースの「オブジェクト指向プログラミング」という名前のセクションが教えるのはまさにそれ、つまり継承よりコンポジションで、実務のGo言語のコードはそうやって組み立てられています。
このロードマップで、Go言語で教えていないコースはどれですか?
1つです。クリーンコードは今のところPythonでしか教えていないため、ステップ7の中ではなく、ステップのあとに載せています。Go言語ではスタイルの問題のほとんどをgofmtが決着させるので、残るのはそのコースが教えること、つまり名前、関数の大きさ、責務をどこに置くかです。Go言語のことわざ(Go Proverbs)の一つが、それをずばり言っています:「Clear is better than clever(巧妙さより明快さ)」。オブジェクト指向のプロジェクトとコーディング問題を含め、すべてのステップがGo言語です。
このGo言語ロードマップは無料ですか?
はい。このロードマップのコースはすべて無料です:レッスン、ブラウザで使えるGo言語のエディタとLinuxターミナル、テストで採点されるチャレンジ、Bugsyのヒント、そして修了証まで。Proは1日のエネルギー上限をなくし、AIの利用を無制限にしますが、このロードマップに、Proがなければ進めないものはありません。