プログラムの作り方

幻想を解き放とう


1:プログラムを組めない人の誤解と現実

  プログラムを書けない人や書いた事の無い人達には「プログラムを書ける人は凄い」という思い込みがあるようです。はっきり言いましてこれはただの幻想です! 本当に凄いプログラムを書く人はほんの一握りで大部分はただの翻訳家であり、さらに一部の人間は「別の意味で凄いプログラムを書く人達」なのです(あろん殿の”凄いプログラム”の頁参照)。それぞれのタイプについて少し述べると、

2:プログラムを作ると言う事はどういう事か?

  プログラムと言うと固く考えてしまいますが、一言で言えば「やって欲しい事をマシンに説明する事」です。ただし、現在のコンピュータは賢くないので「お茶」と言ってもお茶を出してくれません。細かく正確に教えてあげる必要があります。では、「コンピュータにお茶を持ってきてもらう事」を例にして説明しましょう。
  1. やかんを持つ
  2. やかんのフタを開けて 水道の蛇口の下に持って行く
  3. 蛇口をひねり水を出す
  4. 必要な量(事前に決めておきます)をやかんにいれたら、蛇口を閉める
  5. やかんにフタを置く
  6. コンロの上にやかんを置く
  7. コンロ点火
  8. お湯が沸くまで待つ(お湯が沸くとは、やかん内の水が100度になる事)
  9. 急須にお茶っ葉を必要な量入れる
  10. 急須の中にお湯を必要な量入れる
  11. しばし待つ
  12. 湯飲みの中にお茶を必要な量入れる
  13. 湯飲みを届ける
  これでお茶を飲む事ができます。しかし!!上の説明でもコンピュータにとっては大雑把な説明でしかありません。なぜなら、それぞれの動作の説明がないからです。”やかんを持つ”という動作を細かく教える必要があります、他の動作に着いても同様です。プログラムを組むという作業はこのように「物事の動作を細分化してコンピュータに分かる形に再構築する事」です。再構築した手順に従ってマシンに分かる言葉でプログラムを書けばプログラムを組んだ事になります。 ほら、思ったよりも簡単な事でしょ。レシピを書くのと同じ事ですよ。
  ちなみに、”天才”は「より細かく分解し、より短い手順に再構築できる」人たちであり ”バカ”は「より粗く分解し、より長い手順に再構築できる(場合によっては新たに不要な手順を創り出す)」人たちです。

3:実際に考えてみよう

  「分解と再構築」という作業はなれていないと分かり難いかもしれません。少し複雑な事柄を例にして考えてみましょう。お題は「公衆電話で電話をかける」です。条件として 緑の公衆電話で電話番号は覚えている場合です(手帳から電話番号を探すと、それだけでかなり複雑な動作になってしまいます)

STEP1: 最初に大体の流れを考える

  1. 受話器を持つ
  2. カードを入れる
  3. 電話番号を押す
STEP2: 各動作を もう少し細かく考える
  上の各動作をもう1・2段階程度分解すればプログラムを書けるでしょう。
  身近な事を題材にして分解と再構築を行なって見て下さい。この動作は仕事上でも色々と役に立ちますよ。例えば人に物事を説明する時、何か予定を立てる時、誰かに仕事を頼む時 etc etc 。

4:実際に作ってみよう

Xeyes(マウスカーソルを目で追いかける目玉)を作りながら 説明を行なう予定です。(つまり、今作っている最中って事です (^^;;; )