プログラマにとっての資質とはなんなのか、プログラマは理科系それとも文科系

フリープログラマへの道

Home > プログラマになるには > プログラマの資質

プログラマになるための資質とは、創造力と想像力

Sponsored Link

プログラマの資質

現在プログラマとして活躍している方には関係のない話ではありますが、 もしこれからプログラマを目指す方のために少しだけプログラマの資質について書いてみたいと思います。

プログラマって理科系?

プログラマというと、理科系それも数学系じゃなくては勤まらないように思われがちですが、 もちろん理科系の能力も必要です、でも意外と文科系の職業なのです。

プログラマ、特にフリーである場合、仕事はクライアントととの会話から始まり 仕様書作成、プログラム作成、クライアントとの刷り合わせ、・・・・

プログラム作成とは仕様書に書かれていることをはある決まったルール(プログラム言語)に 置き換えていく作業なのです。

その中で数学的な知識も必要な場合もあるのですが、殆どの時間は文章を書いていく作業ともいえるのです。  したがって理科系よりむしろ文科系出身の方のほうが向いているとも言えるのです。

プログラマに必要な資質

それは、想像力と創造力です。

まずは想像力、プログラミングすると言うことは、ただ単に文章を書いているということなのですが 実際にプログラムが実行されると、データ処理や表示または装置が動作するわけです。  処理時間、タイミング、ユーザーの関与、そしてなんらかの不具合の発生。 そのことを頭の中で想像できることが大切なことなんです。

特に制御系では、いくつもの割り込みやマルチスレッドを利用したプログラミングになりますので、装置の動作、人の関与を 頭の中でシミュレートすることが大切になってきます。

割り込み、マルチスレッドの全ての動作を紙面に書くことは不可能です、なので想像できるかできないかということが、 いいプログラムを作るれるかどうかに係わってくるのです。

また、デバッグの場面においても想像力は重要な力となります、 バグが発生したらすぐにデバッガーでバグを探す、ちょっとまってください。 まずは現れている現象を全て把握しこのような現象を引き起こすパターンを想像してみましょう、 そして思いついたら、デバッガーで確認、この方が効率的にバグを発見できると思いませんか。

オブジェクト指向でのオブジェクトの振る舞いも想像力に頼る部分が大きいのです。 ひとつのオブジェクトを一人の人として想像して、A君はB君にこのデータとこのデータを渡して処理をお願いする、 だからB君はこのデータについて知る必要はない、なんて想像しながらプログラミンします。

次は創造力。 ある処理をプログラミングする場合、方法はひとつということはありません、 無数のプログラミングの方法があります、

なので処理を考える時、瞬時になるべく、たくさんの方法を創造し、 そしてその中からベストなプログラミングを選択することが大切です。 思いも寄らないベストな方法を思いついたときの快感はプログラマの特権です。

プログラマは不器用な方がいい

随分と長くこの仕事の携わっていると、 いろいろなタイプのエンジニアに出会います。

特に新人の方達をみていると、大きく分けて2種類のタイプがあるようです。

ひとつは、器用な人、このタイプの人は直ぐに仕事の戦力になり、一見とても優秀な人と感じてしまいます。 もう1つのタイプは、器用の反対のタイプで不器用な人、何をするにも時間がかかってしまい 自分で納得しないと前へ進めず、周囲からみているともどかしくてしょうがありません。

例えば、「この本はためになるから読んでおいてね」っと言った場合、 前者の器用なタイプ人は、ざっと目を通し自分が興味を持った箇所、または直ぐに役に立ちそうな 項目を探し出し、さっと読んでしまいます。

さて、後者の不器用タイプの人はというと、本の冒頭に書かれている言語の歴史から読み始めます。 そして全てのページを納得しながら読破してしまいます。

この場合も一見、器用タイプの人のほうが要領よく、周囲からみていると優秀っと感じます。

さて2年後どうなっているでしょう。  前者の器用なタイプの人は会社を去っていて、後者の不器用な人が会社にとって重要な戦力になっていることが多々あるのです。

簡単に言ってしまうと、エンジニアにとって器用さ(手先という意味でなく)は欠点になってしまう事があるということです。

資質を見極める

これは非常に難しいことです。

上司が資質を見抜いて「君はプログラマとしての資質に欠けているから違う職業を探した方がいいよ」 なんて言ってくれることはまずありません。

なにせ、重要なのは想像力なのですから、他人の想像力なんて見極めることなんてできないのです。 だから、自分自身で見極めることが必要なのです、 私が思うにプロとしてプログラマと働いてから2年経った頃がひとつの目安だと思います、

好きであることも大切ですが、ある程度の資質も必要な職業だと思います。

Sponsored Link


Copyright (C) Breath.All right reserved