Go言語関連書籍のまとめ

書籍からGo言語を学ぶために、どの本を手にとって良いか迷っている方に向けて、
各書籍の書評をまとめました。

書評に登場するレベルの定義

| 学習者レベル定義 | 出来ること |
| --- | --- |
| 初級 | 文法や標準パッケージの使い方を学んでいる段階 |
| 中級 | ちょっとしたツールを完成させられる段階 |
| 上級 | 実践的なプログラム、製品レベルのものを作るための勉強をする段階 |
| 対象外 | Go言語の勉強からは脇道に逸れる内容 |

# Go言語関連書籍のまとめ

## 改訂2版 基礎からわかる Go言語

### レベル

初級

### URL

[改訂2版 基礎からわかる Go言語 | 書籍詳細｜株式会社 C&R研究所](http://www.c-r.com/book/detail/1018)

[改訂2版 基礎からわかる Go言語 | 古川 昇 |本 | 通販 | Amazon](https://www.amazon.co.jp/dp/4863541783/)

### 内容

基本の説明が本としてまとまっているのが良い。
細かな説明までは踏み込んでいない。
基本的な文法のまとめが1〜8章まで。
よく使うプログラミングパターンのサンプルが9章にまとまっている。
手早く学習するなら、9章を実際に書いて動かして、わからない部分の知識を1〜8章を見直すのが良さそう。

## スターティングGo言語

### レベル

中級

### URL

[スターティングGo言語（松尾愛賀）｜翔泳社の本](https://www.shoeisha.co.jp/book/detail/9784798142418)

[スターティングGo言語 (CodeZine BOOKS) | 松尾 愛賀 |本 | 通販 | Amazon](https://www.amazon.co.jp/dp/4798142417)

### 内容

一通りの基本を理解して、もう少し細かいGoの言語仕様を理解したい人向け。
どっちでもいいけど、こちらの方がこの場合は良いといった判断が出来る情報が書かれている。
よく使うGoの標準パッケージの使い方の説明があるのが良い。
手元に1冊置いておいて、辞書的に使うのが良さそう。

## プログラミング言語Go

### レベル

中級
(コンピューターサイエンス知識や、他の言語でそれなりの経験がある方が良い)

### URL

[プログラミング言語Go - 丸善出版 理工・医学・人文社会科学の専門書出版社](https://www.maruzen-publishing.co.jp/item/b295039.html)

[プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES) | Alan A.A. Donovan, Brian W. Kernighan, 柴田 芳樹 |本 | 通販 | Amazon](https://www.amazon.co.jp/dp/4621300253/)

### 内容

細かいGoの言語仕様を理解したい人向け。
練習問題がついているので、手を動かして知識を身に付けることができるが、
問題がちょっと難しい。
数学などの知識がある方が良い。

## Goプログラミング実践入門 —— 標準ライブラリでゼロからWebアプリを作る

まだ読んだことがない。

### レベル

上級

### URL 

[Goプログラミング実践入門 —— 標準ライブラリでゼロからWebアプリを作る サポートページ — マーリンアームズ株式会社](https://marlin-arms.com/support/goweb/)

[Goプログラミング実践入門 標準ライブラリでゼロからWebアプリを作る (impress top gear) | Sau Sheong Chang, 武舎広幸, 阿部和也, 上西昌弘 |本 | 通販 | Amazon](https://www.amazon.co.jp/dp/4295000965/)


### 内容

Go言語の基本説明は無い。
Goの標準パッケージhttp, templateなどを使用して、Webサーバーを実際に実装していく。
本でのハンズオンを通じて勉強したい人向け。

## Go言語によるWebアプリケーション開発

まだ読んだことがない。

### レベル

上級

### URL

[O'Reilly Japan - Go言語によるWebアプリケーション開発](https://www.oreilly.co.jp/books/9784873117522/)

[Go言語によるWebアプリケーション開発 | Mat Ryer, 鵜飼 文敏, 牧野 聡 |本 | 通販 | Amazon](https://www.amazon.co.jp/dp/4873117526/)


### 内容

Go言語の基本説明は無い。

* WebSocketの扱い方
* httpパッケージの使い方
* Webフレームワークの実装

などを通じて、実践的なサーバー側の実装方法を習得する。
本でのハンズオンを通じて勉強したい人向け。

## みんなのGo言語【現場で使える実践テクニック】

### レベル

中級

### URL 

[みんなのGo言語[現場で使える実践テクニック]：書籍案内｜技術評論社](http://gihyo.jp/book/2016/978-4-7741-8392-3)

[みんなのGo言語【現場で使える実践テクニック】 | 松木雅幸, mattn, 藤原俊一郎, 中島大一, 牧 大輔, 鈴木健太, 稲葉貴洋 |本 | 通販 | Amazon](https://www.amazon.co.jp/dp/477418392X/)

### 内容


Go言語の基本説明は無い。
Go言語で製品レベルの開発をするために知っておくと良いテクニックがまとまっている。

* 開発環境・本番環境などを分ける
* テストのテクニック
* reflectパッケージの扱い

開発にある程度慣れてきたら読む本。

## Go言語による並行処理 (Concurrency in Go)

まだ読んだことがない。
~~日本語版は今のところない。~~ 
日本語版が出版予定になったようです。(2018年10月26日)

### レベル

上級

### URL

日本語版
[Go言語による並行処理 | Katherine Cox-Buday, 山口 能迪 |本 | 通販 | Amazon](https://www.amazon.co.jp/dp/4873118468/)

英語版
[Amazon | Concurrency in Go: Tools and Techniques for Developers | Katherine Cox-Buday | Software Development](https://www.amazon.co.jp/dp/1491941197/)

### 内容

Goの並行処理のパターンを紹介していく内容。
とにかく並行処理を極めたい人向け。


## Go言語でつくるインタプリタ

### レベル

対象外

### URL

[O'Reilly Japan - Go言語でつくるインタプリタ](https://www.oreilly.co.jp/books/9784873118222/)

[Go言語でつくるインタプリタ | Thorsten Ball, 設樂 洋爾 |本 | 通販 | Amazon](https://www.amazon.co.jp/dp/4873118220/)

### 内容

Go言語の勉強のための本ではない。
インタプリタ方式のプログラミング言語を実際に作ってみる本。
万人向けではなく、プログラミング言語の実装に興味がある人向け。

## Goならわかるシステムプログラミング

### レベル

対象外

### URL

[Goならわかるシステムプログラミング | 渋川よしき |本 | 通販 | Amazon](https://www.amazon.co.jp/dp/4908686033/)

### 内容

OS, カーネル, システムコール, ソケット通信などのシステムレベルの話をGo言語の標準ライブラリの実装を覗きながら理解を深める本。
万人向けではない。

こちらの[ASCII.jpの連載記事](http://ascii.jp/elem/000/001/235/1235262/)を書籍にまとめ直したもののため、WEBで一度内容を確認してみると良い。