この記事では、自分が Go について学ぶために参考になった学習リソースについて紹介します。
自身が初学者のときから今まで、ずっと参考になっているものを集めました。
幅広く参考になれば幸いですが、自分が過去に戻って Go を学び始める自分におすすめするならというような気持ちで書いています。
→ メインの想定読者は Go の初学者
リソースについてですが大きく「公式」「書籍」「コード」の3観点(+その他)でまとめました。
結論から言うと、`「公式から学ぶ」は誰にでもおすすめできます!それ以外は自分の状況や好みでぜひ参考にしてみて下さい。` というような温度感です。
※ Go の開発環境の構築やプログラミング基礎の tips などはこの記事でわかりません
公式から学ぶ
A Tour of Go
「何も考えずに進められる公式のチュートリアル」として、まずはこれをおすすめします。
Go を始めるならまずはこれというもので、デファクトスタンダードになっていると思います。
一通りの書き方に加えて、ざっくりと思想や、仕様について把握することができます。
Effective Go
Go-like な書き方をするための tips 集。非公式の[日本語訳]もあります。
読み直したり、レビュー時に引用したりと腐らないドキュメント。
公式でこのような簡潔でわかりやすい資料があるところが Go の良い部分であると思います。
Go Code Review Comments
Go コードのレビューに寄せられた一般的なコメントをまとめているという公式のドキュメント。
Effective Go の捕捉と言われていて、同様に参考になります。
ここらへんは読みやすいし、シンプルに面白いです。
どちらもコーディングの指針として大変参考になります。
Go Style | styleduide
Google での Go のコーディングスタイルガイド。Go 公式ではないが Google ということでこちらに掲載。Effective Go や Go Code Review Comments をベースにより具体的にルールに落とし込んだもののイメージを持っています。
言語ドキュメント
Go は公式ドキュメントが薄くまとまっているから、まずドキュメントを読めといわれるやつ。
とはいうものの、実際に0からのスタートだとハードルが高い印象でした。
ざっと読みつつあとで見返すとか雰囲気掴んでから後で読むとかいう使い方が個人的にはあっていました。
書籍から学ぶ
書籍に関しては、基礎の基礎といったようなコテコテの入門書は紹介していません。
個人的な感想として、Go の入門は公式ドキュメントを読んだり、コードを書いたりすることが最も効果的だと思います。
書籍は辞書のように、より応用的な部分で参考にすると良いでしょう。
もし入門書をお探しであれば、個人的には [スターティング Go 言語] が広く浅く知ることができて役に立ったと思います。
実用 Go 言語
ここ最近で感動した本。
基礎的な内容から、応用的な内容まで幅広く紹介していて、読みやすく、改めて勉強になる部分も多くとても参考になりました。
出版が 2022 年 5 月ということもあり、 Go1.18 の内容も含んでいて ◎ です。
Go を学ぶならまず買っておいて良いと思います。
内容がすぐにわからなくても、必要な部分について読み返すというような使い方でも良いと思います。
初めての Go 言語
結論からいうと「実用 Go 言語」読んでおけばいいと思います。内容も被っている部分が多くこちらの本は日本語訳されたものなので、違和感のある日本語があったりします。わかりやすさ、深さ的にもまず読むなら実用 Go からで良いと思いました。
本単体の評価としては、入門すぎるかなと思ってましたけど、レベルの高い基礎というような内容で結構良かったです。イディオマティックと謳ってるだけに、Go らしい書き方を軸に書かれています。スターティング Go とか tour of go に effective go の内容混ぜたみたいな印象です。
詳解 Go 言語 Web アプリケーション開発
こちらも最近出た本。
Web 開発の観点で色々なアプローチで紹介されていて参考になります。
入門書と言うよりは2冊目の位置。
Go プログラミング実践入門
Web 開発の本。テンプレートエンジンを使ってウェブサーバーを作るみたいな実践的な内容。
フレームワークを使わずに `net/http` で書かれているので基礎から学べる点がよかったです。