優れたプログラマーの7つの資質

Justin James (TechRepublic) 翻訳校正: 石橋啓一郎 2013年05月22日 07時30分

  • このエントリーをはてなブックマークに追加

 優秀なプログラマーであるためには、自分の持つスキル、経験、知識から、動くコードを生産するための資質を持っている必要がある。技術的なスキルは持っていても、必要な資質を持っていないために優秀なプログラマーになれない人もいる。この記事では、偉大なプログラマーになるために必要な7つの資質を紹介する。

1.自発的に新しい技術的・非技術的スキルを習得する

 だめなプログラマーは、どうしても必要になった時にしか学ぼうとしない。よいプログラマーは、積極的に新しい技術的スキルを習得する。偉大なプログラマーは自ら新しい技術的なスキルを学ぶだけでなく、技術以外のスキルも学び、ほかの人なら考えもしないような情報源に対してもオープンな態度で接する。

 具体的に例を挙げれば、駄目なプログラマーはWPFを使うプロジェクトを始めることになって、初めてXAMLを学び、よいプログラマーは面白そうだからという理由で1年前にそれを習得している。そして偉大なプログラマーは、WPFアプリケーションの設計ガイドライン、ユーザビリティの理論、優れたUIを作るために必要なほかの知識まで学んでいる。

2.教条主義的ではなく実際的

 ほとんどのプログラマーには、明文化されていない「プログラミングのルール」に厳密に従うなどという贅沢は許されていない。仕様書がトップクラスの開発者によって書かれたか、そういう人たちに影響を受けた人が書いたものでない限り、そういうことは難しい。

 私はよく、やりかたが一般に受け入れられているベストプラクティスにあてはまらないことを理由に、仕事ができない、あるいは仕事を拒むプログラマーを目にする。実装する際の技術的な理由で、ビジネス上の要件が縛られることはまれだ。「プログラマーの書くコードがよくないものになるので、その仕様を含めるのはやめよう」などと言う人はいない。

 結局のところ、プログラマーの仕事は技術的な完璧さを追い求めることではなく、実際に動くアプリケーションを作ることなのだ。私は、腐ったコードを書けと主張しているわけではない。他の人に、よい仕事の例としては見せられないようなコードを書かなければならないこともある、と言っているだけだ。ほかに書きようがない場合には、それは悪いコードではない。ただし、ほかの可能性はなかったと言えるようにすべきだ。

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

  • このエントリーをはてなブックマークに追加

この記事を読んだ方に

関連ホワイトペーパー

SpecialPR

連載

CIO
ハードから読み解くITトレンド放談
大木豊成「仕事で使うアップルのトリセツ」
研究現場から見たAI
ITは「ひみつ道具」の夢を見る
内製化とユーザー体験の関係
米ZDNet編集長Larryの独り言
今週の明言
「プロジェクトマネジメント」の解き方
田中克己「2020年のIT企業」
松岡功「一言もの申す」
林 雅之「デジタル未来からの手紙」
谷川耕一「エンプラITならこれは知っとけ」
Fintechの正体
内山悟志「IT部門はどこに向かうのか」
情報通信技術の新しい使い方
三国大洋のスクラップブック
大河原克行のエンプラ徒然
コミュニケーション
情報系システム最適化
モバイル
通信のゆくえを追う
セキュリティ
企業セキュリティの歩き方
サイバーセキュリティ未来考
セキュリティの論点
ネットワークセキュリティ
スペシャル
Gartner Symposium
企業決算
ソフトウェア開発パラダイムの進化
座談会@ZDNet
Dr.津田のクラウドトップガン対談
CSIRT座談会--バンダイナムコや大成建設、DeNAに聞く
創造的破壊を--次世代SIer座談会
「SD-WAN」の現在
展望2017
IBM World of Watson
de:code
Sapphire Now
VMworld
Microsoft WPC
HPE Discover
Oracle OpenWorld
Dell EMC World
AWS re:Invent
AWS Summit
PTC LiveWorx
古賀政純「Dockerがもたらすビジネス変革」
さとうなおきの「週刊Azureなう」
誰もが開発者になる時代 ~業務システム開発の現場を行く~
中国ビジネス四方山話
より賢く活用するためのOSS最新動向
「Windows 10」法人導入の手引き
Windows Server 2003サポート終了へ秒読み
米株式動向
実践ビッグデータ
日本株展望
ベトナムでビジネス
アジアのIT
10の事情
エンタープライズトレンド
クラウドと仮想化