こんどこそGo言語の勉強をしてる
k8sやDocker周りでよく見かけるので、Go言語をちゃんと読めたらいいなぁとは何年も前から思ってたのだけど。チュートリアルをやってみたり本を読み始めてみたりしては、すぐに別のことに興味が移ってしまって続いてなくて。でも今回は仕事で触ることになるので、真面目に勉強を始めてしまった
やっぱり必要に迫られるとちゃんと続くので嬉しい。業務時間を使っても勉強してるし、勉強は業務時間の中だけでいいよって言われてるのだけど、欲深いので家でも本を読んだりして楽しんでる。今読んでるLearning Goって本は結構好きな感じなので、読み終わったら感想を書こうかなと思ってる
先月日本語訳が出てる
今日は今の自分の技術書の読み方をメモしておくことにした
技術書を読むとき
だいたい、こんな感じかなぁ
1ターン目
- まずは前半を、しっかり読む
- 前半はわりと易しい+やる気にあふれてるから頑張れる
- 後半は、さらっと飛ばして、最後のほうを読む
- 難しくなってくる+もう頭が疲れてるから集中できない
- 読み終わった気になる
- 後半は全然読めてないけど達成感!
休憩
- 公式ドキュメントを眺めたり、別の本を読んだりして「わりとわかってるかも!」っていう気持ちを楽しむ。それと、読んだ書籍では触れてなかった部分が触れられていたりして、へーってなったりする
2ターン目
- もっかい最初から読む
- わりと覚えてるのでスラスラ読める
- 後半を、じっくり読む
- 新たな気持ちで楽しむ
- それでも頭に入ってこない部分は諦める
- しばらく手を動かしてから戻ってきたら読めるかなと思って
- 読み終わる
3ターン目
- パラパラと全体を読んでおしまい
かすかなフックだけを頭に残す
僕は記憶力が全然よくないので、全部ちゃんと覚えるのは諦めてる。forの書き方とか、いまだにJavaでも調べて書いてる。毎回「ofだっけ?rangeだっけ?カッコいるっけ?」とかなって、forまで書いてエンター押してあとはIntelliJに任せてたりする
そんな記憶力なので、細かいことを覚えるんじゃなくて、かすかなフックだけを頭に残す感じで読んでる
僕がコードを書いてていちばん困るのは「認識できていない」こと
「それとは別にこういう書き方もある」とか「こういうライブラリがある」とか「こういう書き方はやめておいたほうがいい」とか「この扱いには気をつけないといけない」とか、そういうのを全く知らないと「あれ?こういう場合って気をつけたほうがいいことがあった気がする」って気づくこともできないから質問することもできない
ArrayやSliceからSliceを作ったら同じデータを参照してるとか、appendでcapacityを超えたら別の領域が確保されるとか、値レシーバーやポインタレシーバー周りで気をつけることとか。そういうのを、ちゃんと覚えてなくてもいいから、雰囲気だけ頭の片隅に置いといて「なんか気にしないといけなかった気がする」ってなるようにしておく
細かい書き方は調べれば出てくるし、IntelliJとか Linter が教えてくれるし、もういちど本を開いて読めばいいから、それくらいでいい。ペアプロとかしてると、共有してるのとは別のモニターであたふたと検索したりしないといけなくて、あんまりかっこよくはないんだけど、そういうスキルなので、しょうがない!
そんな感じで、技術書を読むときは、かすかなフックだけを頭に残す感じで読んでる。ちなみに、いまは2ターン目の1のとこ!楽しい!