プログラミング
初心者向けの本はいっぱいあるけど,肝心な説明がない。
知り合いの人が最近PHPプログラミングを始めたようで,PHPプログラム暦2ヶ月の自分が何故かレクチャー。
PHPに限らずプログラミング言語の入門書はたくさんあるが,言語の説明がメインの本が多い。
(そんなにたくさん見てないので実際は違うのかも・・・)
プログラムを作ったり読んだりするために必要なお話がほとんど書かれてない。
一般に「論理的思考」とかいわれる奴について書いてない。
アルゴリズムを考えるのはとても難しいので,それに関しての本もたくさんあるが,「論理的思考」についてはまったく触れられていない。
こちらも同じく,サンプルソースに重点を置かれている。
プログラムを書くコツについて重点を置いた入門書がもっとあってもいい気がする。
ちなみに「論理的思考」に括弧がついているのは協調しているわけではなく,2種類の論理的思考があるから括弧をつけているのです。
アルゴリズム
アルゴリズムを考える上で一番重要なのは,手順の細分化。
- 如何に物事の流れを細かく分けられるか?
- 細分化した手順をグループ分け出来るか?
この辺が重要。
そんな訳で,よくある自動販売機のシステムを考える問題をアルゴリズムで悩んでいる彼に出題しました。
ただ一つ問題なのは,自分自身がこれの模範解答を持ってないこと。
- ジュースを選ぶ
- お金を入れる
- ボタンを押す
大雑把に分ければこんなもんだが,再分化したら軽く20くらいのステップが出るはず。
そして,これの上位版が SWC システム。
(上位版と言うか自分の中で最高レベルの問題)
何かと言うと,Secure Water Closet を略して SWC
つまり,トイレのアルゴリズムです。
何でコレがいいのかと言うと,条件分岐がたくさん出てくるから・・・
これも模範解答を用意してないので,今度考えておこう。
100ステップくらい出したいなぁ。。。
実生活で用を足すだけで,100も考えてたら鬱になるから程ほどに・・・w