真美真美

健太君。今日もプログラミング習いにいくの?

健太健太

まあね。友達もみんな塾に行っちゃって遊ぶ人もいないし・・・ あれ? あそこにいるのは先生だよね。

真美真美

あっ、本当だわ。一緒にいるのは誰かしら?

 

・・・

 

田中田中

(いやぁ・・・疲れた。疲れた。
やっぱり、仕事で疲れた時には公園の散歩に限るね。)

上川上川

よぉ! 久しぶり。

田中田中

ん?!・・・ 君は・・・
上川 (かみかわ) かい? なぜ、こんなところに・・・、東京で働いていたんじゃあなかったのか?

上川上川

いやぁ。それが社内で、部長に抜擢(ばってき)されちゃってね・・・
この辺りのプロジェクトを全て任される事になって、こっち (栃木県) に来る事になっちゃったんだよ。

田中田中

そうか・・・・まぁ、一応、歓迎はするよ。
ところで、今日は何しにこっちに来たんだい? まさか、偶然こんなところで会った訳じゃないだろう?

上川上川

まあね。・・・ちょっと、君がこっちにいるのを思い出してね。顔を見たくなって寄ってみたんだよ。

田中田中

そいつは、ありがとう。・・・ でも、僕たちって、そんなに親しい間柄だったけ?

上川・・・君はいったい何をたくらんでいるんだい?

上川上川

いやだなぁ・・・「たくらむ」だなんて。
本当に顔を見に来ただけだよ。・・・・ 今日のところはね。

田中田中

そうか・・・ まあ、おかげさまで元気しているよ。

上川上川

そうみたいだね。安心したよ。
・・・ じゃあ、また来るよ。

田中田中

食べ物のおみやげなら、歓迎するよ。

上川上川

OK。OK。 じゃあね。

・・・

健太健太

先生~ !

田中田中

おっ! 健太君と真美ちゃんじゃないか。

健太健太

さっきの人って誰ですか?

田中田中

さっきの人? ・・・ ああ、あいつか!

知らない人だなぁ。・・・ この辺りをうろついている浮浪者じゃないかな。 君達はあんな怪しい大人に付いて行っちゃ駄目だよ。

真美真美

(「怪しい」ってどっちが? ・・・ 絶対、田中さんの方が浮浪者に近いと思うわ・・・)

田中田中

こんなところで、話をするのもなんだし、ちょっと場所を変えようか。

 

・・・

 

田中田中

今日は少しコーディングの話をするよ。

健太健太

「コーディング」ってなんですか?

田中田中

健太君は、プログラマーの仕事というと、ずっとパソコンに向かっていて、キーボードを叩いているイメージを持っていないかい?

健太健太

はい。確かに・・・。 何やら訳の分からない文字を打ち込んでいるイメージがありますね。

 

田中田中

うん。その訳の分からない文字は 「ソースコード」と言って、コンピューターに「こういう事をやってね。」ってお願いする為のものなんだ。そして、そのソースコードを書く事を「コーディング」って呼んでいるんだよ。

真美真美

要するに、プログラムを書く事を「コーディング」って言ってしまっていいの?

田中田中

うん。その認識でほぼ間違いないね。
例えば、以下はソースコードの例だよ。

 

田中田中

とりあえず、今は内容を理解する必要はないからね。

「ソースコード」はこういうものなんだとイメージだけ掴んでみてね。
そして、このソースコードを書く事を「コーディング」って言うんだ。

真美真美

「ソースコード」と「コーディング」って「原稿」と「執筆」の関係みたいなものかしら?

田中田中

それは、うまい例だね。確かに小説家の人達とかは「執筆」の成果として「原稿」ができあがる。それと同じで、プログラマーの人達も「コーディング」の成果として「ソースコード」ができあがるんだ。

健太健太

ところで、先生・・・。 このソースコードって見ても全然、訳が分からないんですけど、プログラマーの人達ってこういうのをスラスラ書いたりしているんですか?

田中田中

うん。この程度だったら、プログラマーと呼ばれる人達はみんなスラスラ書いてしまうね。

ただ、それは以下の事を無意識にやっているんだ。

  1. コンピューターにやって欲しい事を「流れ図」にする。
  2. 流れ図を「言語化」する。

健太健太

「流れ図」って何ですか?

田中田中

流れ図」は「フローチャート」とも言って、コンピューターにやって欲しい事の流れを図に示したものだよ。

 

 

真美真美

これが「流れ図」ね。
田中さん・・・ どうして、プログラミングの時には「流れ図」を書く必要があるの?

田中田中

それは、コンピューターが何をすれば良いのか? ・・・ それを明確にする為だよ。
この前、僕が健太君に「カレーを作って」って頼んだ時、真美ちゃんと健太君は、自分達で材料とかも判断してカレーライスを作ってくれたよね。それは、君たちのこれまでの経験からそう判断したわけだ・・・・

でも、コンピューターはそういう人生経験というものが全くない。つまり、ちょっとでも、あいまいな事があったら自分では判断できないんだ。

だから、プログラミングで、コンピューターにやって欲しい事をお願いする為には、一切のあいまいさを排除して、この様な流れ図で書ける形にしておくんだよ。

健太健太

じゃあ、「言語化」というのは何ですか?

田中田中

それは、ソースコードの形にする事だよ。ソースコードっていうのは、結局はこの流れ図を文字で表現したものにすぎないんだ。

だから、プログラミングをする時には、まずコンピューターにやって欲しい事を「流れ図」にする。それが、とにかく第一歩だ。

でも、世の中のプログラミングの本とか教材は、この流れ図にする事と、言語化する事を同時にやっちゃっている事が多いね。二つの事を同時に覚えようとするから、訳が分からなくなって挫折する人も出てくる。

だから、僕は、この二つを分けて考えようと思う。 まずは、やって欲しい事を「流れ図」にする事をやってみて、それが終わったら「言語化」に入っていきたいと思うんだ。

次回は、いよいよ手を動かしてみて、「流れ図」を作る事をやってみるよ。

健太健太

は~い。頑張ります。

 

まとめ

コンピューターにやって欲しい事をお願いするのが「ソースコード」、ソースコードを書く事を「コーディング」と言う。

コーディングは 1. コンピューターにやって欲しい事を「流れ図」にする。 2. 作った流れ図を「言語化」する。・・・という2ステップで行なう。