2019年の夏頃にGolangを少しだけ使ってみました。初めての静的型付け言語、Golang独特の考え方・書き方というものに苦戦する部分はありましたがちょっとだけ書けるようになりました。
今回はGolangに入門したときに参考になった書籍やコンテンツを書いていきます。
Golangを勉強し始める前の状況と勉強後に作ったものは下記です。参考までに・・・。
- Golang入門前
- 普段はPHPやJavaScriptを使用して開発してる
- Golang入門後
- 社内の勤怠システムをSlackbotを用いて開発。勤怠データをEXCEL出力
- ラズベリーパイでデータを取得する用にスクリプト作成
こんな感じです。
A Tour of Go
Golangの基本的なことを学べる公式サイトです。
1ページ1テーマで左側に解説・説明、右側にコード・実行環境があるので実際にコードを実行して挙動を確かめながら理解を深めていくということができます。
このサイトではプログラミング言語の基本的なこと(四則演算・条件分岐・繰り返しとか)をGolangでやるとどうなるのかが解説されています。その他にGolangの並行処理で使う gorutin
とかchanel
とかが書かれているのでベーシックなことはだいたいこのサイトでわかると思います。
-> A Tour of Go
本
自分はこちらの本を購入してみました。
バージョンは古いが結構細かく書いてあって「A Tour of Go」で理解できなかったところを学ぶに読みました。
この本とかもいいかなと思ってたので、こちらを買うのもありそうです。
並行処理を深掘ってインプットしたいならO’Reillyのこの本があると良さそうです。
記事・スライド
「Takuya Ueda」さんという方が作成した2つのスライドが非常に参考になりました。
-> Go入門
まずはこれ。
入門的な内容で基本構文などが解説されているスライド。A Tour of Goを終えてから理解度を深めるために読みました。
-> Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会
gorutine
とchannel
についての解説スライド。
他の言語を使った経験はあるので基本構文はある程度スッと入ってきましたが、この並行処理周りのことがめちゃくちゃ理解するのに苦しみました。
今も結構「?」という感じになって苦しむときがあります。例えるならJavaScript
を学んだときのPromiseみたいな感じ。何回読んでも試しに書いてみても腹落ちしないような感覚でふわふわしてる状態で使っていく的な。そんなときはこのスライドや他の記事を調べて読んでます。
もっとGolangを知るなら・使っていくなら
他のエンジニアの方がまとめてくれている参考になったリストを参考にしましょう。
-> Go言語の初心者が見ると幸せになれる場所 #golang – Qiita
-> Goを始めて1年間で最高にお世話になったGo関連ブックマークを晒します。 – Qiita
ここらへんの記事がよくまとまっているので参考になるかと思います。
ちなみにこちらのまとめに掲載されている「ASCII.jp:Goならわかるシステムプログラミング」というGolangで低レイヤーのプログラミングを学ぶという連載があります。この記事読みましたが、割と「なんだこれ」感がすごくて難しかったです・・・。
でもレイヤーが変わるとこうもわからなくなるのかとか、普段ターミナルで実行しているコマンドとか普段のアプリケーションはこう動いているのかなど、Golangの深い部分が知れたという発見があったので良かったです。