ken2merのブログ

Webエンジニア, Ruby on Rails, Go

2017年go言語入門振り返り

2017年も無事仕事納めすることができたので、 今年の振り返りを書き残そうと思う。終わってみればgo言語ばかりやっていた一年であった。

以下で今年一年間やってきたgo言語入門〜今に至るまでを書き記していく。

a tour of go

まずはgo言語入門の定番とも言えるこれをやった。

A Tour of Go
A Tour of Go ※ JP版

やったと言っても一周した程度では全て理解できたとは言えず、 その後も定期的に見返したりと何周もする必要があった。

2017年も終わろうとしている今でも、たまに見返して、なるほどとか分からんなどと言いながら見返すたびに必ず一つは発見がある。

みんなのGo言語

これもある意味定番と言えるのだろうか、巷で話題となっていたブログ記事などを見て興味が湧いたので購入した。

gihyo.jp

内容は実践的なTips集といった感じで、最初は面白そう、使えそうと思ったところ虫食い的に読んでいった。

これも今でもたまに見返したりするのだが、電車での移動時など隙間時間にチラ見するのに便利で、書籍版/電子版とあるけど電子書籍版が圧倒的にオススメ。

コンパクトに持ち運べてどこでも見返せるのでとても便利なので、これからも活用していきたい。

2018/1/6 追記
以下に学習メモを記載。随時更新 qiita.com

ひたすらコードを読み、書く

ここからは実践というか、みんGo読んでたのもあるのか早くコードを書いて動かしてみたいという気持ちに駆られ、githubでgo のコードを漁りながらひたすら真似して試したりしていた。

主に参考にしていたのは以下

github.com github.com github.com

初めは上記のような大規模プロジェクトや有名リポジトリばかり眺めていた。

ただ最近では関連するorganization内の小さなツールとかが意外と参考になることに気がついてきた。

というのもコードを書くにもちょっとしたツール作成といったものが多く、こういう時どう書けば良いのかといった課題の解決に直に役立てられる場合が多いのではないかと感じている。

Packages - The Go Programming Language

とはいえgoに関しては標準パッケージが一番参考にすべきコード・設計であることは間違いないので、迷った時は基本に立ち返るといのも忘れないように過ごしていきたい。

もちろん、たくさん寄り道もした

ここまで一貫してgo言語をやってきたように書いたが、実は結構な寄り道をしてきたからこそ今があると思っている。

その一例が以下

www.perl-entrance.org

時にはperlに入門した。

物事を理解するにはまずは歴史から、といった印象で古くからあるスクリプト言語perlを選んだ時期があった。hatenaで使われているといった影響や、rebuild.fmを聞いていたという背景もあるかもしれない。

perlは初心者には理解が追いつかない部分が多く、最初だからかとっつきにくい気がしていた。

しかしgoをそれなりにやってきた今だと当時分からなかったことも何となく言いたいことはわかる・・・程度には成長しており、いつかリベンジする時が来るような気がしてならない。また、その時を楽しみにしている自分がいるという事実も未来への備忘録として書き残しておく。

pycon.jp

pythonを志した時もあった。

DjangoやFlaskといったWAFを使用してWebアプリケーションを書いてみたり、 numpyやpandasといった数値データを扱うライブラリを試してみたりした。

これも2ヶ月ほど勉強していて、お金をかけてカンファレンスに参加するほど 入れ込んでいたのだが、go言語を書き始めてからは自然とpythonを使用して プログラムを書くことは少なくなっていった。

これは決してpythonが合わなかったわけではなく、goが非常に書きやすかったという 理由であったのだと自分に言い聞かせている。

来年に向けて

今年はとにかく知識を欲していたという感じで、かなりインプット型でやってきてしまった。

その反省を活かしたいのと、今年インプットしてきた知識を整理していきたいという意味も込めて、来年からはアウトプット重視で活動していこうと考えている。

そして次のステージへ・・・

ということで転職だったりOSS活動だったり、
web業界への本格的なチャレンジを始める年にしていきたい。