プログラミングに必要な3つの「考える」

本日、来年度の講師の仕事が正式に決定しました。
昨年度のマーケティングの授業に続き、プログラミングの授業も受け持ちます。また、新しい事に挑戦です。

個人でシステム開発をしているので、「プログラミングを教えるのは楽勝だろ?」と思われるかもしれないが、人に教えるとなると「どうやって」という部分がつきまとってくる。

プログラミング言語の話だと、仕事で使っているVB.netを教える方が楽かな…とか
でも、最近の開発言語で主流になっているのはC#.netらしいから、生徒がこれからIT業界に勤めるならこっちを教えた方がいいかも…だの

工場や会社の業務を効率化させるような、お金を稼げる技術がいいかな…とか
でも、ゲームを作らせて、楽しみながらプログラミングを覚える方が生徒がついてくるよな…だの

なかなか、方向性が定まらない。

でも、ひとつだけプログラミングに必要なスキルがある。それは「考える」ことだ。

プログラミングに必要な3つの「考える」は必須スキル

プログラミングには3つの「考える」が必要になります。

  1. 理解する
  2. 流れを考える
  3. 効率を考える

まず必要な「理解する」こと

はっきり言うと、プログラムするのは誰でもできる。
開発ツールをパソコンにインストールして、どこかのプログラムサイトを見ながら、誰かの作ったコードを見て切り貼りする…そうすれば、簡単に動いちゃうんです。
ですが、意味も分からず誰かが作った物をそのまま利用すると、問題が起きたときに対処できません。
日常で例えるなら…

人材採用する事になった。
ある人に「Aを雇ってくれ」と言われて、あなたは確認しないでAを採用した。
そうしたら、Aは職場で盗みをしたり、あなたの悪口を陰で広めるとんでもない奴だった

こんな最悪な状況もあり得ます。
だから、自分で使うときは「理解する」ということが必要になります。

さらにいうと、理解がないと自分で新しいモノを生み出せなくなってしまうので、その点でもマイナスになりますね。

次は「流れ」を考えること

「どう作るか?」のステップですね。
プログラムは迷路に似ています。ある事柄をスタートからゴールに行くまでの道筋を作って行くのです。
例えば…

自動販売機にお金を入れて、ジュースが出てくる。
お金が多い場合はおつりが出てくる。

自動販売機の仕組は、誰でもが使ったことがあるでしょう。
この仕組をプログラムで作る時は、スタートのお金を入れる所から、ゴールのジュースが出てくるまでの「流れ」を考えなきゃいけません。
ちょっと試しに、考えて見てください。

 

 

 

 

こんな感じの流れが出てくればOK

  • お金入れる→足りてる?足りてない?
  • ジュースのボタンが押される→どのジュース?
  • お金返却レバー→ジュース買う前?買った後?
  • おつり→ある?ない?
  • ジュース→出す?出さない?
  • おつりはどう出す?→10玉だけで出す?

この他にもまだありますが、簡単に書いてもこれだけの判断が自動販売機の仕組の中で動いています。
そういう「流れ」を考える事ができないと、プログラミングはする事ができません。

さらに上のステップ「効率」を考える

「どうすればもっと良くなる?」のステップです。
「どうすれば早く動くか」「どうすれば無駄がないか」「どうすれば喜ばれるか」…

良いプログラミングは誰かの問題を解決したり、楽にしてあげることが目的になります。
なので「どうすれば」という問いの連続なんです。

システムを導入してからある事なんですが、使い勝手が悪い、前のシステムより質が落ちたという不満が出てきたりします。
お金を払ってシステムの導入をしても、結局システムを使わなかったなんてことも起こっちゃうのです。
なので、先を見通す事や、相手の事を考える事がプログラミングでは必要になってきます。

相手の事を思って「効率」を考える事ができるようになれば、なんちゃってプログラマーから脱却して、一人前のプログラマーになったと言えるでしょう。

「考える」ことの重要さ

3つの「考える」がプログラミングで大事…と言ったけど、プログラミングに関係無く大事。
「あいつがやってるから、オレもやる」とか
「めんどくさいから、これでいいや」とか
「今が気持ちいいから、これでいい」とか考えてると、ろくな事にならない。

最近、小学生へのプログラミング教育を導入するという話題が出ていますが、小学生に身につけさせたいのは、ソフトを開発してお金を稼ぐことのできる能力を身につけさせたい訳でなく…
プログラミング的思考…「考える」という行動を身につけさせることが目的なんだろうなと思います。

全ての状況を考えすぎると、最悪の場面を想定して「苦悩」とか「絶望」とかダークな方まで行っちゃうのでお勧めしないけど、
「自分の幸せのゴール」とか「誰かの喜ぶ事」をゴールにして、自分でどうすればいいかを考えながら、人生をプログラミングしていくとたぶんいい方向に行くんじゃ無いかと思います。
お試しあれ。

あなたの新しい一歩のお手伝いをします
岩間 崇

目次