
優秀なプログラマーとは、一方通行を渡る時でさえ両方向を見る人のことだ。——Doug Linder
IT業界のソフトウェアプログラマーとして、毎日仕事に向かう原動力はプログラミングへの楽しさと情熱です。しかし、楽しさを引き出し、永続的な喜びを得るためには、優秀なプログラマーになるための基礎知識を学び、守る必要があります。
もちろん、私がまとめたこれらのことはそれほど特別ではありません。これを学べば必ず優秀なプログラマーになれると言うなら、それは不可能です。これは単に私の経験の観点から提供するいくつかの近道にすぎません。優秀なプログラマーの定義は、ここでは素晴らしいITソリューションを開発でき、業界全体の発展を促進できるプログラマーと理解できます。
1.基礎知識を身につける
どの業界でもどんな仕事でも、概念の理解は成功の鍵です。強固な概念の基盤がなければ、優秀なプログラマーになることはできません。中核となる概念の理解は、最適な方法でソリューションを設計し実装するのに役立ちます。今、中核となるコンピュータサイエンスやプログラミング言語の特定の概念を十分に習得していないと感じるなら、今から振り返ってこれらの基礎知識を学び直すのはまだ遅くありません。
2.自分が書いたすべてのコードセットにラベルを付ける(how、what)
プログラマーの優劣を分ける明らかな境界線は、「what and how」を知ろうとする情熱があるかどうかだと私は気づきました。自分のコードがどのように実行され、実行結果がどうなるかを正確に把握しているプログラマーもいます。時間が緊迫しているため、そのコードが仕事を完了できると分かっているだけで次のステップに進まざるを得ないこともあると理解しています。これは問題解決に関しては別の方向の話題かもしれませんが、プログラマーとして、問題を可能な限り深く研究して最高水準に達するように努めるべきです。信じてください、時間が経つにつれて、いつの間にかこの良い習慣が身につき、非常に大きな利益を得られます。
3.他人を助けることでより多くを学ぶ
おそらく私たちの大多数は、自分が助けを必要とする時だけフォーラムやグループに参加するでしょう。プログラマーが優秀かどうかを区別する境界線の一つは、優秀な人は頻繁にこれらの場所に足を運んで他人を助けることです。そして、彼らは他人を助けると同時に、自分自身も多くのことを学べます。チーム内であれば、お互いに助け合うべきです。信じてください、他人の問題の背景を理解し、研究し、解決策を提案することは、より多くを学び、より早く成長させてくれます。
4.コードはシンプルで、わかりやすく、論理的に書く
生活の他の側面と同様に、KISS(Keep it simple and short)の法則はプログラミングの分野にも当てはまります。コードは論理的であるべきで、過度に複雑になるのを避けるべきです。複雑なコードを書く能力を証明するためだけに、わざわざ複雑に書く人もいます。しかし、私の経験から言うと、シンプルで論理的なコードだけが効果的に動作し、問題も少なく、拡張も容易です。こんな言葉を覚えています。
良いコードはそれ自体が最良のドキュメントです。コメントを追加する前に、自分に問いかけてください。「このコメントを書かなくても済むように、コードをどう改善すればいいか?」——Steve McConnell
5.問題の分析に多くの時間を費やせば、後で修正にかける時間を減らせる
問題の理解と分析に多くの時間を費やし、最適な解決策を設計すれば、その後の作業が半分の労力で倍の効果を得られることに気づくでしょう。設計プロセスは必ずしもモデリング言語やツールを使う必要はなく、例えば空を見上げて頭の中でブレインストーミングをするだけでも構いません。問題を受け取るとすぐに習慣的にコードを書き始めるプログラマーは、最終的に提出する成果物が要求と異なることがよくあります。
シャワーを浴びているときに頭の中にプログラムの全体構造がまだ浮かんでいないなら、それはコードを書き始める準備がまだできていないことを意味する。——Richard Pattis
6.最初に自分のコードを分析・レビューする
少し難しいかもしれませんが、他の人が気づく前に自分で問題の所在を知ることで、「バグがほぼない」コードの書き方を学べます。自分のコードのレビューは公平かつ厳格に行い、他人のレビューもためらわずに受け入れるべきです。朱に交われば赤くなるように、優秀なプログラマーと一緒に仕事をし、彼らのフィードバックを積極的に聞くことは、必ず優秀なプログラマーになる助けとなります。
7.日々進化するテクノロジーに直面しても決して落胆しない
最近IT業界で、仕事に失望しているとこぼす人や、すでに辞職して新しい仕事を探している人など、多くの人に出会いましたが、彼らは一致して、最新のテクノロジーを学んで使いたいと言います。この願いは理解できると思いますが、「最新の」という言葉はあまり正しくないと感じます。毎日のように「また新しいツール、API、フレームワーク、その他の方法が出てきた」とプログラミング作業をより簡単にできると言う人の話を聞きます。これは技術分野では実際に常に起こっています。本当に注目して理解すべきなのは、中核ので基本的な技術の変遷であり、その基盤の上で新しいフレームワーク、ツール、APIを見るべきです。例えば、多くのJava企業では1週間ごとに新しいWebフレームワークに切り替えるかもしれませんが、クライアント-サーバー通信モデルに基づくリクエスト方式、MVCパターン、filters/servlets/JSP、リソースバインディング、XML解析などの中核的概念は依然として同じです。したがって、フレームワークやツールの変化を常に心配するよりも、これらの核となる概念を学ぶことに時間を費やすべきです。信じてください、これらの核となる概念を理解した上でこそ、新しいフレームワーク、ツール、APIをより早く習得できます。
8.緊急対策は長期的には有効ではない
多くの場合、ソフトウェアプログラマーは緊急措置や妥協的な解決策を取ることがあります(時間が緊迫している、問題に対する深い認識が不足している、技術的経験が不足しているなどの理由で)。しかし、これらの緊急措置はコードを損ない、後で拡張や保守が非常に難しくなります。こうした状況が避けられないこともあるのは理解できますが、私たちは皆正直であるべきです。嘘をついたら、嘘はいつか必ず暴かれる日が来ることを知っておくべきです。
9.ドキュメントを読む
優秀なプログラマーの基本的な習慣の一つは、技術仕様書、JSR、APIドキュメント、チュートリアルなど、大量のドキュメントを読むことです。ドキュメントを読むことは、最良の方法でプログラミングするために必要な基盤を築きます。
10.他人のコードから学ぶ
私はIDEでJavaソースコードを持つ優秀なプログラマーと交流し、彼らのコードを読んだり参考にしたりするのがとても好きです。そうすることで基本知識を理解できるだけでなく、プロジェクトを書く新しい方法も学べるからです。信頼できる既知のオープンソースや自分自身の高度なコードを読んだり参考にしたりすることも、より良いプログラミングに役立ちます。
最後のポイント、これまでに挙げていないもの:他人と比較しない
ことわざに「人と人を比べると、腹が立つ」とあるように、自分を他人と比較すると否定的な感情が生まれ、悪い競争に発展するだけです。誰にでも長所と短所があります。いわゆる非常に優秀なプログラマーでさえ、愚かな間違いを犯すのを何度も見てきました。したがって、自分自身を分析し、不足している点を挙げ、自分を改善する努力をすることが正しい道です。
プログラミングは本当の楽しさです。ぜひその喜びを味わってください。
「どんな愚か者でもコンピュータに理解できるコードは書ける。しかし、優秀なプログラマーが書くコードは、すべての人間が理解できる。」——Martin Fowler
翻訳リンク:http://www.codeceo.com/article/10-effective-way-good-programmer.html
翻訳者:码农网 – 小峰