ビジネスでITを活用するために、本当に皆がコンピュータの原理原則を知っておく必要があるのだろうか?
今後、いままで以上にICTスキルやICTリテラシーが求められるようになることは自明なのに
「プログラミング教育」という名前に違和感があるのはなぜなのか?
ずっと疑問でしたが少し分かってきたような気がするので書いてみます。
私は学生時代に「情報学科」に在籍して4年間、コンピュータやネットワーク、プログラミングの原理原則を学びました。
そして、新卒で入社したSI会社でも、同じようなことを学びました。
そこで得た知識や経験は、システムエンジニアとして働くにはとても重要で、いま考えてもこれらの学びは避けて通れない必須条件だと思います。
そのあと、ITコンサルティングの会社へ転職して、システムエンジニア(SE)とは違う視点でシステム開発の現場に関わるようになってから
少しずつ、少しずつ、何かがズレていくような感覚がありました。
そしてあるとき、そのズレの理由が分かったんです。
ITコンサルタントには、ITを使いこなすスペシャリストであることと同時に、顧客のビジネスにも精通していることが求められます。
両方が分かるから、SEと顧客の橋渡しができる。
その価値は、技術やビジネスが複雑化するほど高くなります。
自分の軸足を、技術から少しずつビジネス側へ移したときに感じたのは
コンピュータの原理原則が分かっていても、顧客とは話が噛み合わない。
何か、根本的に足りないものがある、ということでした。
むしろ、コンピュータの原理原則なんて知らなくても良いのでは?
とすら思いました。
コンピュータの原理原則は、あくまでも技術者として、システムを作る専門家として捉えれば絶対に必要なものではあるけれど
そうでない多くの人にとっては、恐らく不要なのです。
それよりも、ビジネスの世界を抽象的に捉えて可視化できることや、ICTを使ってそのビジネスをどう実現するかを具体的に示せること、そういった能力の方が必要です。
そのことに皆、薄々気がついているにも関わらず、「プログラミング教育」が必要だという世界的な風潮に煽られ
全ての国民が身につけるべき必須技能である
と言われて、なんとなく、そうなのかも?
と不安を感じているのが現状ではないかと思います。
例えば、この記事にあるような、フィンランドやイギリス、アメリカなどプログラミング教育先進国の事例を読んでいると、そんな気になってきます。
さらに悪いことに、プログラミング教育によって論理的思考が育つとか、課題発見能力が上がるとか、あたかも知能レベルに良い影響があるかのように論ずる人たちもいて
経験したことのない人たちにとっては、そうした効果を期待してしまうが故に、異論を唱えることが難しい、といった問題もあります。
この話はまた別の機会に書きたいと思いますが、プログラミングができると論理的思考が育つ、というのは個人的にはありえないと思っていて
論理的思考ができるからプログラミングができる
の間違いだと思っています。
(プログラミング=論理的思考、なんて考えるから、おかしなプログラムを書く技術者がたくさん出てくる)
だから、小学生はプログラミングじゃなくて国語の勉強をした方が良いです。
それはさておき。
ビジネスに携わる多くの人にとってコンピュータの原理原則を知っておく必要がないとすれば(自身がプログラミングできる必要がないとすれば)、
各国はなぜこんなにも熱心にプログラミング教育をほどこそうとするのか?
それは、IT技術者を増やすことが目的なのではないか?
と私は考えています。
もしそうだとしたら、各国の事例を参考にして日本に適用しようとすることは
恐らく間違っています。
なぜなら、日本のようにコストのかかる国でIT技術者を大量生産することにメリットがないから。
それよりも、海外にいる優秀なIT技術者を日本にいながら活用できる能力を身につけた方が、よほど効率が良いと思います。
その際に必須となるのは、自分のビジネスをIT技術者が理解できるように伝えられる能力です。
ところが残念ながら、その能力を身につける機会が今の日本にはどこにもありません。
大企業であれば情報システム部門が活躍してくれるのかもしれませんが、個人事業主や中小企業になると、自分でなんとかするしかない。
ここで初めて、その能力を身につけていることに価値が出てくると考えています。
例えば、クラウドソーシングを使うと、海外のIT技術者に低コストで簡単なプロトタイプ(もちろん製品でも)を作ってもらうことができます。
ここで必要な能力は、正しく仕様を伝える能力です。
相手が外国人であれば、英語で正しく仕様を伝える能力です。
(もちろん、価格交渉などのスキルも別途必要ですが)
細かいことを言えば、どの技術を使うことが相応しいのかを事前に判断したり、成果物の妥当性を判断したり、といった能力も必要で
そのためにはある程度の技術知識が求められますが、それは、そのときに勉強しても十分に間に合うものであり、コアな能力として持つべきものではありません。
小学生のうちからプログラミングを学ばせて、コンピュータの原理原則を頭に詰め込めば、今の私たちよりもずっと優秀なIT技術者が育つかもしれない。
でも、そんな彼ら彼女らは果たして、海外のIT技術者と互角に戦える能力を身につけることができるのでしょうか?
IT技術者を育てることがプログラミング教育の目的ではないのだとすれば、
一体何を目的に、プログラミングやコンピュータの原理原則を教えようとしているのでしょうか?
目指す方向性の根本が揺れている。
それが、日本のプログラミング教育を語る中での大きな問題点だと思います。