yahoo から「フローチャート+意味」で検索してウチに来てる人が先日から 10 人弱いる。まぁ、求めてるものはCプログラミング診断室/上司が問題/フローチャートに詳しいので、そちらをどうぞ。
時節的におそらく新人さんが疑問持って調べてるのだと思うが、どうだろう?検索エンジンも google じゃなくて yahoo からばかりだし。
フローチャートはもう見捨てるしかないんだ
某都知事じゃないですが。
もし、タンスの角に小指をぶつける程度の確率でフローチャートの研修があったとしたら適当にスルーしておけばいい。
マッタク役に立たないとは言わないけど、研修のスタンスがナンタラ工業規格に沿って厳密に書くことを強いられるなら、ま、聞いてるフリでいいかと*1。
本当に必要なものは何?
フローチャートの研修で本来教えなければならないのは、アルゴリズム的思考。これは本質的にはプログラミングとは無関係だが、密接に関連している。
これを身に付けるにはどうすればよいか?
俺の考えは、大きく分けて 2 つの要因が必要。1 つは良い師匠の元につくこと。1 つはノートとエンピツ。前者に関しては本エントリの趣旨から外れるので後者についてもう少し触れる。
ノートを使え、新人
ある問題をプログラミングで解くとき、ノートに自分の考えを書き留めること。その問題はどんな性質なのか?どうすれば解けそうか?ある入力をしたらどんな出力にならなければいけないか?自分の思考を物理的に残る形で残すこと。
今なら blog に書くのもいいと思うけど、ノートほど記述の自由度が高くないので難しいかも。形式はなんでもいい。
ものっそい恥ずかしいけど、自分のノート*2を晒してみる。こんな感じに図・表やら日本語やら擬似コードやらでカオス全開。しまいにゃ、フローチャートっぽいものや UML っぽいものも出てくるし「これは〜であってるか?」と疑問文さえ出てくる混沌空間。
少し日が経ったあとノートを見返して「あの時どんな風に取り組んだか」を見直してみる。自分の思考を何度も何度も辿ってみることで、何時しかアルゴリズム的思考は身につくと思う。