今の自分に足りないもの

最近はてな界隈でWebアプリとコンパイラ開発を比較して、どちらが程度が高い低いなんて話が盛り上がっていたけど、それを見ていたら今の自分に足りないものをいろいろと考えさせられた。

足らないものがあるのは当たり前で、挙げていけばきりがないけど今の自分が一つ上に進むために必要なものを考えてみた。

自分にはこのへんの知識がすっぽり抜けてしまっている。元々プログラムの世界に入ったのはVBAからで、そこからVB6→VB.NETC#JavaPython→その他もろもろという風になっていて、いきなり高級言語から入ってしまったので低級言語に触れる機会がなかった(というか意図的に避けていたところはある)。

なのでオブジェクト指向デザインパターンなんかについては、それなりの知識があるし、実践もしている(つもり)。

実際のところ、低レベルなことができるようになったとしても今の仕事に役立つとも思えないし、そんなに出番があるとも思えない。

じゃあ何故学ぶかというと、何かの本で読んだいいソフトウェアを開発するための極意

「低いレベルで考え、高いレベルで書く」

を実践するため。

どれだけ高度に抽象化されようとも、どこかでハードの物理的な制約に引っかかるため、常に低いレベル(ハードウェア寄り)で考えて、ソフトウェア自体は高いレベル(人間寄り)で書く必要があるということ(本来の意味とは違うかもしれん)。

ということで、これからそのへんのことを勉強していこうと思う。

まずはアルゴリズムらへんから。といってもこれ自体あまり興味を引かれる分野ではないから、身近なものを題材にしたいので、最近はまっているPSPの「カズオ」を題材にして、数独の問題を解くアルゴリズムを自力で考えてみる。

自力で解けたらブログに書きます。

カズオ - PSP

カズオ - PSP