見出し画像

魔法の才能とプログラミングの才能

魔法が世間で一般的とされる世界観の空想作品では、魔法の才能がない故に苦労する人々が出てくるのは割と王道のネタではなかろうか。
有名所では、ハリーポッターにおける初期のネビルのようなキャラだ。

私は、この創作物によく出てくる「魔法の才能」という要素と、「プログラミングの才能」という要素は非常によく似ているように思う。


私が「コンピュータはすごい」と思った一番最初のきっかけは、世紀末迫りし1998年頃。
父がコンピュータと、外付けのCD-R書き込み装置を買ってきたことだ。

この書き込み装置とパソコンを組み合わせれば、自分自身でコンピュータにCDから音楽を取り込み、また好きな組み合わせでCDを焼く、つまりオリジナルのCDを作ることができた。
インターネットから音楽が聴き放題の今の時代に比べれば何ともちっぽけな話に聞こえるかもしれない。
けれど当時CDを作るといえば普通は工場で生産するものなのだから、それが自宅で出来るという光景に私は大変な衝撃を受けたのだ。
コンピュータはこのCD書き込み機のようなハードウェアと、音楽管理ソフトのようなソフトウェアが揃えば何でもできる魔法の箱なのだと。


コンピュータが魔法の箱なら、その能力を引き出すソフトウェアを作り出すプログラミングという行為は魔法そのもので、プログラミングをするための才能はさしずめ魔法の才能と言えるのではなかろうか。


このプログラミングというスキルは、世間一般からはよくわかない、難しそうというイメージが先行している。
実際、よほどの天才でなければ、最初は皆プログラミングを始めて最初に出食わす謎のエラーの解決方法が分からなくて四苦八苦する。
今を華々しく活躍しているエンジニアだって、最初はプログラミングスキルの習得に苦労した人も少なくない。
魔法の習得にはそれなりの修行が必要、ということだろう。
私も最初はプログラミングのアルゴリズムという概念がサッパリ理解できなかったか、半年くらい根気よく勉強を続けて唐突に理解できるようになった瞬間があった。


プログラミングという名の魔法の習得には、文系だから、もう年だからと言って尻込みして、そもそもチャレンジ自体をしない人が多いと聞く。
けれど私の経験上、この才能は年齢性別専攻問わずに誰もが持っている可能性があると思っているし、世間が考えるほどこの魔法が使える人間というのはごく一部などではないとも思う。

社会人経験はさほど長くないものの、私が出会ってきた中で一番優秀だと思うエンジニアは教育学部の出身だったし、他にも文系出身だろうが高卒だろうがプログラミングが優秀な人たちはたくさんいる。


ただし、これは巷のプログラミングスクールなどが宣伝するような「プログラミングは簡単、学び方さえ工夫すれば誰でも出来る」という論調に賛同するものではない
当たり前の話だが、人には得意不得意がそれぞれある。
その特性によっては、残念ながらプログラミングを(職務として耐えうるレベルで)上達するのは難しいだろう、と思う場面も見てきた。


恐ろしいのは、プログラミングに向いているかどうかは、今までの学校教育で測られてきた科目の成績や偏差値などと全く相関関係がないことである。
故に、そこそこ学校での成績が良かった人間が「教えてもらえればなんとかなる」と軽く考えてこの世界にやってきて、実はなんとかならないんだという現実に打ちのめされて何人も去っていく光景を見てきた。


物語の中における無才能系のキャラは「実は誰よりも大きな才能が秘められていたのだ」というパターンに繋がるのが定石だけれど、現実はそうそう都合良く転びはしない。

真面目に勉強に取り組む後輩より、遊び人でそこまで勉強に熱心じゃない後輩のほうが、いざプログラミングに手を出してみると非常に要領良くスキルを身に着けていって、両者の間に大きな差が生まれている場面も目にした。


これは見方によっては非常に残酷なことであるように思う。
どう考えても、本人の努力量以前に「元々の素質」が大きく相関しているように見えるのだから。
だから、まるで魔法が当たり前の世界で魔法の才能がなくて苦労するという、創作物でよくあるシチュエーションが、プログラミングの世界でも同じようなことが起きているように思えてならない。


なぜこんなにもプログラミングが出来る出来ないの差が出るのだろうか?


これに関しては教え方が悪いのだとか、本人のやる気次第なのだとか、色んな意見がある。
私としても、プログラミングに挫折した人が皆才能がなかったわけではなく、そういう環境の不運や意欲の問題であったパターンもあることは否定しない。

けれども、それでは説明が付かない、純粋に本人の得意不得意分野が悲しいまでにプログラミングと相性が悪かった、そういうパターンもあると思う。


人間の「能力」と言っても様々なものがある。


・文字を処理する力
・聞いたことを理解する力
・視覚からの情報を理解する力
・数列を処理する力
・論理的推論を行う力

ここに挙げたもの以外にもほんとうにいろいろ存在している。
そういう能力のうち、一部だけ著しく能力が低かったりすると【発達障害】だと診断されたりすることがある。
けれど別にそこまで極端なレベルの差がなくても、個々個人が無自覚なだけで、誰しもある程度は得意不得意な能力が分かれているものだ。


ちなみに私は物心ついた頃からこんな症状があった。

・タングラムのような図形パズルが全く解けない
・まともな絵が描けない
・白黒の漫画を読んでも、何が書かれているか理解するのに時間がかかる
・数学の図形や空間を扱う問題がほとんど解けない
(単純な数式問題はサクサク解ける)
・図鑑など、本は熱心に読むので全体的な学校の成績は悪くない


