ショートカット
ファシリテーター × あり方
コーディングの向こう側
Hello, ANOTHER world!
オブジェクト指向のはなし
プログラミングのはなし
C言語実力診断クイズ
eSkillBooks
C言語実力診断クイズ

あとがき

さてここまでの30問、やってみてどう感じたでしょうか?読者の方々からのご意見で多かったのは、だいたい次のようなものです。

ポジティブな意見:

  • 勉強になった
  • 初心者にもわかりやすい
  • なるほどー

ネガティブな意見:

  • 問題の意味が不明なものが多い
  • 簡単すぎて手応えがない

ポジティブな意見をくださった皆さん、ありがとうございます。お役に立てて良かったです。

ネガティブな意見をくださった皆さんには、いくつか種明かしをしなければなりません(懲りずにこの「あとがき」まで読み進んでくれていればいいのですが・・・)。実は、そのような意見は、あらかじめ予測されていたものです。いままで黙っていてごめんなさい。

まず、問題の意味が不明確であったのは、ところどころ「わざと」そのようにしていたためです。なぜか?それは、そもそも完全な問題など存在しないということを感じて欲しかったからです。エンジニアが直面する問題は、学校の試験問題とは違います。自分で問題を定義し、自分で問題を解決することになります。そして問題が解決した後でさえも、問題の定義が正しかったという保証はないのです。大事なことは、問題が完全かどうかではなく、何が問題かということを問い続けることです。問題は状況によって変わること、そして絶えず変化し続けるのだということを受け入れることです。

  • 問題が与えられるのを待つ人と、自分で問題を発見する人がいます。
  • 同じ状況に置かれているのに、問題を認識できる人とそうでない人がいます。
  • 同じ状況に置かれているのに、問題だと感じる部分は人によって違います。
  • 同じ問題を与えられているのに、人によって解決方法が違います。
  • 自分にとっての問題と他人にとっての問題を混同する人がいます。
  • 状況が変わったときに、問題を見直す人とそうでない人がいます。
  • 問題を解いたときに、本当に問題が解決したのか考える人とそうでない人がいます。

「さて、問題とはいったい何でしょう?」・・・という問題がここにあります。

次に、なぜ簡単な問題を多めに出したのかについて。それは、このコンテンツの目的が、難しい問題で読者を悩ませることではなかったからです(初心者にとっては難問だったと思いますが)。いちど解いておしまいのクイズではつまらないではないですか!現実の問題は、複合問題であることが多いでしょう。つまり、単純な問題がいくつか同時に発生して、見かけ上複雑になっていることが多いのです。ですから、問題を解きほぐして単純なひとつひとつの問題を見極め、取り出す技術が必要です。そのためには単純な問題について知っているべきでしょう。簡単な問題をじっくりとながめて、深く深く理解することが大切です。多くの人は、はじめに "Hello, world!" プログラムを勉強したのではないかと思います。このプログラムは初心者でも理解できたと錯覚できる程度に単純ですが、後になってもう一度ながめてみると、当時の自分の理解がいかに浅いものだったかがわかるでしょう。単純な問題こそがエッセンスなのです。

もしよければ以上のことをふまえてもう一度、第1問から解いてみてください。今度は違うものが見えるかもしれません。

<< 問題一覧に戻る

(「C言語実力診断クイズ」は2001年5月から9月にかけて作成されたコンテンツです。)