数学とは何か?

10. プログラマーに向いている人。向いていない人。

数学を長く勉強している人はプログラマーに向いていると
ある程度言えるだろう。
しかし中には数学を専門に学習している学生でも
面接の結果プログラマーには不向きと判断せざるを得ない者もいた。
それではどのような人がプログラマーに向いているのだろうか?
ここでは人事採用に当たって果たして応募してきた人が
プログラマーとして適切かどうかを判断するための
材料として参考にして頂きたい。

数学を学習していると単に論理思考、いわゆるロジカル・シンキングが
できるという理由からだけではない。
数学を学習するタイプには大きく分けて

①計算バカ
 計算問題を解くことばかりに努力するタイプ

②証明バカ
 証明問題ばかりに集中しているタイプ。
必要なのはこのタイプである。

■論理的思考ができる人

  論理思考は当然のことなのであるが論理思考ができない人に
論理思考のトレーニングを受けても残念ながら全く効果はない。
論理思考が多少でもベースにないと論理思考自体を理解できない
人はやはりいる。
このようなエラーが出る原因は何ですか? と尋ねるタイプの人で
原因と結果は1対1としか理解できていない。
またある処理をするとエラーになったのですが原因は何ですか?
と尋ねてくる人も同様である。
  自分のやったことは言わないで答えだけを聞きに来る人である。
何をやったのですかと尋ねると何をやったらこうなりますかと
聞き返してくる始末。
このようなタイプの人に理論をいくら説明しても理解できない。
残念ながら理論的な思考がベースにないので
いくら理由を説明してもなるほどとうなずくことはできない。

  理由を聞いて納得できるだけの論理性の理解力があれば
それで十分である。
さらにプログラマーとして向上していくには論理を組み立てて
考えを積み重ねていくタイプの人であることが望ましい。
簡単に原因をだけ想像で言う人はプログラマーには向かない。

■一般化して考える人

場合分けをするよりはひとつの公式で説明できないかと
単純な公式を見出そうとして考える人はプログラマー向きである。
特殊なケースにだけを考えるのではなく多くの場合も想定して
より一般的な例外的なケースも想定して物事を一般化して
考えることが重要である。
物理学でも現在、相対性理論と量子力学を統一する理論が
求められている。
  一般化したロジックを指向することはできるだけ
シンプルなアルゴリズムを作ることになりよりバグの少ない
安定したシステムを作成することに繋がるからである。
またより多くのケースも想定することができる視野の広い人は
本当に頭のよい人である。
  視野の城さがいろいろなケースを一般化することに繋がっていく。

■表現力に優れている人

  物事、特に定義を明確にズバリ表現できる人は事象を真に理解している人である。
○○とは何か? と問われてすぐに定義を正しく表現できる人は
数学の学習過程において訓練されている人である。
定義を明確に説明できてこそ正しく理解できていると言える。
あいまいな表現しかできないのではイメージだけを捉えていて
正しく理解しているとは言えない。
コミュニケーション力とは単に喋ることではない。
正しい定義を無駄なく正確に述べることができることこそが
コミュニケーション力なのである。

  また適切な表現力のない人ほど難しい用語を使って表現したがる傾向にある。
何もそんなに難しく抽象的な表現をしなくてもと思うのだが
その人は自分が訊いている日本語が自分にとっては難しい話ばかりなので
難しい単語を並べて煙に巻けば評価されるとでも思っているのだろうが
逆効果で意味不明な表現になって自分の評価を下げるだけである。

典型的な表現は応募動機や自己アピールを注意して読むと良い。
意味不明な難しい用語をくっつけて理解できない日本語になっているような人は
逆に日本語を聞いても理解する力に欠ける人が多い。
自己アピールなどは何を書いているかよりその人の表現力に注意したい。
難しい用語や段落もない意味不明な羅列では双方向のコミュニケーション能力が
ないものと判断してよいだろう。

■読解力に優れている人

コミュニケーション力で最も難しいのが聞く力と読む力、つまり受け身の理解である。
マニュアルなどの仕様を読んで理解できる能力が必要である。
仕事の指示書を読んでも読み飛ばしたり誤解するようでは
プログラミングだけでなくITの仕事には向いていない。
実際、ITに不向きな人も多くIT業界には従事しているがIT業界に向いていると
いう証明にはならない。
仕事が有り余る経済状況のときは仕様を理解できない人にも仕事はあるが
コロナのような厳しい時代になると適切な能力のない人は仕事に
あぶれることになる。

■記憶力に優れている人

コンピュータや数学に記憶力が必要かと思われるかもしれないが
実はやはり記憶力は必要である。
特に瞬間的にしばらくのあいだは覚えている能力は必要で
プログラミングをやっていると特にその必要性は実感する。
数字や場所や用語など瞬間的に覚えておかなければならないことが
  プログラミングをしていると頻繁に発生する。
やはり記憶力に優れた人でないとこの仕事は勤まらない。
ところがIT業界に参入してきた人の中にもやはり今聞いて
今忘れてしまう人も多く実在する。
  聞いても聞いても覚えられない人はいる。
  しかしいずれそのような人は業界から淘汰されてしまう運命にある。
瞬間的な記憶力のない人はIT業界では業務を遂行する能力が
ないと判断されても仕方がない。
  弊社では採用試験に瞬間的な記憶力のテストを行うようにしている。

■コミュニケーション能力のある人

多くの企業が求めている人間は「コミュニケーション能力」にある人である。
ところが多くの人は自分は人と話をするのは苦手ではないから
コミュニケーション能力があると思っているがこれは間違いである。
コミュニケーション能力とは話す力ではなく聞く力である。
それも正確に誤解なく聞く力である。
コミュニケーション能力に劣る人は仕事を指示を受けてもなかなか
正しく理解できないどころか内容も忘れてしまう。
指示の内容もよく理解できずに他に解釈して全く指示とは
異なる作業をやってしまう。
自分の作業が指示の内容とはちがうと指摘されても確認もせずに
また間違った作業を行ってしまいしまいには休日出勤しても
誤りは直らない。
つまり指示の内容を正しく把握していれば済む話のことであるが
話の内容が理解できない。
 このようなタイプの人は指示の内容を理解するのは8割以上に
時間を使ってしまうので総合的に見れば非常に仕事の遅い人と
評価されてしまう。
 また会話をしている中で突然話題にないことを
 「このことですか?!」と言い出す人もこのタイプで
今、何について話しているのか話題についていけないのだ。
 それで絶えず相手の話は何なのか想像するしかなくて
突然話題にないことを話し始める。
 日本語がわからないのである。
日本語を言葉として聞いているのではなくイメージとして
なんとなくこんなことを言っているのではないかといつも
想像しているだけの人である。
日本語のわからない日本人なんていないと思われるかも
知れないが仕事になると約6~7割の人が日本語の正しい理解が
できていないように見える。
このタイプの人が大変多くて企業も困り果てて募集のときは
「コミュニケーション能力のある人」と唄っているのはそのせいである。
日本語を話せるからといってコミュニケーション能力があるといえないのだ。

 …さていかがであったろうか?
   採用のときには上記のことを参考にして慎重に見極めることをお勧めする次第である。