周辺で、最近、Goの採用が増えているとのことで、Goに入門した。この記事では、入門時に勉強に使った資料などを紹介していきます。
(注)基本的に英語の資料中心です。
(Youtube) Writing, building, installing, and testing Go code
5 分間で Go をインストール、ビルド、テストする方法を紹介する動画です。いきなり言語仕様を勉強するより、短い動画を確認して、雰囲気をつかむのが良さそうです。
How to Write Go code
上記の動画とは内容的に近いチュートリアルです。
言語仕様の網羅性としては、後述の A Tour of Go の方が良いですが、いきなり個々の細かい言語仕様を勉強するのは辛い場合に、こちらの方を先にやるのが良いかと思います。コードを書く際に必要な内容が網羅され、かつ比較的短くまとまっています。
A Tour of Go
公式のチュートリアルです。言語仕様が比較的コンパクトにまとまっているので、最初のとっかかりとして良いかと思います。演習問題もついていて、理解度の確認に良いかと思います。
チュートリアルを一通り紹介する動画もありました。
An Introduction to Programming in Go
O'Reilly Mediaから出版された "Introducing Go - Build Reliable, Scalable Programs" のオンライン版が無料で読むことができます。内容的には A Tour of Go と同じですが、こっちの方が詳しそうです。
Next Steps の章で、本書を読み終えた後に取り組むべきことが紹介されています。いきなりオープンソースのプロジェクトに参加するのは難しいと思いますが、それ以外は初心者でもなんとかやれるのでは?
- 標準ライブラリの io/ioutil.go コードを読んでみる。
- 何か作ってみる。何かプログラミングの問題を探しているなら、Project Eulerが参考になる。
- コミュニティに参加する。
- メーリングリスト https://groups.google.com/forum/#!forum/golang-nuts
- オープンソースのプロジェクト
Writing Web Applications
ここまでやって慣れきたら、何か作ってみるのが良いと思いますが、いきなりスクラッチで書くのが難しいという方は、実用的なアプリケーションを題材にしたチュートリアルを写経するのも手かと思います。
以下は、簡単な Wiki を Web フレームワークなし、標準 API だけで、作るという記事です。データ型、関数、ファイル I/O、HTTP などが網羅されていて、言語仕様の復習にもなり良いかと思います。
その先は?
ここに参考になるドキュメントが一通りまとまっているので、眺めてみて気になるのを見るのが良いと思います。
Go の設計思想を理解するという意味では、以下の動画が参考になると思います。
- Go: code that grows with grace
- Google I/O 2012 - Go Concurrency Patterns Google Developers
- Google I/O 2013 - Advanced Go Concurrency Patterns
とりあえず以上です。