仕事でプログラミングをしていると、
1000行に近い関数のソースなんていうのものを当たり前に書く人をたくさん見かけます。
数値に意味があるとは思えないマジックナンバーも当たり前のように書き、
オブジェクト指向ではクラスの継承すらろくに使いこなせません。
(挙げ句の果てには業務では必要じゃないとまで言われたり…悲しいけどこれ実話なのよね。)
まあそれはそれで致命的にまずいのですが、
本当にまずいのはそれがまずいということが感覚的に分からないことです。
とりあえずまずい点を10個ぐらい指摘してはみたのですが、
どうにも腑に落ちていない様子でした。
本当に一から丁寧に順を追ってゆっくりと説明しないと納得してもらえないのです。
(それでも感覚的な理解は得られませんでしたけど…)
確かに彼(彼女)らが学習している教材を覗き見してみると、
関数をだらだらと書くことがまずいとは明記されていません。
そりゃ自分も入門書で見たことはありません。
まあでも、自分からは見た目が汚いからすぐに分かるとしか言えないですが…
実際ソースコードの*美しさ*と表現しているくらいですから、
それは知識によるものではなく、
感覚によって判断しているものだからです。
仮に知識としてまずい事項を伝えることはできても、
まずい事項はそれは山のようにあり、
別のところでまた伝えなおすことになります。
結局はそのまずさそのものを理解してもらえないと、
根本的な解決にはならないのです。
この概念・感覚を人に教えるにはどうするべきなのでしょうか。
まるで"数"って何?と聞かれている気分です。
今のところ世界レベルのプログラマーでも、
このあたりは*全員に*上手く教えることができないそうです。
プログラミングで才能って言われている部分は、
そんなあたりになるのでしょうか?
(MITの6.001をプログラマーの必須要件にしたい…)
0 件のコメント:
コメントを投稿