メインコンテンツへスキップ
検索

単純に優秀なプログラマーと優秀なプログラマーを分けるものは何かを考えてきました。ここにいくつかの考えがあります。他に何か考えがあれば、この投稿にログインしてコメントしてください。

1.コーディングの段階ではなく

確かに、偉大なプログラマーは偉大なコーダーでもあります。しかし、それだけではありません。偉大なプログラマーは偉大なエンジニアでもあると思います。エンジニアは自分のツールを熟知しています。エンジニアは、複雑な問題を自分が解決できる断片に分解する方法を知っていて、その断片を組み立て直して全体を構成する方法を知っています。エンジニアは問題の領域を熟知しています。プログラミングの文脈で言うと、自分が解決しようとしている問題を理解し、それが大きな枠組みにどのように適合するかを理解し、技術の限界を理解していることを意味します。

2.コーディングの段階についてです。

優れたコードを読むのは、よく書かれた小説を読むようなものです。物語はページの外へと流れていきます。データ構造は、問題を解決するために必要なものを正確に表現しています。コードはプロシージャに分割されており、その名前、用途、コードから機能が明確になっています。名前は説明的である。コードは一貫してインデントされています。コメントは戦略的に配置され、有用で、真面目で、実行可能なコードと重複していない。コメントは、近くにあるコードの動作に疑問を投げかけません(もしそうしたいと思ったら、立ち止まって、何が起こっているのかを理解するために時間をかけてください!)。コードは決して不必要に複製されることはありません。関数は無駄な副作用がないようにタスクを実行します。将来の明らかな機能強化に配慮し、現在の設計ではそれを予測するための合理的な規定が設けられています。

3.彼らは恐れを知らない

コードが複雑すぎたり、壊れやすいと思っているからといって、あるコードに手をつけようとしないプログラマーは、おそらく正しいでしょう。しかし、彼らはコードのことを言っているのではありません。彼らは自分の能力に言及しているのです!偉大なプログラマーは、混乱に直面したとき、いつ、どのようにして、問題の厄介なコードを再実装すべきであることを経営陣に伝えるかを知っています。最悪のプログラマーは、単に飛び込んで混乱を悪化させるだけです。

4.偉大なプログラマーは常にパフォーマンスを考えています。

彼らは、手元のタスクに適したデータ構造を選べば、すでにほとんどのパフォーマンスの問題を回避していることを知っています。しかし、彼らはパフォーマンスについて何も仮定していません。コードをデバッグする際には、ストレステストを実行し、最大スロットルで振ってみます。彼らは、コードを1 TPSで動作するようにすることは、1000 TPSで動作するようにすることと同じではないことを理解しています。また、15分で動作するようにするのと、何日も何週間もかけて動作するようにするのとでは違うことも理解しています。

5.偉大なプログラマーは推測しない

必要な知識を得て、知らないことにたどり着いたときに、必要な知識をどうやって身につけるのか、推測せずに、無駄な時間をかけずに考えます。

私はあなたがこのリストを興味をそそられ、また、役に立つことを願っています。

メニューを閉じる

© 2024 Stratus Technologies.