プログラミング超基本 かみ砕き

  • このエントリーをはてなブックマークに追加

初めてプログラミングをする人にとって、何を勉強すれば良いのか? 最初で躓いてしまうこともあるのでは?  自己学習的に始める方には何から始めて、どの言語を勉強すれば良いのか。ポイントを押さえつつ、かみ砕いてプログラミングの超基本を紹介いたします。

物事の仕組みを考えてみよう

初めての方を想定して書かせていただきます。ある程度の知識をお持ちの方は読み飛ばしても結構です。
プログラミングを話すとき、一番気になるのは卵と鶏の話になりそうことです。これをお伝えするには、事前にこっちを伝えてないと。でもこっちはこれを知らないと説明し辛いとか。なので、本当に初めての方にお話しするのに何から話せばよいのかをじっくりと考えました。そこで身近で皆さんが知っているあるいは使っているものを題材として紹介いたします。

自動改札機の仕組み

車しか使わないとか言わないでください。その場合はETCにでも頭のなかで置き替えてください。ちょっと切符は横に置いといて、ICカードで自動改札機を通るときの動きを確認しましょう。

  1. ICカードをカード受信箇所にかざす。
  2. 問題が無ければ扉が開く、問題がある場合は音声が流れる。

人の感覚としては、こんな感じで理解していますよね。自動改札機の立場で考えたらどうでしょう?

  1. カード受信部分にカードがかざされるまで待機
  2. カードが使用できない種類ならば9へ。
  3. 使用できるカードならば定期か確認。定期じゃない場合は6へ。
  4. 定期ならば乗車範囲と有効期限を確認。
  5. 乗車範囲と有効期限に問題なければ8へ
  6. 残高があるか確認
  7. 残高が不足しているならば9へ
  8. 扉が閉じていたら扉を開いて終了
  9. 扉が開いていたら閉じる
  10. 音声で案内して終了

厳密にはセンサーで制御する部分など、もっと複雑ではありますが、 ざっとこんな感じでしょうか。

人が直感的に理解していることを機械はひとつずつ”はい”と”いいえ”で進んでいくことになります。そこがプログラミングの煩わしいところではありますが、逆に精度が高く同じことを繰り返しても返ってくる回答は同じです。回答が正しいか否かはちょっと横に置いといてください。

まずは流れを考えよう

プログラムは「始まり」があって「終わり」があります。ここだけは最初に明確にしておくことが大切です。 自動改札機で言えば、始まりは「カード受信部分にカードがかざされるまで待機」です。上の箇条書きでは終わりが2つあります。「扉が閉じていたら扉を開いて終了」か「音声で案内して終了」となります。
そして「始まり」から「終わり」までの状況を想像しながら上記のようにラフに箇条書きをしてみましょう。

組み立ててみる

箇条書きが終わったら、それを組み立ていくことになります。必ずしも箇条書きに何もかもリストアップしなければならないということではありません。むしろ、組み立てていくときに”矛盾”や”忘れ物”が結構な確率で出てきます。組み立ているときだけでなく、コーディング(プログラムを記述すること)のときでも矛盾や忘れ物に気付くことがありますので、そんなに神経質にならなくても大丈夫です。では、組み立ててみましょう。図式化するのがわかりやすいのでお勧めです。

自動改札機の流れ図

という形になります。箇条書きより少し複雑になりました。でも、これがプログラミングの世界なのです。流れに沿って作業が進み、途中で判定して道を選び、終点まで到着する。ざっとこんなものです。慣れてきたら組み立てながらコーディングしてしまうことの方が多いかもしれません。正直、この図式を書くことに時間を費やすならば手を動かしてコーディングした方が手っ取り早いからです。
この図のことをフローチャートとかアルゴリズムと呼んでいます。実際にはそれぞれを厳密に言えば意味合いが違いますが、「フローチャート書いて!」と「アルゴリズム(図)書いて!」は同じです。ここまでできれば、次は腕力に任せてコーディングしていくことになります。
あるあるですけど、フローチャートで簡単に表記しているものが実は複雑でさらに詳細なフローチャートが必要になることがあります。例えば上記のフローチャートで「カードがかざされるまで待機」と簡単に書いてありますが、待機するのもいつまで待機すれば良いのかとか、かざされたという事象はどうやって取得するのか等、さらに一段落とし込んだフローチャートが必要です。

■次はフィジカルトレーニングです。

SNSでもご購読できます。