Magnolia Tech

いつもコードのことばかり考えている人のために。

どうやってコーディングを学ぶか

自分が学んだ頃の、時代的なものもあるけど、今でもPerlのモジュールは粒度が小さく、ドキュメント、テストがしっかり用意されているので、参考にするにはちょうど良いと思っている。

とはいえ、今更新しくPerlを学ぶか?という話は有るので、身近な人が教えてくれる言語をまずは選んだ方がいい。


あと、現代的な言語を学ぶ上では、その言語で使えるテスティングフレームワークをなるべく早く覚えると良い。アサーションで書く、「どう動いて欲しいか」という意図が明示的に書けるようになった段階で、コーディングを学んだと言えると思う。

最初の頃って、自分でも「どう動いて欲しいのか」という所があいまいなまま書いていることが有って、動いてみて初めて「あぁ、これだ」と思うことが有ったのだけど、今なら早いうちからテストを書くことでそこに近づけると思う。

おすすめは「テスト駆動開発」に出てくるお題を、書籍で取り扱っているJavaPython以外の言語で試してみること。

テスト駆動開発

テスト駆動開発

最初は驚くくらい書けない。

写経と、自分でゼロから書くのでは全然違うので、まずその感覚が比較的短いコードで理解できる。

分からなくても、とりあえず元のお題の通りにJavaPythonで動かしてみれば、「どう動くのが意図通りなのか」という正解がすぐに分かる。


そこで慣れてきたら、やはり他の言語で書かれたプログラムを移植したり、ログのフィルタとか、JSONの単純なパーサーみたいに比較的小さなコードで実現できるものを書くといいと思う。

その先は、たくさんコードを読んで、たくさん書いて、ときどき良いプラクティスが書かれた本を読んで、またコードを書いて…の繰り返し。

例えばOSSのissueを勝手に解決するPRをどんどん書いてみるとかも良い。特に作りたいものが思い浮かばなくても生きたお題がそこにたくさん用意されているのだから。