大学院生の頃になってようやく、私は文字列を処理する力に比べて視覚の、特に図形的な情報を処理する力が著しく弱いという発達障害の傾向が見られると診断された。
言い換えれば、私はデザイナーや絵師になる才能は皆無だと、そう有難くないお墨付きを医者から頂いてしまったのである。


ただ、その経験があるからこそ、「不得意なことを克服するのは難しい場合もある」ということを身に沁みて知っている。
なぜなら、診断がつく前までは、私の不得意な能力は世間的には出来て当たり前のことだ、克服せねばと思い込んで相当に努力して努力して、しかしその差を埋めることはできず(他の要因もあったが)大学時代に鬱にまで追い込まれたのだから。

自分に出来ないことは出来なくていい、自分に出来ることで世の中を渡っていけばいい。
そんな当たり前過ぎるような結論に腹落ちするまではそれなりの時間がかかった。


世の中の言論を眺めていると、「人によって得意不得意の能力がある」という至極当たり前のことが、理解されているようで実はあんまり理解されていない。
誰しもが自分と同じように文章を読めることだとか、聞いたことを認識する力だとか、図形から情報を読み取る力だとか、そういう能力はあまりにも日常生活において基本的過ぎるが故なのか、「自分と同じくらいのことが世間でできて当たり前」みたいに思われているように見える。
かつての私自身、発達障害の診断をきっかけに人間の知能に関する諸々の知識を得るまでは、世の中の人間も自分と同じような速度で文字列が処理できて当たり前だと思っていた。

だが実際には、その各個人が思っている「誰しもが出来て当たり前のこと」には想像以上の差があって、そしてそれはちょっとやそっとの訓練でどうにかなるものではない。
それでなんとかなるなら、この能力差で苦労している世の中の発達障害と言われるような人々はこんなに生き辛さを解消できぬままに過ごしちゃいない。


上で一例を挙げた人間が持つ様々な能力のうち幾つかについては、もし不得意だとしたらプログラミングを仕事にするのは相当に難しいと思われる。

たとえば、文字列を処理する能力
世の中には、普通の文章であっても、「読む」ことはできてもその意味を「理解」する能力が強くないタイプの人がいる。私の特性とは逆パターンだ。
そういう人は表向きには、国語の成績が良くないとか、あまり本やネットの記事を読みたがらない、動画サイトばかり見ているとか、そんな感じに受け取られがちだ。

このタイプの人は、しかし全く文字の意味が理解できないわけではない。
(そこまで不得手な場合もあり得るが、その場合は明確に学校現場で症状が発覚して支援教育を受けることになるだろう)

ただ、仮に私が文字列の意味を理解するのに脳という名のCPUの使用率10%程度しか使わなくても早々に処理できるのだとしたら、このタイプはCPU使用率を100%くらいに貼りつけて処理して、それでもなお理解し咀嚼する速度が遅かったりする、とでも言うのだろうか。

ここで文字列の理解が苦手で本から情報収集することが苦手な人に対し、文字列の処理が得意で読書家な人間が、こういう特性の違いを無視して「本を読まない人間はバカだ」などと言ったりすると、まさに「自分が出来ていることが他人に出来て当たり前」という思い込みから来る誤謬だろうと思う。

人間の「できること」というものは、多くの人が思っている以上に差がある。

さて、今後ビジュアル的にプログラミングできる環境が普及したのならともかく、現状ではソースコードというのは文字の羅列で書くしかない。
そうなると、この日常的に使う日本語でも文字列を意味として処理する力が弱い人は、異次元の言語であるソースコードから意味を汲み取る作業というのは大変な苦行であると思う。
無理に発破をかければ何となく動くようなものを書かせることは出来るかもしれないが、そこに至るまでの精神的負担が重すぎて、プログラミングを上達するための訓練を続けるのは難しいのではないか、というのは想像に難くない。
世の中の「プログラミングに挫折した人」というのは、こういう本人の特性故にどうにもできないパターンも少なからずあるのではないかと思う。


繰り返すが、人には得意不得意がある。
何かが不得意で、それを克服することが難しいなら、それに固執するより得意なことを活かして伸ばしたほうがよほど人生を簡単に充実させられる。

世の中は物語のように、都合良く才能に目覚めて出来ないことが克服できるようになる場面ばかりじゃない。



そんな現実を無視して「これは誰でもできることだから、できないあなたに問題があるのだ」と楽観論を振りかざして、本人の特性的にプログラミングに向いてない人をこの業界に縛り付けることは、他ならぬ当人に対してあまりにも無責任すぎる言論だと、プログラミングとは別の場面で「適性の無さ」に苦しめられた経験がある人間としては思うわけである。


だから私はあえて、酷なことを言っているように聞こえるかもしれないが、プログラミングが習得できなかった人の中には、残念ながらその才能がなかったとしか言いようがない場合もあるのだと主張したいと思う。
でもそれはその人が努力不足だから悪いのだとか無能だからなのだとかなのでは一切なく、その人の得意不得意な能力が、プログラミングというスキルを習得するのに合致していなかった、本当にただそれだけのことなのだ。

最後まで読んで頂きありがとうございます! いただいたサポートは記事を書く際の資料となる書籍や、現地調査に使うお金に使わせて頂きますm(_ _)m