この記事を訪問してくださったのは、もしかしてプログラマーを志望していて、自分がそれに向いているかどうかが知りたいからではないでしょうか?
IT業界に20年以上在籍し、プログラマ、システムエンジニア、新人教育担当という経験の中から、プログラマに向き不向きがあるかについて解説したいと思います。
プログラマに向き、不向きはあるか?
結論から言うと、確実に向き不向きはあります。
私が今までの開発案件で関わったプログラマや、新人研修担当となってプログラミング授業を行った中での経験ですが、過去に何名かいました。
感覚的な話で恐縮ですが、数十名に1人くらいの割合で不向きな人はいました。
有名な国立大学を卒業している理系の中にも向いていない人はいましたし、逆に中卒、高卒であっても優秀なプログラマはたくさん存在します。
つまり、プログラマの向き不向きは学歴、文系、理系に関係なく存在します。
プログラマの向き不向きについては大きく分けて「能力」と「性格」があると思いますので、それぞれについて私の考えを述べさせていただきます。
能力による向き不向き
物事は何でもそうですが、人にはそれぞれ得意不得意があり、歌が上手人や絵が上手い人、体力がある人や話術に長けている人がいます。
プログラマという職業は論理的思考(ロジカルシンキング)の上で成り立っていますが、この論理的思考が得意な人とそうでない人が実際に存在します。
これはその人の個性というか持って生まれた物なので、残念ながらどうしようもありません。
これは、どんなに野球が好きで人一倍練習しても野球選手に成れないのと同じです。
ただ、努力をすればその能力は上がっていきますので、どこかで頭打ちになるとしても、仕事が熟せるくらいまで能力を上げることが出来れば、その後は何とかなります。
そこに到達するまでに頭打ちになるとそれ以上能力を伸ばすことは非常に困難になるので、若いうちに諦めた方が幸せになれると思います。
性格による向き不向き
プログラマは緻密な作業を黙々と続ける必要があるため、性格的に合わないとストレスで心が折れてしまうでしょう。
そこで、私が考える「プログラマに向いている性格」を4つご紹介したいと思います。
地道な作業が苦にならないこと
プログラミングの大半は人と会話することも無く、頭に浮かんだ処理手順をひたすら画面に向かって入力していく作業です。
また、その間は継続した集中が必要です。
このような地道な作業が苦にならない性格でないと、ストレスが溜まって心が病んでしまうでしょう。
めんどくさがり屋であること
一見、「地道な作業が苦にならない」と相反するような印象があるかもしれませんが、めんどくさがり屋とは「単純作業を繰り返し行うことがイヤだ」ということです。
例えば、AというEXCELファイルを開いて、BというEXCELへ転記するとか、特定のWebサイトから特定の情報をコピー&ペーストでテキストに張り付けるとか、単純な作業を繰り返し行うことが苦にならず延々に続けてしまう人はプログラマには向いていません。
プログラミングは「そこにある要望(又は課題)を解決(又は改善)する」というミッションを達成するためにあります。
「より楽になるように」、「り使いやすくなるように」という気持ちが「解決」や「改善」の原動力になるのですが、「めんとうくさがり屋」でないと、そもそもこの「原動力」が湧いてきません。
また、これはプログラミングの上達にも言えることで、同じような処理が何度も登場したとき、「その都度同じプログラムを書いてしまう」ことで満足してしまうのではなく、「その都度同じプログラムを書くのは面倒なので、使いまわしできるよう部品化しよう」という発想が必要ですが、これは「めんどくさがり屋」だから湧いてくる発想です。
モノづくりが好きであること
プログラミングがモノを作る仕事ですから、モノづくりが好きでないとつまらない仕事だと感じてしまうことでしょう。
特にプログラマは自分の作業効率を向上させる部品を作ることが出来ますので、そこに喜びを感じることができれば、仕事の効率とプログラミングスキルは各段に上昇します。
プログラミングが好きであること
モノづくりに通じるものですが、プログラミング自身が好きであれば、「地道な作業」が全く苦になりません。
新しい技術を自ら進んで習得することが楽しくなると思いますし、更なる高みを目指して努力することも苦にはなりません。
というか、もはや「努力」ではなく「趣味」の世界なのかもしれません。
もし、自分自身でプログラミングが好きかどうか分からない場合は、一度経験してみて下さい。
例えば、paizaラーニング というサイトでは無料で色々な言語が勉強できます。
画面から打ち込んで実行することが出来ますので、是非お試しください。
そして、それが「面白い」とか「楽しい」とか思えれば、きっとプログラミングが好きになると思います。
プログラマという職業のよくある誤解
ここからは、巷で流れているプログラマという職業についての誤解を解きたいと思います。
プログラマに英語は必須か
海外向けのシステムを開発するか、あるいはよほど最先端の技術を使わない限り、英語は不要です。
多くの場合は日本語で翻訳されていますし、翻訳ソフトも今はだいぶ精度が高くなっています。
サンプルプログラムが掲載されていることも多く、それを見れば一目瞭然なので、日常のプログラミングで英語を使うことはまず無いと思っていいでしょう。
とはいうものの、プログラミング言語は英語ではありますが、パターンが決まっているのでそれを覚えればOKです。
プログラマに数学は必須か
ほとんどの場合、数学は必要ありません。
建築や流体力学など物理計算が必要な場合や、人工知能(AI)関連の場合は難しい数式が登場することはあります。
ただ、それらは既に商品として部品化されているか、あるいはネットでサンプルプログラムが掲載されているケースが大半で、プログラマは部品の使い方、あるいはサンプルプログラムの利用方法さえ知って入れば、原理まで理解する必要はありません。
詳しくはこちらの記事にも記載していますので、興味のある方はご一読ください。
適性試験の成績は重要視されていない
プログラマ適正テストなるもので論理的思考を計測するケースはありますが、どの会社も参考程度でしかなく、それほど重要視していません。
プログラマ適正テストは様々な図形の並びから、そこに隠されているパターンを推測するような内容です。
確かにIQが高い人ほど正解率が上がったり回答時間が短くなるという傾向はあると思いますが、実際の業務で図形のパターンは登場しませんし、仕事に役立つわけでもありません。
それでいて結構難しい問題が多いので、たとえうまくできてなくっても気にしないようにして下さい。
あのテストは、極端に成績が低い人をあぶり出すことが目的です。
あんなもんでプログラマの適正が図れるはずがありません。
まとめ
私の長年の経験から言うと、プログラマに向き、不向きは確実に存在します。
ただ、本当に不向きな人は数十人に1人程度だと思います。
また、向き不向きには能力と性格の2つの側面があって、能力は「論理的思考(ロジカルシンキング)」があること、性格は「地道な作業が苦にならない」「めんどくさがり屋」「モノづくりが好き」「プログラムが好き」を備えていることです。
能力は努力である程度身に付くことができますが、性格については持って生まれたものなので、無理してプログラマを続けると心が折れてしまうかもしれません。
結局は、プログラミングが好きになれるかどうかが一番のポイントだと思いますので、もし不安があるかたは、その部分を自分自身に問いかけてみてはいかがでしょうか?
それでも分からない場合は、実際にプログラミングをやってみることです。
この記事が皆さんの役に立てば幸いです。