プログラマー採用は、経験者?未経験者?
今日、社内で議論していた際に話題になったことなのですが、「もともとできる人しか採用しないのか?あるいは、できない人でも採用して教育するのか?」という話がありました。
とても難しい問題なのですが、ソフトウエア技術者ということで考えると、私は基本的に「もともとできる人を採用したい」と考えています。その理由を書いてみましょう。
私が社会人になった20年くらい前であれば、ほんの少しコンピューターを使えるだけでも、社会人としては珍しかったくらいなので、プログラミングの経験がほとんどない人を採用して教育しても、少しできるようになるだけで仕事があったものです。
ところが、今ではコンピューターを使えるのは当たり前な時代であり、プログラマーの仕事をしていない人でもプログラミングができる人はかなりいます。つまり、お客さんのレベルが断然高くなっているのです。プログラミングの経験がない人を採用して、お客さんときちんとITの技術的な会話ができるようになるまでにどのくらい時間がかかるのか、考えただけでも気が遠くなりそうです。さらに昔に比べてITの範囲が非常に広がっているため、より幅広い知識が必要になってきています。
さらに、これだけコンピューターが身近になっているのに、プログラミングに興味も持たなかった人(なので未経験者)が、入社してからはたして興味を持つのだろうか?という疑問もあります。昔はそもそもコンピューターに接する機会が少ない世の中でしたので、仕事として始めて触れて、実は面白いと興味を持つ人も多かった可能性はありますが、今はそんなことは希でしょう。
プログラミングスキルの習得は勉強と似ていて、教わっても身につきにくいと感じています。自ら興味を持って取り組んでいく人でないと伸びないのです。昔と違ってコンピューターは安価になりましたし、オープンソースも豊富になり、情報もたくさんあります。興味を持つ人なら、既に学生時代からやっているはずだと思います。
そんな理由で、最近は「もともとできる人を採用する」という考えなのです。
一方で、「もともとできる人は良くも悪くも頑固」という面もあります。好きでこだわってやっているので、自分なりの考えがしっかりある人が多いのです。ところが、仕事としてのプログラミングは自分の主義主張が通らないことも多々ありますので、そのような仕事ではモチベーションが下がってしまう人も多い感じです。かえって「仕事だから」と割り切ってやる人の方が好き嫌いなく仕事をこなしてくれることもあるかもしれません。
結局、「もともとできる人」「採用してから教育した人」どちらが良いのかは、正解はないのかもしれません。どんな仕事をして欲しいかによる、という感じでしょう。いずれにしても、やってみて全く興味が持てない人はまず無理というのはどの仕事でも同じかもしれません。また、技術だけでなく人間性もとても重要、という点も、他の仕事と同じでしょう。