學習一個新的程式語言我習慣先看網路上的 tutorial 或 get started guide 入門,然後用看官方文件或是搜索網路資源的方式來學習,等到有了手感後,就會找本好的書來進一步提昇自己的程度,用畫的來表示大概是這樣:

就學習 Go 而言,我認爲那本書就是 Mark Summerfield 的 Programming in Go: Creating Applications for the 21st Century:

這本書不適合程式設計的初學者,而是適合已經精通其它程式語言的開發者。例如一般的 if 及 for 的用法直到第五章才有詳細介紹,但對有經驗的開發者絕對是 OK 的。

我推薦的原因是書中的範例程式都很高水準,看得出來是作者精心設計過的,示範如何用 Go 來解決實際會遇到的問題,解法都很漂亮並符合 Go 的風格。這種採用最佳示範的方法可以讓你快速學會 Go 的精華而不是一直停留在初學者階段。

另外書中也有提供了不少有用的建議做法:

  • 實現可選參數的推薦做法
  • 實現泛型的替代做法
  • 常用的並發模式

這本書也有簡中翻譯版本可以買,有一些翻譯、排版、拼字錯誤,但整體來說翻譯品質還不錯,不會影響你對 Go 的學習。