プログラムを何も見ずにスラスラ書ける人?
たくさんの言語を操れる人?
いいえ違います。
これだと『プログラマ=記憶力の良い人』だ。
基礎を知っているのはもちろんのこと。
重要なのは
・文書記述能力
・優しさ
・想像力
だと思う。
何を作るにも、長く運用するものであれば必ず設計書が必要。
これは他人が見る事、将来の自分が見る事を考えて。
UMLが書ければベストだが、これにこだわらなくても良いかと思う。
また、議事録形式でも良いが、決定した事項と経由も必要。
○がベストだけど様々な事を考慮して△に決定した場合、
数年後、別の担当者が『○にすべきだ!なんで○で無いのか?』との見解を持ち込んだ場合、
同じ議論をすることにもなるからね。
優しさとは、上で書いた事にも通じるが、プログラム自体のユーザビリティを考慮するとか、
次世代の担当者が困らないようにプログラム内にコメントをたくさん残すとか、etc…
想像力は、色々な場面を考えられる事。
一つはエラートラップをしっかりする事。
どんな事があるか?待ち切れずにボタンを数回押してしまう人、数字入力欄に文字を打ってしまう人、セッション途中にウィンドウを閉じてしまう人もいる。
ロールバック、フールプルーフ、OSのエラー時対応、再処理。
あとは、将来性を考慮する事。
例えば今は消費税5%だが、変わるかもしれない。そのたびにプログラムを改造するのを避けるために、設定画面を用意するとか。
絶対の事はないので、ほとんど変わらないと思う事も変わる場合がある。
それをどこまで考慮できるか。
あとは、コミュニケーション能力。
他にも大事なことはたくさんあるが、実際にプログラマとして必要なのは『プログラム記述能力』以外のところにこそある。
プログラマだけじゃなく、社会人として必要な事だけどね。
そんな事を最近強く思う。
→参考
