プログラマyasuhoの隠れ家

某ソフトウェア企業に勤務するおじさんプログラマyasuhoです

プログラマに向いてる人って、どんな人?


プログラマに向いている人とは、やはりその人がプログラミングというものに興味を持っているかということではないでしょうか。プログラミングをしていて楽しいと感じたら、きっとその人はプログラマに向いてるんだろうな、って思います。

プログラマに向いている人


特にプログラマだけというわけではありませんが、プログラマに向いている人というのがいるようです。もちろん、必ずしもこれが正しいとか限りませんし、そうでないタイプの人も大勢います。でも、あえて特徴をあげることで何かが見えてくるかもしれません。


なお、一般的にプログラマというと職業を示しますが、ここでは「プログラミングをする人」ということで話を進めることとします。

プログラマに多い特徴


まずはプログラマに多い特徴をあげてみました。

面倒くさがりである


これは決して悪い意味で言っているのではなく、冗長な作業を効率化したいと考えるかどうかという意味です。


プログラミングをしていると、同じような処理が多く出てきます。そのままにしておいても動作していれば問題はないのですが、将来プログラムを変更する時、修正が複数に及ぶ場合は間違いを起こしやすいものです。修正が一カ所で済むように設計されているのが理想です。


何でも一カ所にすればいいというものではなく、機能的にまとまっているということが重要です。同じような処理でも、機能的に違うものであれば別々にした方がよい場合もあります。このへんはプログラミングを多く経験して学んでいくしかないようです。

手を抜くことを考える


ちょっと言い方が悪いですが、これは何かを実現する時とにかく最短で実現する方法を考える人、という意味です。


プログラムで何かの機能を実現する方法はいくつもあります。どのように実現するのがよいかはプログラマの好みですが、多くのプログラマは出来るだけ早く機能を実装することを心掛けています。


プログラムは作っている間はもちろん、使われている間はどんどん変更されていきます。仕様書通りに作っても、使ってみたら「こうした方がよかった」となることも多いです。より洗練されたプログラムとなるためには、素早く機能を実装し、フィードバックをどんどん反映して、出来るだけ多くの評価期間を作る必要があるのです。

慎重である


「手を抜く」と相反しているようですが、特定の場面では慎重になります。


プログラマは一行のプログラムコードを書く場合においても、無意識のうちに多くの観点でチェックをしています。不正な値だった場合の後処理、効率はどうか、APIの使い方は正しいか、などなど、想定されるエラーをあらかじめ考えながら書いています。ここでどれだけ気を使えるかが、その後のバグの数に大きな影響を与えるのです。


いくら実装が早くても、あまりに単純なバグが多くてはテストの時間が増えるばかりです。素早く慎重にという、一見矛盾した作業をすることが要求されます。

集中している時はまわりが気にならない


特にプログラムコードを書く時には、まわりが何を言っていても分からないぐらい集中している人が多いようです。


前述のように、プログラマは機能を素早く実装しつつ、いろいろなエラーに気を使いながらコードを書いていきます。なかなか大変ではありますが、プログラマにはこの適度な緊張感がとても心地よく感じられて、まわりのことが気にならなくなります。一種の陶酔状態でしょうか(笑)

視野が広い


ここでいう視野とはコンピュータ全般に関することに興味がある、という意味で。一般常識とか、そういうのは置いといて(笑)


一般的にソフトウェアはOSやライブラリなど、非常に多くのシステムから構成されています。加えて、この世界はご存じのように成長や変革がめざましく、新しい技術がどんどん導入されています。


そういう中でよいソフトウェアを作るためには、新しい技術やまだ知らない技術に興味を持ち、学習していくことだと思います。全てを知る必要はありませんが、広い知識は問題解決や適切なシステム導入に必ず役立ちます。

疑りぶかい


あまりいい言葉ではありませんが、問題が発生した時、いろいろな可能性を疑ってみることはプログラマに必要なことではないかと思います。


自分が作った部分だけでソフトウェアが完成することは少ないです。たいてい自分がソースを見ることも出来ないような部分も相手にしなくてはなりません。そんな状況で問題を見つけるには経験とカンも大切ではありますが、いろいろな可能性を疑ってみる習慣が大切です。


プログラムに完璧はありませんから、期待した結果が得られない場合はあらゆる可能性を考える必要があります。どこに矛盾点が存在するかを想像し、事実を検証して見る。違ったら、また別の場所を疑ってみる。パズルが好きな人は、きっとプログラミングも好きじゃないでしょうか。:)

好きこそ物の上手慣れ


これら特徴を全て最初から持っているという人は少ないでしょう。仮に全て持っていたとしても、プログラミングが好きとは限らないし。あくまでも、こんな人が多いかなあ、という程度ですね。そもそもこのような特徴は、後から備わる場合が多いような気がしますし。


そう考えると、プログラマに向いている人を特徴から探すことは難しそうです。では、プログラマに向いている人はどのような人なのでしょうか!?


私が考えるに、それはやはりその人がプログラミングというものに興味を持っているかということではないでしょうか。興味のあることは誰かに言われるまでもなくプログラミングや関連技術に興味を持つことが出来るでしょう。めげてしまいそうなことでも、好きなことだったら乗り越えられるはずです。好きなことなら、誰よりも得意になれるでしょう。


プログラミングをしていて楽しいと感じたら、きっとその人はプログラマに向いてるんだろうな、って思います。
もしも興味がおありでしたら、プログラミングをしてみませんか!?