プログラミングと学校教育との相性の悪さについて考察する

最近何かと話題のプログラミングについて話したい。

プログラミングは、一部のマニアックな人たちのものから、「みんながなんとなくでも理解しておいたほうがいいこと」くらいまで重視されるようになっている。

2020年度から、小学校で「プログラミング教育が必修化」されるらしい。まあ必修化と言っても、教科書ができるわけでも、PCが配られるわけでもなく、数学などの時間にちょっと教えてよね、という程度のことらしいけど。

それでも、「プログラミング」の評価が高まっているのは間違いないだろう。

ただ、個人的には、「プログラミング」と「学校教育」は相性が悪いと思っている。それぞれの性質が衝突(コンフリクト)するというか、どちらかを頑張ればどちらかが苦手になるようなところがある。

今回は、「プログラミングと学校教育との相性の悪さ」について、考察&解説していきたい。

「プログラミングのことを良く知りたい」という人にとって参考になる内容なはずだ。

プログラミングは「外部記憶」に頼るのが基本

まず、学校のテストは、「内部記憶」を重視している。

基本的に、「内部記憶=覚えること」無しに、入試をクリアすることは不可能だ。

いわゆる「勉強」における多くの作業は、暗記することに充てられる。それが悪いと言いたいのではなく、むしろ重要なことなのだが、「プログラミング」は暗記をよしとしない。

「webプログラミング」は言うまでもなく、それ以外のジャンルのプログラミング作業でも、「必要なことはそのつど調べる」という姿勢のほうが上手く行きやすい。

プログラミングの「記法」などは覚える必要がなく、必要になるたびに検索して調べればいいのだ。「覚える能力」よりも「調べる能力」のほうがずっと大事。

プログラミングをするときに重要なのは、「内部記憶」ではなく「外部記憶」に頼ろうとする姿勢だ。

学校教育は「覚える」ことに重点が置かれているので、「そのつど調べる」という技能が身に付きにくい。

学校教育のやり方のままプログラミングに挑戦する人で典型的なのは、「書き方」を覚えようとしてしまうことだ。オライリーの技術書とか買って読み込む、みたいのは、ある程度コードを書いて動かしてみたことのある人が知識を補強するためにやることであって、初学者がやることではない。プログラミングには教科書にあたる本はない。

プログラミングは、「覚えているから書ける」わけではない。

「とりあえず表示してみる」「とりあえず動かしてみる」というのが大事で、そのためには覚えている必要はない。必要なことはすべてググって解決してもいい。

極端なことを言えば、コピペの組み合わせでもいいから、自分の作りたいと思っているものを作れればそれでいい。

「内部記憶」で解決しようとせず、なるべく「外部記憶」に頼る。強いて言えば、「ライブラリ」を上手に頼れるかどうかでもプログラマの実力が出る。

 

プログラミングには途中点がない

学校のテストは、100点満点のものが多い。実力は、0から100の間で測られる。

一方で、プログラミングには途中点がない

プログラミングは、「表示されるか、されないか」「思った通りの挙動をするか、しないか」の二択で、途中点が評価されることはない。

学校教育が、実力を「0から100」で測定されるものだとするなら、プログラミングは、「0から1」を何度も積み重ねていくような作業だ。

学校のテストの場合、「とりあえずなんか書いておこう」とか「途中点を貰えるように書く」というのがあるけど、プログラミングはそういうものが通用しない。そもそも、「100点満点のテスト」という形で問題が提供されるわけではない。

動くか動かないか、作れるか作れないか、といった「0か1か」に向き合わなければならないところに、プログラミングの厳しさがある。

コンピュータには、「不完全な回答の意図を汲んで点数を与えてくる」なんていう優しさがないので、これは学校文化と大きく違うところだ。

 

プログラミングは反体制的な性質のもの

プログラミングは、その性質上、どうしても反体制的なものになりやすい。そしてそれは、「学校」という仕組みとかなり相性が悪い。

プログラミングとはそもそもどういうことか?」というと、「新しいシステムを作り出すこと」だ。

「システムそのものに介入する力を持つ」というのが、プログラミングを身につけるということなのだ。

それはつまり、非効率な既存のシステムを役立たずなものにしてしまう、という意味でもある。プログラミングは、既存のシステムへの破壊的な意味を持ち、言い換えれば「反体制的」なものなのだ。

だから、警察などの国家権力は、過度な偏見を持ってしてさえプログラミング的なものを取り締まろうとする。理不尽にプログラマが取り締まれた例はたくさんあるけど、これは日本だけじゃなく世界的な傾向。アメリカのようなIT国家ですら無実のプログラマを逮捕してる。

プログラミングが反体制的なものだとすれば、学校制度と相性が悪い理由もわかるだろう。

学校はそれ自体が「既存のシステム」だ。毎日同じ時間に投稿し、全員が画一的に、決められたカリキュラムで授業を受ける。このような「仕組み」に対して挑戦しようと思えることが、優秀なプログラマになりやすい資質だったりする。

「学校のルールに大人しく従えること」と「プログラミングを身につけること」は、それぞれ向いている性質がぶつかり合ってしまう。

 

学校教育が不要というわけではもちろんない

念のため言っておくが、学校教育なんて不要で、プログラミングさえやればいい、みたいなことを主張したいわけではない。学校の勉強は大事だ。

ただ、「学校教育」と「プログラミング」の相性の悪さがあることを指摘したかった。

相性が悪いとは言え、学校教育が得意だった人はプログラミングを身に着けにくいのかと言うと、むしろ逆だ。

学校で高い成果を出すために身に着けた理解力や忍耐力などの能力は、プログラミングにも確実に役立つ。ただ、二つはそれぞれ性質が違うので、「学校教育の延長でプログラミングをやろうとすると効率が悪い」というだけの話だ。

プログラミングをするためには、「プログラミングのやり方」に馴染まなければならない。

この記事が参考になって、よりプログラミングのことを知りたいという方は、以下の記事もぜひ読んでいってほしい。

プログラマーを目指す未経験者向け、プログラミングの初歩的なQ&A

2018.06.25

独学で稼げるプログラマーになるための具体的な勉強法【プログラミング入門】

2018.07.08

初心者がプログラミングを学ぶためのおすすめ入門書

2018.06.26
スポンサーリンク

コメントを残す