2007-09-12

A+D=Pを知らない子供たち

あまりも当たり前過ぎて21世紀に入ってから言葉にだしたことはあまりないのですが、当然のことながら、プログラムというのは、マシン語を理解したからって「書ける」ものではないのです。

プログラムが書ける、という状態は「物事の仕組みを抽象化する」という状態の延長線上にあるべきで、それを理解していないということは仕組みを理解していない、つまりプログラムを理解していないのとほぼ同じだと思います。

最近はLLと呼ばれる、いわゆる軽量スクリプト言語メインになってきていますし、僕も普段はRubyプログラムを書くことが増えてきましたが、このおかげでますます、コンピュータというのはマシン語で動くものではあるが、プログラムマシン語というバッドノウハウの塊から脱却して、やりたいことそのものを表現できるようになったと思いを強くしています。

その意識がないと、たとえRubyJavaScriptコードを書いていても、不可解な動きをしたり、あとから自分や他人がコードを見直したときに「なぜこんな風に書いたんだろう?」ということがピンとこないことになります。

まだ大学に入って無くて、趣味プログラミングを楽しんでいる若い人たちには、ぜひアルゴリズムデータ構造を勉強してみることを勧めます。

最近は素晴らしい時代になったもので、ごく初歩的なアルゴリズムデータ構造は言語の標準ライブラリでも使うことができます。

しかし本格的にこれらで遊びたくなったら、内部実装を読んだりポインタだけで書いてみるのがお勧めです。

(中略)

さらにいえば、これらのさらに下のレイヤーである数学を理解しているとさらに理想的です。

最後に参考文献をまとめておきます。

ただ読むだけでもとても面白い本ばかりです。

アルゴリズムイントロダクション 1〜3巻

SICP

・解析概論

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん