プログラミングの勉強について

http://ch.nicovideo.jp/syachosan/blomaga/ar432119を読んで思ったことをつらつらと書いてみる。

プログラミングをどうやって勉強するかっていうのはいろいろやり方あると思うけど、よく聞くのは

何か作りたいものがある→どうやって作るのか調べる→実際に手を動かして作る

というパターン。

入門書を最初から読んでいくというのでも別に良いと思うけど途中で飽きてしまうこともありますよね。

ただプログラミングを勉強する人みんながみんな何か作りたいものがあるという訳じゃないですよね。

昔、某氏が作りたいものが無い人はWebフレームワーク作れば良いよ〜みたいなことを言ってましたが、ちとハードル高いですよね。。。少なくとも僕にとっては高いです。

僕は特に作りたいものがあるわけじゃなくて仕事上必要に迫られて勉強することがほとんどです。逆にいうと仕事上必要に迫られないとなかなか手が動かない。でも仕事上いつ必要に迫られるかなんて分からないので、ある程度事前に素振りをしておくほうが良いのかなと思ってます。ほとんどできてないですけど。僕の場合は手を動かして色々やってみてなんか動いたら楽しいとかそんなんでやってます。

僕の場合は仕事の関係上Javaを触ることが多かったですが、たまにrubypythonも触ります。なんでかっていうと仕事コードにrubypythonも少しだけあるから。fluentdもコードも読みましたけど、結局どうやってログが転送されるかのbuffer,output周りがまだよくわかってないですね。bufferにどんどんpushしていってそれをpopしてoutputしていっていると思うのですが、その辺の呼び出し関係がよくわかっとらんですね。write(chunk)の呼び出しタイミングとか。最近はshibのコードをちょろっと読んでいるのですが、JavaScriptというかNode.jsよくわからんですねw

予備知識無い状態でいきなりアプリのソース読んでもよくわからないかなと思って、達人出版会からPDFが出ている下記をぽちりました。

サーバサイドJavaScript Node.js入門

サーバサイドJavaScript Node.js入門

この3連休で読もうかなと思いましたが、MIX3巻とかストロボ・エッジとか読んでいるうちに3連休が終わりそうです。

閑話休題

どちらのパターンにも共通しているのは実際に動かしてみるってことですね。最初はどっかから持ってきたソースをコピペしてちょろっと修正して、あんま意味分かってないけど動いた〜みたいなところからスタートすると思います。ソースの1行1行完全に理解してからじゃないと動かさないっていう完璧主義だとモチベーション的に続かないですよね。不完全でもまずは動かしてみることが重要だと思います。