未来そうぞう日記

知的障害を持った息子と巡る日曜の東京、神奈川周辺の散歩、未来予想(妄想?)、そして気になる話題を報告します。

プログラマーの資質とは?

最近、自分がIT関連の仕事に就いていて、そちら方面に関心があるというバイアスもあるが、Twitterプログラマー、エンジニアになりたいというツイートをよく見かけます。そして、そんな人たちへのアドバイスで、どんな人がプログラマーに向いているかというネタに対するコメントが盛り上がったりするので、深い浅いの差はあるが今まで100人以上のと一緒に仕事をした見地を元に改めて、プログラマーにはどんな人が向いているのかを考えてみました。

1.国語(現代文)ができること

基本、図形もあるけどプログラマーの指示は文章。そして不具合報告書も文章。とにかく文章を正確に呼んで、要求や状況を適切に把握することが第一歩です。テニヲハの「~は」と「~が」、「~で」と「~にて」くらいは間違えてもいいが、原因と結果が、事実と推定が反対になったり、ゴチャゴチャになったりせず、適切に読み取れる、適切に表現できるというのが大事ですね。また、主語が何なのか意識して読めることも重要。なお、現代文の文法をちゃんと理解している人は言語ごとに異なるプログラムコードの記述方法の「癖」を身に付けるのが早いですね。

だから、文系の人もプログラマーになることを諦めなくても良いと思います。確かにAIや経済解析など数式との戦いが必須の分野は難しいけど、WEB系や一般ユーザ向けのアプリの分野ならばそれほど問題ないですね。

2.パズルを解くのが好きなこと

パズル、詰め将棋、ソリティアなどのカードゲームなど飽きずにやれる人はプログラマーに向ていると思いますよ。あるルールの中で解けるまで延々と作業を繰り返すのは、正にプログラミングのデバッグ

パズルを解くことは一部の懸賞金のかかるものを除けば何の得もない作業で、解けたときに感じるあの爽快感のためだけに頭を酷使するのですが、それが苦にならない、むしろ好きだという人はプログラマーとして最高の才能です。

なお、仕事のプログラムはちゃんと給料になります。これは大きい。

3.いつか終わると信じることができること

工場での製造、調理、農業などには工程があり、結果の良しあしはあるけど、やることをやれば仕事は完了します。しかし、プログラミングは要求通りの仕様で動くようになるまで終わりません。同じ難度のプログラムでも簡単にバグが見つかって数日で終わることもあれば、バグがなかなか再現せず1か月かかることもよくある話です。それでも、プログラムにミスがないかを1日かかるような分量でも1から最後まで読む作業を何度も繰り返したり、可能性のあるケースを愚直に順番に試してコードのミスをあぶりだす作業を途中で諦めず継続できるのは、いつか終わると信じているからと言われています。

もちろん、システムの制約上、どんなにがんばって修正しても正常に動かない、つまりいつまでも経っても終わらないケースもあるので、プログラマーを束ねるリーダーとしてはそのあたりの見極めができることも重要ですが、プログラマー自身は先ず退屈な作業でもモチベーションを下げずに継続できることが重要で、それに必要な素養として「いつか終わると信じることができる」というのは大きなウェイトを占めてますね。

 

ということで、プログラマーを目指す人は参考にしてみてください。

 

(Picture By Pixabay