
優れたプログラマーになる方法について、最近再び注目が集まっています。以下は、私が最も必要だと思う特質です。
- 問題解決に優れている。
- 勤勉でありながら怠け者でもある。
- 他人のコードを理解できる。
- プログラミングに情熱を持っている。
- 学ぶために学ぶことを愛する。
- 数学が得意である。
- 優れたコミュニケーション能力を持っている。
- 強力なディベート能力を持っている。
- 極端に楽観的である。
- 極度に悲観的である。
1. 問題解決に優れている――皆さんにはこの点を認識してほしい。大多数の優れたプログラマーは、他の人には見つけられない解決策を見つけ出すことができる。
2. 勤勉でありながら怠け者でもある――この点は多くの人を驚かせる。プログラマーが疑問を提起するのが好きなのは、たいてい「無駄な回り道をするのが面倒だから」だ。その考えに駆られて、彼らはたゆまず問題を簡素化し、タスクを簡素化する。つまり、仕事をやり遂げたいと切望しているが、そのプロセスはできるだけ効率的にしたいのである。
3. 他人のコードを理解できる――この点は極めて重要である。多くの優れたプログラマーは、この一点のために「偉大」への昇進を阻まれている。あなたの書き直し能力がどうかは実際にはそれほど重要ではない。しかし、既存のプロジェクトで他の人と協力し、新しいプロジェクトを始めるときにオープンソースのコードを参考にし、既存のコードベースから優れた技術を学ぶ必要がある。そして、これらにはすべて他人のコードを理解する能力が必要なのである。
4. プログラミングに情熱を持っている――あなたはプログラミングを愛さなければならない。ほとんどの場合、情熱こそが偉大を成し遂げる原動力なのである。
5. 学ぶために学ぶことを愛する――学ぶことは逆流をこぐ舟のようなもので、進まなければ後退する。これは終わりのない営みである。
6. 数学が得意である――最低でも微積分をしっかりと理解している必要がある。ところで、最低限の代数と三角法を知らなければ、基本的に偉大なプログラマーにはなれない。
7. 優れたコミュニケーション能力を持っている――これは、彼らが自分の状況に応じて考えを明確に伝えることができるということを意味する。私は多くの偉大なプログラマーに出会ったことがある。彼らは他の問題について話すときはうまくコミュニケーションできないかもしれないが、自分の専門分野が関われば、淀みなく話し、問題を明確に説明し、解決策を提示することができる。
8. 強力なディベート能力――理由は第7点と同じ。
9. 極端に楽観的である――偉大なプログラマーは、少し考えただけで、すぐにこの仕事をやり遂げられると確信することができる。
10. 極度に悲観的である――偉大なプログラマーは、正しい判断をするために必要な情報が不足しているとき、この仕事は自分たちにはできないと頑なに主張する。
以下は補足です(すべての偉大なプログラマーに必須ではありません):
1. 非常に組織的である。
2. 他人やプログラミングプロジェクトの管理に優れている。
3. 優れた設計ドキュメントを書くことができる。
4. 時間を見積もることができる。
5. 技術書を幅広く読んでいる。
6. プログラミングスキルをプログラミングの他の分野に応用し、一つのことから多くを学ぶことができる。
7. 一発でコードを書くことができる。
8. 他の分野のスキルを持っている。
出典:http://www.codeceo.com/article/10-attributes-of-a-great-programmer.html