これから業務でgolangを使うことになった方、これからgolangを使ってキャリアを歩んでいきたいという方でどのように学習していこうか悩んでいる方もいるかと思います。
そこで今回はgolangを学ぶために参考となったおすすめの本/書籍を紹介していきます。
golangとは
golangはGoogleが2009年にオープンソースのプロジェクトとして公開されたプログラミング言語です。そもそもはGoogle社の課題を解決するために開発された言語で、開発速度を向上させ、静的解析しやすい言語を目標として開発されました。
golangはメルカリやYouTubeなど、日頃使用している大規模なサービスにも採用されているため、実績は十分と言えます。
Goの主な特徴として、以下のようなものが挙げられます。
・初心者でも使いやすく学習コストが低い
・処理速度が速い
・並行処理が可能
・標準ライブラリが豊富
・シングルバイナリ
・クロスコンパイ
Goのメリット、デメリットについては以下の記事で詳しく書いているので読んでみてください。
言語仕様の特徴としては、冗長な記述が不要であったり、曖昧な記述ができません。逆に言えば、シンプルに書けるのがメリットであるため、誰でもある程度は書きやすい言語ともいえます。
golang学習におすすめの本7選
golangの特徴を掴んだところで理解を進めていくのにおすすめの本を紹介していきます。筆者が実際に読んだ中からおすすめさせていただきます。
初めてのGo言語
まずは安心と信頼のオライリーからの一冊
基本的には入門から応用まではこの一冊で網羅されています。説明も順序立てて説明されており完成度の高い参考書となっています。
しかし、元は英語の内容を日本語訳されたものなのか、違和感のある日本語があるため読みにくさはあるかもしれませんん。他のプログラミング言語を既に習得していて、これからさらにgolangをマスターしたいという方にはおすすめですが、プログラミングが全くの初心者には少しハードルが高いです。
入門編、初級編、中級編、上級編とのように別の参考書を買うのであれば、「初めてのGo言語」一冊買ったほうが結果的にコスパは高いといえます。
初学者向けによく整理され整然と順序立てて説明されているうえ豊富な実践的プラクティスが自然に織り込まれており応用書を別途読む必要のない非常に完成度の高い入門書に仕上がっている。本書の数ヶ月前に刊行された実用Go言語はほとんど重複した内容の応用書でありジェネリクスにも対応していないため完全に無用の長物となった。
購入者のレビューより
スターティングGo言語
オライリーに読みにくさを覚えてしまう方にはスターティングGo言語という本がおすすめです。
こちらも「初めてのGo言語」と同様にgolangの入門編から中級レベルまで解説されているため、この一冊あればある程度のレベルまでgolangを習得することができます。
さらにはJavaやC++、PythonやPHPなどの他のプログラミング言語との比較も記載されているため、他の言語で開発経験がある方はすんなりと理解もできます。
この本を読みながら公式チュートリアルであるA Tour of Goを進めていくと、理解がどんどん深まっていきます。
適切な量の丁寧な説明で、golangの入門書では一番分かり易いと思います。
購入者のレビューより
golangは小道具としての役割も大きく、スタートラインでこのような良い入門書で学んで、まず簡単なツールを作ってみることが大切かと思います。
詳解Go言語Webアプリケーション開発
こちらはgolangの基礎知識を得たあとに読むことをすすめる本となっています。
例えば、疎結合な実装や認証関連など実際の開発で用いる箇所にも触れていたり、DockerやGithubなどを用いた開発はどのように行うかについても触れられています。さらに後半にはハンズオン形式で手を動かしながら実装をしていくため、実際の開発を意識しながらgolangを学ぶことができます。
ただ明らかに誤記という箇所も多々あるため、何を言いたいのか察しられる人にとっては問題ありませんが、事細かく理解をしたい方にはおすすめできません。
golangを初めたばかりの初心者には少し難しい内容に思える。対象読者はある程度Goにも慣れ、Goの公式ドキュメントを読んで理解できるレベルの人かなと思います。
購入者のレビューより
golangまたは、その他の言語でもAPI開発を行なったことがある人が読むと得られるものが多いと思います。
特に後半のハンズオンは非常に有用であり、実装にそこまで時間もかからないので一度ローカルで動かしてみるといいと思います。
Goプログラミング実践入門 標準ライブラリでゼロからWebアプリを作る
この本ではフレームワークを用いずにgolangと標準ライブラリだけを使って、ゼロからWebアプリケーションを開発する流れが記載されています。
ある程度golangについて知っていないと読み進めていくのは難しいため、基礎的な本を読んだ後の2冊目、3冊目として読むことをおすすめします。
現状、Go言語の書籍の中では一番実践的かつ分かり易く解説されています。
購入者のレビューより
フレームワークに頼らず、Webの仕組みを理解するのにも役立つはずです。
ただし、実案件で一般公開するWEBサービスを実装するには、何らかのフレームワークがないと厳しいと思います。
本書ではあえてフレームワークを使わずWebの仕組みの基本から丁寧に説明し、Go言語周辺技術の解説を分かり易くしています。
みんなのGo言語
実際に現場でgolangを書くときにしかわからないtipsが詰まったのがこの本
これからgolangの開発をするという方でも、既にgolang開発の現場に参画している方にとっても参考になるような、Goエンジニアの知見が詰まっています。
こちらも入門書やある程度golangのコードを書いてから読み始めることをおすすめします。
入門書を終え、golangを実際どう使おうと考えたときに役立つ本だと思います。複数の方が各々専門のパートを説明しており、実践的かつ分かり易いです。
購入者のレビューより
エキスパートたちのGo言語
一つ前に紹介した「みんなのGo言語」と同じく、より実践的、上級的な知見を深めたいという方におすすめなのがこの本
golangが使われている様々なプロダクトについてアーキテクチャとプログラムコードのセットで紹介されており、golangで実際にプロダクトを作る際のヒントが詰め込まれています。
自ら応用力を身につけるための取っ掛かりとなる情報を提供されています。
Goを使った様々な実践的プロダクトが、アーキテクチャとプログラムコードのセットで紹介されており、これからGoで何を作ろうか?と検討する際のヒントになると思います。
購入者のレビューより
Go言語 100Tips ありがちなミスを把握し、実装を最適化する
この本にはgolangで間違えがちなことを100Tipsとして取り上げています。その例や検証など一つ一つのTipsを掘り下げているため、読んでいるだけで勉強になることばかりです。
これから現場に入るという方、既に現場に入っているという方は読んでみて損はないでしょう。
Go言語を書く上で見落としがちなTipsをまとめた一冊。
購入者のレビューより
Go言語の仕様から、頻繁に使われるライブラリ(contextとかgo testとか)、配列やスライスの仕組み、並列処理と並行処理、CPUキャッシュ等々、幅広くカバー。
名著です。
golangを動画で学ぶ
本だけでなく実際に講師に動画で教えてもらいたいという方には、オンライン学習プラットフォームであるUdemyがおすすめです。
Udemyではgolangの入門から応用まで多くの教材が揃っているので、もっと深くまで理解したという方はぜひUdemyも活用してみてください。
golang学習のために筆者が実際に受講したUdemy教材をまとめています。
最後に
golang学習におすすめの本を7冊紹介してみました。
一時期ほどの勢いは落ちて、落ち着き傾向のあるGoですが、それでもまだまだ需要があります。ぜひこの機会にgolangを習得してみましょう。