どうも、ソルティーです。

プログラミング学習が小学校で必修になりましたね。

さて、プログラミングはどちらの人間のほうが有利でしょうか?

  • 話したり、作文が得意な文系
  • 考えたり、計算が得意な理系



答えは……どちらかというと文系がプログラミング得意となるでしょう。

え!っと思うかもしれませんが、プログラミングは国語と深い関わりがあります。

今回はその辺りを深掘りしていきますね。 

理由1.プログラムの最終形は“言語”だということを忘れてはならない

プログラム言語

プログラムと聞くと理系なイメージが出てくると思いますが、全く逆です。

プログラムは文系の領域に近いと私は思っています。

そもそも人間は他の人間とコミュニケーションをとるのに、主に“言葉”を使います。

日本語、英語、フランス語……。世の中にはたくさんの人間がいて得意な言葉があります。

では、機械とコミュニケーションをとるにはどのようにしたら良いでしょう?

それはやはり言葉を使います。

人間では英語、フランス語、日本語…、人種によってさまざまな言葉がありますね。

機械にもC言語、PHP、Java、HTMLなど、何をしたいか?によってさまざまな言葉があるんです。

つまり、人間が機械とコミュニケーションをとるのに、プログラム言語という言葉を使うんですね。

言語だから話しの構成が最も大事になる

パズルを組み合わせる

話すってことはコミュニケーション能力が必要になります。

例えばこんな人がいたら…、あなたはどちらのほうがコミュニケーションとりやすいですか?

  1. 話している言葉が支離滅裂な人
  2. 話している言葉が分かる人

もちろん、2番のほうですよね。

1番のように話している言葉が分からなかったり、意味不明な単語を使っていたらコミュニケーションとれません。同じように機械も意味不明な文字列でプログラミングされてもうまく動きません

さらに例を出すと…、こんな考え方もあります。あなたはどちらのほうがコミュニケーションがとりやすいですか?

  1. 話している内容に無駄が多い人
  2. 話している内容が簡潔な人

これももちろん、2番のほうがコミュニケーションしやすいですよね。

1番は「言ってることは分かるけど、不必要な情報が多く、とにかく伝えたいことだけ喋ってくれれば良いのに…」と思われがちです。

機械はこんな風に思ったりしませんが、意味を理解するまでに時間がかかると思ってください。

2番は話の理解が早く、手短に終わります。これは機械も同じで、処理スピードに差が出ます。

つまり、プログラミングで最も大事な力は、如何に理解できる言葉を使い、簡潔明瞭に話を組み立てられるかが肝になってきます。

理由2.国語はプログラミングの基礎として最も重要な力

国語を勉強する子供

私個人的な考えですが、国語はプログラミングの基礎で最も重要な力だと思っています。

いや、むしろ全ての学習や、社会で生きる上で国語が一番重要かと思っています。

天才プログラマーと呼ばれた方も国語力が大事って言っていました。

天才プログラマに聞く10の質問 国語力とプログラミング力の関係 解説編

なぜか?

それは文字が読めないとコミュニケーションがとりにくいからです。

文字が読めると相手の考えを理解できる

本の文字情報

私たちは日々、文字を見ています。逆に文字を見ない日なんてありません。

このウェブページも文字情報。Facebookや、LINEのチャットも文字情報です。

メールも、テレビも、書類も…。

どうして文字を使うのかというと、文字を読んで理解して欲しいからです。

テストを文字無しでやれって言われたら多分難しいでしょう。

文字があるから出題の意図が理解でき、考えることができるようになる。

プログラムも結局、文字情報の塊です。

プログラム言語

さらにプログラム言語を理解するのにも国語が必要になります。

このように文字が読めるというのは、プログラムを始める第一歩。基礎力となります。

物語を読み解く力はプログラムを読み解くのと同じ力

構成を創る

プログラミングは特に構成を理解する力が必要になります。

誰かが書いたプログラムを読み解かなければ、オリジナルのプログラムを組み込むことはできません。

どこか適当に追加しようとしても支離滅裂な文章となってしまい、プログラムはうまく動きません。

そのため、プログラムを作る前に誰かが作ったプログラムを理解する力が必要になります。

私は漫画や、ゲームのRPGが好きでした。特にストーリーや、話の構成といった部分が好きで、「ここに伏線が…」とか、「このシーンがなかったら…」とか結構考えていました。

この力は物語を理解する力だと思っていて、成り立ちや、構成を理解する力になるのかと思います。

理由3.想像する力が創造力につながる

想像から創造が生まれる

また私の話題ですが、想像することが多かったです。

どちらかというとアリも起こりもしない妄想の類ですが(笑)

しかし、この想像する力が発揮されるのが作文でした。

1文字空けようとか、題名を付けようなどのルールはありましたが、それからは自由な世界。

作文だけはサクサクと書くことができ、苦になりませんでした。

きっと、想像する力と、構成する力が同時に発揮されているのが作文なのかと思います。

想像と構成が結びついた時、やっと発想に変わってくる。そんな気がします。

国語は全ての基礎である

具体的、抽象的の間

文字理解、構成、想像がプログラミングで必須なのだとしたら、全てを満たしているのは国語しかありません。

もちろん、数学のように論理的なことも必要です。

しかし、それはあくまでも仕組みであって、その前の仕組みを作るにはさきほどの3つの力が前提で必要になってくる。

創造力は具体的と抽象的を行き来することで加速するのです。

さらに数学は答えが一つになりますが、プログラミングは答えが一つになりません。

どんな課程を経て、一番効率的な答えを出すかが重要になります。

そういうところでプログラミング的思考が役に立つのですね。詳しくは論理的思考とプログラミング的思考を学校の先生に向けてどこよりも分かりやすく解説をお読みいただければと思います。

プログラミングを学ばせようと思っている方、プログラミングの学習の前にぜひ国語力を磨いてみてください。