It's raining cats and dogs.

無駄なことなんてないはず

写経

今写経している本

明解 Javaによるアルゴリズムとデータ構造

明解 Javaによるアルゴリズムとデータ構造


今の会社に入ってかれこれ2年と8ヶ月くらい経ったんだけど、僕なりに思うところがあってこの本を写経している。思うところというと大げさかもしれない。
なんでこの本を写経しているかというと、

最近ろくにコード書いてない

最近なんか管理側?みたいな立ち位置になってしまってコード書いてない。もしくは書いてはいるけどまとまったコードではなく、ちょいとした改修をしたり、既存のフレームワークに則った機能開発くらいしかしてない。コード書きたい!

エンジニアとしての基礎能力の低下の認識

既存のフレームワークに則った機能を開発していると、だいたいいつもおんなじようなコードしか書かないので、アルゴリズムのような基礎能力が低下してしまう。
ちなみにおんなじようなコードとは、HTTPパラメータをうけて、バリデートしてDBに突っ込んだり取り出したりして画面表示してみたいなコード。
まぁもともと基礎力なんてないようなものだったので、低下するとかしないとかそういうレベルじゃなかったと思うんだけどね。

新しい技術や話題の技術が誘惑する

新しい技術や話題の技術って目移りするし、ついつい調べたり動かしたりする。んで動くと満足してできた気になってしまう。
アンテナ高くしてほげほげ、みたいな話は良いことだと思うし、大切なことってのはわかってる。でもエンジニアの採用面接なんかしている中で、僕がほんとにこの人と働きたいなぁと思える人って、アンテナも高いんだけど、自力あんなぁ、と思える人だと思うようになった。
そうしたときに、自分の能力を棚卸ししてみると、全然錆びついてたり、そもそも深く取り組んでこなかったなぁと。まぁ要は新しいものに目移りして、基礎をおろそかにしてましたって話。

圧倒的存在の同僚

今の会社にはエンジニアとして本気で尊敬できる人がいて(いた)、その人達と自分とを比べたときに、何が違うかを考えた。頭の良かったり、回転が速いってのもあるけど、やっぱり基礎がある。
別に彼らになろうと思わないし、追いつけるとは思ってないんだけど、それでもそういう人たちといつまでも対等に話したり、議論したり、仕事したり、酒を飲んだりしたいと思うし、そうしていくためには、薄っぺらい能力だけではダメで、きちんと基礎を見直す必要があるだろうと。友達でもあるしエンジニアと認識され、接されたいから。


まぁそんなこんなで、とりあえず本屋で目についたこの本を写経し始めた。
ちなみにこの本はJavaの本なんだけど、そのままJavaで書いても面白く無いのでRubyで書いてる。まぁ今のところ、Rubyっぽくというよりは言語としてRubyを使っているというレベルだけど。
あと、最初の方は基本的な内容というよりは、ループの使い方とか配列の特性とかって話なので別に写経する必要がないのかもしれないけど、まぁコードを書くという欲求を満たすためだけに流してやっているという感じ。それと写経したものはgithubに上げていて、githubの使い方を覚える(思い出す)練習のためにコードを書いている。