機械す。
『ソースコードの読み方、教えます。』
> → http://www.itarchitect.jp/beginners/-/39361.html
> -----
> 従来のプログラミングの教育では、「プログラムを書くこと」は教えますが、
> 「プログラムを読むこと」はほとんど教えてきませんでした。
それは理由があるからで……
> 英語に例えれば、英語の本はまったく読まずに、英作文ばかり行っている
> ような状況です。英語を読む練習をすることなく、英作文ができるように
> なるでしょうか。おそらく無理ですよね。従来のプログラミング教育では、
> その無理なことをやっていたわけです。
英文に例えてどーする(汗)
プログラミング言語に自然言語を比喩として使うのは、とんでもなく危険を
伴うような気が……
この文書のさらに前の部分を引用しますと……
<引用>
プログラミング言語も1つの言語です。自然言語とまったく同じではないにしても、
それをマスターするためには、かなりの量のインプットが必要でしょう。プログラ
ミング言語の場合のインプットは、プログラム(コード)を読むこと、すなわち
コード・リーディング(Code Reading)となります。
</引用>
このあたりが怪しいのですが、もちろんインプット無しにアウトプットしよう
というのは無茶ですが、少ないインプットで大量のアウトプットが可能なのも
プログラミング言語の特徴ではないでしょうか。
これは、プログラミング言語を「数式や法則」と見るか、「言語」と見るか
でえらく違います。
Perlのラリー・ウォールは多分言語学者だから言語派でしょうし(違うかも)
Forthのチャック・ムーアはコードを読む/読ませるのが大っキライでしたね。
私はPythonistaなので、コードを読むことについての意義はもちろん否定
しませんが、この言語が「後で読める」を強く意識して設計された言語であ
ることを考えるに、「そもそも読めない/読みにくい」ものである、という
逆説的な説明が通用するのではないかと思うのです。
Smalltalk のようなイディオム集を習得したり、アルゴリズム教本や
デザインパターン本(ああ、私は一番古い訳のしか持ってない)を読む
のはもちろんためになりますが、他人様のコードを読むのは、必要に駆
られて、コードの原野を文字通りハックしていく時くらいじゃないでし
ょうか。
ですから、いろんな意味でコード解析する必要性がある人がコードを読む
のはもちろん必要ですが……入門者には不要ではないかと私は思うのですが。
人間が読むためのものは読むことに意味があるでしょうが、所詮機械に食わせる
だけのエサを人間が食せば、食中毒になるかも(笑)
> んで、紹介されている翻訳本もある本の本家(英語ですw)にpdfがあるのですが、
> → http://www.spinellis.gr/codereading/
> ・Chapter 2: Basic Programming Elements
>
> ...本当に"読み方"について書いてある(^o^)すてき
>
> この路線がいいのかな?と思いますた。
もちろん、コードを読むことも必要ですが、中〜上級者向けですね。
英語の学習に例えるなら、良書を選んだり、学習用のコードを選んだりする必要
があるかもしれませんね。
※野のコードを読むのは、英語の勉強用に、Monty Pythonのスケッチを読むよーな
モンです。いっぺん通り書けてからで十分、と私は思うんです。
※ちなみに学習用に読むなら、Pythonのライブラリのコードがお勧め。
/機械伯爵/