年末進行でいつもより投稿が落ちているProgramming SHOT BARへようこそ。
年末にすいているBARってのは危機的ですね:-(
さて、プログラミングの教育の話題。
プログラムを学ぶには
- 本などから学ぶ知識
- 知識の使いどころを判断する能力
が車輪の両輪であり、片方だけでは成り立たないと考えています。
知識に関しては昨今Webでのずいぶん手に入るようになりましたし、
さらに書籍であればうまく取りまとめてあり、得ることはそれほど難しくはありません。
ただ、知識として「そういうプログラミングパラダイムがある」「そういうAPIがある」というだけでは
プログラムはできないのですよね。
実際に自分でコードを書いて、試行錯誤をして初めて知識が知恵に昇華される。
知識の使いどころを学ぶ必要があるわけです。
そして、この知識の使いどころの部分。これを学ぶことは難しい。これを教えることも難しい。
知識の使いどころをどうやって学ばせるか
実際の業務などでプログラムをしている最中に、「ここはこうしないといけないよ」という場所を
見つけるたびに対処法を教える、ということを繰り返して徐々に身に着けさせるのが、
私の経験上、確実なように思います。
つまり、プログラミング手法の適用方法については、対話的なやり取りから学ぶものだと思うのです。
まず、ここは悪い、問題があるよね、という指摘がないと学習が始まりません。
この問題提起は、自分で困難にぶちあたって自ら見つけ指摘できればよいのですが、
それに任せて勝手に育つ人は稀ですから、問題の指摘を積極的に行わなければなりません。
このあたり、なかなか機械的な手法がしにくいのですが、
最近の等号開発環境は優秀で、コードのチェック機能がありますから、
そういったチェックで問題点を機械的に指摘してもらうことができます。
FindBugsなどの有効ですね。
(参照記事)
企業などではコードレビューによって指摘をすることになると思います。
とにもかくにも、問題点を発見し、指摘することが教育の第一歩ですが、
これはまだ始まりに過ぎません。
次に、なぜ駄目なのかについての情報を得る過程です。
指摘だけして理由を説明しないようでは困惑させるばかりです。
かならず、指摘には理由を添えなくてはなりません。
この部分は書籍でもWebでも構いません。ただ、情報を探すためのポインタは必要です。
そして、正しいプログラミング手法に則って直すのですが、
ここで試行錯誤を繰り返しても正解に辿り着けない場合、
やはり経験者が誘導してやる必要があると思います。
解決する方法を理解して初めて同様のケースに対して対処できるようになるわけです。
このような過程は、個人でプログラミングをしているとなかなか得られません。
知識は持っていても使いどころがわからない。
そういったプログラマ達に向けて何をしたら知識の使いどころを学んでもらえるのでしょう?
ライブプログラミングもひとつの試みなのですが、
さて、どうなることでしょうか。
投稿日時 : 2007年12月18日 12:03