ベイダー卿

プログラムを始める人へ(その12:例題の不思議)

2009-08-25 12:52:18

 

コーホー、コーホー、こんにちは、世界陸上にどうしてライトセーバーの決闘という種目が無いのか疑問な、ベイダー卿です。

 

この”プログラムを始める人へ”のシリーズもいつの間にやら、回を重ねてましてね。

僕もびっくり、ヨーダもびっくりですよ。

本当に、読んでくださってる方がいらっしゃるというのが、もちろんありがたいんですけれども、なんとも不思議。

あの。

もう一度確認しときますけれども。

わかってますよね?

これ読んでもプログラムが組めるようにはならないって。

その点、わかってますよね?

認識してますよね?

OK?

つまり、このシリーズのエントリー郡は、具体的なプログラミング本の副読本的位置づけといいますかね。

パソコンの前に座るあなたへの応援歌。

趣味でプログラミングを始めちゃったという、なんだか暇な皆さんのための時間潰し。

つまり、プログラマーズ・ラブ・バイブルなのですよ。

そういう、ポリシーで書いてますから。

フォースにかけて誓いますけど、決して、プログラムが組めるようになるわけじゃない。

プログラムが組めるようにならないプログラム解説ですから。

そこ、ちゃんと認識してくださいね。

カイ 「プログラミングなんて疲れたよう。もう、僕、やっていけないよう…」

っていう感じで、弱音を吐いたあなたに、

セイラ 「軟弱者!」

なんていって、背中を叩いて激励し、

ムスカ 「見ろ、やる気がゴミのようだ!」

なんて、プログラムも組めないくせに、やたらと上から目線なあなたの不遜な態度を叱責し、

ヨーダ 「パソコンが目に入らないところに隠れるのじゃ」

なんて感じで、逃げ腰なあなたの姿勢に、愛の鞭を食らわせる。

それがこのシリーズの使命なのです。

あ、でも、一度くらいはセイラさんになら、言われてみるのも楽しそうだ…。

…。

まあ、それはいいとして、このエントリーの趣旨はそういうこと。

で、今日は、プログラムの解説本を見事に補っちゃおうという、このブログの趣旨そのものなお話。

前回まで、用語解説が続きましたからね。

そればかりでは面白くないので、今回は、プログラムにもうちょっと近いお話をしてみます。

あなたが、あるとき、ふと思う、「プログラムって嫌だなぁ」とか、「勉強するの面倒だなぁ」と思う理由を一つ、消して差し上げる。

 

前にもちょろっと書いたような気がしますけど、僕は、プログラムが難しいと思う理由の一つに、プログラムの解説本がつまらないというのがあると思うわけ。

だから、こうやって副読本的なことを書いてるわけですね。

「おまえの文章もつまらないだろう!」といわれれば、まあ、それまでなんですけど…。

それはそれとして…。

で、例えば、解説本に書いてある例題。

「プログラムで表を作りなさい」とかあるんですよね。

で、その作るべき表が、

名前 数学 国語 英語
佐藤 40点 70点 90点
田中 60点 80点 80点
高橋 80点 50点 30点
シス 30点 70点 10点

みたいな感じ…。

僕もパダワンの頃、課題としてやらされたような気がする、こういう表作り。

でも、これ、作って楽しいのか?

というか、これをやることで、プログラムに対する熱い思いが湧き上がるのか?

これからプログラミングをやろうとする人間の心に何か響くものがあるのか?

というのが僕の思うところなのですよ。

確かに、この例題をやることでプログラミング技術は上がるかもしれない。

でも、メンタル的に、ビシビシ来るものがない気がしませんか?

プログラムの勉強なんて、正直かったるいわけです。

もうね。

途中でやる気なくすんですよ。

そんなことわかりきってるんですよ。

なのにこれですよ。

この例題。

まともに考えたら、こんな例題出してる場合じゃない。

現実は、もっと切羽詰ってるはずなんです。シビアなんです。

緊張感が足りない。切迫した気持ちになってない。

だから、こんな例題で満足してるわけですよ。

例題がつまらない、なんてこと、すぐに気がつくと思うんですけどね。

でも、現状、こういう例題が圧倒的多数をしめてるわけですね。

例題出す人、それを読む人のことを考えてないんじゃないのか?

読者には、プログラミングに対するモチベーションがものすごくあるもんだと勘違いしてるんじゃないか?

すでにプログラミングをわかっちゃってるからって、わからない人の気持ちを踏みにじっていいのか?ってことですよ。

だから、この例題は、もっと別の形であるべきなんです。

どこかから、別のパワーをもらって、モチベーションを保てるくらいの、おもしろおかしい例題でなければならない。

例題一つだからと、バカにしてはいけないのです。

この一つの配慮が、誰かを一生プログラミングの奴隷にするのか、プログラミングとは縁の無い賢い人生をおくることにするかの、分岐点になるかもしれないんだから。

一分の隙も作ってはならないのは明白。

そのために僕が推奨するのが、愛の力。

そう、愛のために戦う戦士に皆さんを鍛え上げるのが僕の使命と、上でも言いましたからね。

だから、こうするんです。

この例題がですよ。

例えば、「クラスの女子の予想スリーサイズ表を作れ」とかだったらどうします?

あなたなら、我を忘れて作るはずですよ。

プログラムの習得も早い早い。

似たような事例は、過去にもありましたからね。

メカ音痴な世のお父さん達。

そんなお父さん達がVHSビデオデッキを買って、必死で操作を覚えた理由。

それはAVを見るため。

つまり、AVがビデオデッキの普及を助けた、なんていう話がまことしやかにささやかれてるわけですよ。

今で言えば、大人なサイトを見るために、パソコンやブラウザの習得に励むのが、世のお父さん達の悲しいサガなのですよ。

若年層にいたっては、”もえたん”やら、”萌える世界史年表”やら、いろいろと発売されてる昨今。

20代の3割が「英語は萌え系教材で学びたい」”なんて、統計を見てもわかるように、

学習系ゲームやら、萌え系教材やら、そういうのがないと、もう、まともに勉強なんてしてらんないというのが、実情ですよ。

今の日本人は、勉強するそのものに対する熱意だけでは物事を達成できず、別の興味を絡ませなければ、モチベーションを維持できなくなってるわけですね。

素晴らしくおもしろ楽しい人々なわけです。

こういう現状。

でも、逆に考えると、何か別の強力なモチベーション源さえあれば、障壁を越えるのはそれほど難しくないと言える。

だから、プログラム解説本にも、似たようなものを作るのが正しいと思うわけです。

そう、時代に迎合するのです。

むしろ迎合しないほうがおかしい。

 
ここまで、男向けに書いちゃいましたけどね。

女性向けでしたら、例えば、クラスの男子のイケメンランキングだとか、彼氏の不満を表にしなさいとかね。

「彼氏がいない!」なんて、僕と同様の心の叫びを発する、愛の放浪者な方は、理想の男の条件や好きな芸能人を表にしなさい、とかね。

腐女子の皆さんなんかは、大好きなあのシーンを表にしなさいとか…。

もう、いくらでもあるわけです。

そこらへんに、いくらでも愛のネタは転がってるわけですよ。

それを拾ってきて例題にすればいいのに、なんでわざわざ思い出したくも無い、学校の成績表なんて例題に使ってるのか?

僕には、全く理解不能なのです。

前に、僕がテストデータの話を書きましたけどね。

お仕事、職場でさえも、こういうことをしないと、やってられないときが来る。

ですから、お金ももらわず、趣味でプログラミングをするのであれば、なおさら必要なのです。

 

最近は、そういうことに気がついてる人もいるようで、解説本の一部にちょっとしたキャラクターを使うとか、そういうのも見かけますけどね。

でも、現実問題として、あなたが選んだプログラミング言語の解説本に、そういうのがあるとは限らないし、

そのキャラクターのことを好きになれるとも限らないし、

何よりも、キャラクターでみんなが喜ぶか?というとそういうわけでもなく、好みの対象は千差万別なのです。

だったらもう、自分で好きにやるしかないと思うわけですね。

例題の話に戻りますけどね。

名前 数学 国語 英語
佐藤 40点 70点 90点
田中 60点 80点 80点
高橋 80点 50点 30点
シス 30点 70点 10点

こんな表、作れといわれて、そのまま作る必要は無いわけです。

勝手に変えちゃっていい。

ただし、一つだけ注意する点がありましてね。

それは、プログラムとして間違った状態にしてはいけないということ。

この例題で言えば、名前 数学 国語 英語、と4列で、5行の表になっているということ。

それだけはとりあえず、守っておく。

そこを変えるには、データではなく、プログラムを変えないといけなくなるから。

もちろん、プログラムの変え方がわかるなら、変えてもいいんですよ。それが勉強の醍醐味ですから。

でも、変え方がわからないなら、とりあえず、点数だとか、表題だとか、そういう”データ”を変えるだけにしておくほうが良いわけです。

つまり。

その例題を見たとき、どこがデータで、どこがプログラムなのか?というのをしっかり判断できるようになる。

そこが、この例題のミソなんです。

それをわかっていただきたい。

それさえきっちり押さえておけば、好きに変えていいんです。

あなたの好きなように、愛とフォースがあふれる例題に変えちゃって問題ないですから。
いや、むしろ、変えすにはいられますまい。

あなたはそういう人だと信じてますから。

 
あ、一応真面目な話、しますとね。

データと、プログラムの本質的な部分との区別が理解できることっていうのは、プログラミングでとても大切なことなので、それがわかるようになると嬉しい限り。

でも、今のところは、はっきりわからなくても別に良いですから。

とりあえず、プログラムの文面を適当に変えてコンパイルしてみて、エラーが出ないところを色々と変更して遊ぶ。

そういうところから、プログラミングの楽しみを見つけていただきたいなと、僕は思うわけです。

とにかく遊べるところは遊び倒して、他の興味を絡ませながら進めていく。

当然、それは上達の近道ではないと思うけど、少なくとも途中で投げ出すのだけはなんとか防げるんじゃないか?と思うわけですよ。

僕は、皆さんにすごいプログラマーになっていただきたいなんて、これっぽっちも思ってませんから。

すごいプログラマーなんて、黙ってたって、勝手にすごいプログラマーになっていくんです。

それよりも、長く、適度に、ダラダラと、プログラミングを楽しむ。

基本部分だけは何とか押さえてる、立派な”趣味プログラマー”になっていただきたい。

そう願った上での提案なのです。

そうやって、”解説書”に慣れるのではなく、”プログラム”に慣れてください。それが趣味プログラマーとしての第一歩なのですから。

 
ということで、また次回。

 

※このエントリは ブロガーにより投稿されたものです。朝日インタラクティブ および ZDNet Japan編集部の見解・意向を示すものではありません。
  • 新着記事
  • 特集
  • ブログ
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]