プログラマーの個性

「実践的または科学的分野の専門家になるには、多くの作業と長い時間がかかります。 勤務時間の1時間ごとに勤勉に働いている人は、いつか彼の世代の最も有能な専門家の1人を起こすでしょう。」

ハイブジェームズ



ソフトウェアアーキテクチャを構築する方法、変数の名前を選択する方法、コードをより適切に文書化する方法、およびその理由などについて多くのことを話します。



しかし、人々はあなたや私と同じプログラムを書きます。 優れたプログラマーになって大成功を収める人もいれば、専門職を放棄する人もいます。 古典を言い換えると、「あなたのコードを見せてください、そして私はあなたが誰であるかを言います」と言うことができます。 調査によると、優秀なプログラマーは、スキルの低い同僚よりも10倍速くプログラムを作成します。 コードのデバッグにかかる​​時間、最終プログラムの量と速度、エラーのレベル、検出されたエラーの数も約10倍異なります。



この記事では、完璧なコードを書くために人がどのような品質を持たなければならないかという質問に答えようとします。





知性と謙虚さ



インテリジェンスはキャラクターの特性ではないようで、実際にはそうではありません。 最高レベルのインテリジェンスは、優れたプログラマーになりたい人にとっての主要な条件からはほど遠いものです。



最高のプログラマーは、自分の能力がどれほど制限されているかを理解している人です。 彼らは控えめです。 最悪のプログラマーは、自分の能力がタスクに応じていないことを認めることを拒否します。 このキャラクターは、彼らが優秀なプログラマーになることを許しません。 あなたの心の限られた能力を補うために努力すればするほど、あなたはより良いプログラミングをします。 開発の速度は謙虚さに依存します。



好奇心



自分の能力が小さすぎてほとんどのプログラムを理解できないことを認識し、効果的なプログラミングがこの欠点を補う方法の探求であることに気づいたら、あなたはこの探求を始めます。これはあなたのキャリアの終わりまで続きます。 したがって、プログラマーの重要な性格特性は、技術的な問題に対する好奇心です。





プロの誠実さ



「どんなバカでも自分の過ちを守ることができる-ほとんどのバカはそれをやる。」

デール・カーネギー



高度なスキルを備えたプログラマーの形成には、さまざまな形で現れる可能性のある職業上の誠実感の向上が含まれます。





コミュニケーションとコラボレーション



本当に優れたプログラマーは、人間が読めるコードを書くことを常に伴う、効果的なコラボレーションを学びます。 お使いのコンピューターは、おそらく他の人と同じくらい頻繁にプログラムを読み取りますが、人々よりもずっと悪いコードを読み取ります。 コードに取り組むとき、将来それを変更しなければならない人々を忘れないでください。 プログラミングは、主に他のプログラマーとのコミュニケーションであり、2番目はコンピューターとのコミュニケーションです。



創造性と規律



一部のプログラマーは、標準と慣習が創造的な自由を抑制すると信じていますが、受け入れるのは難しいです。 各ページに異なるフォント、色、テキスト配置方法、グラフィックスタイル、ナビゲーション方法を備えたWebサイトを想像できますか? 創造性はそこにある-これはカオスです。 標準や規約が大規模なプロジェクトで使用されていない場合、それを完了することは不可能になります。 役に立たないものに創造的なエネルギーを無駄にしないでください。 マイナーエリアの規則を設定し、本当に重要な側面に焦点を当てます。



怠azine



怠azineはいくつかの方法で発生します。



怠lazの最初の症状は、ほとんど有益ではありません。

これらの習慣を身につければ、最初のタイプの怠inessを取り除くことができます

すぐにタスク。 この習慣は、怠secondの2番目のタイプである「啓発」に対応しています。 あなたはまだ怠け者ですが、不快な問題をできる限り時間をかけずに解決します。 怠lazの3番目のバージョンでは、不快なタスクを実行するツールを作成します。 これが「長期怠」です。 間違いなく、これは最も生産的なタイプの怠inessです(もちろん、ツールで最終的に時間を節約できる場合を除きます)。 この文脈では、特定の怠は有益です。



ただし、怠には欠点もあります。 「速攻」と「努力」は、体育の授業ほどプログラミングでは高く評価されていません。 急いで余分な、不必要な努力です。 アクティビティを示しますが、作業の実行は示しません。 運動は進歩と混同しやすく、雇用は生産性と混同することは難しくありません。 思考は効果的なプログラミングで重要な役割を果たし、思考する人は通常忙しくないようです。



表示されるほど重要ではないプロパティ



急ぎに加えて、生活の他の分野に関連する他のプロパティがありますが、ソフトウェア開発には特に効果的ではありません。





習慣



良い習慣を身に付けることは非常に重要です。なぜなら、プログラマーとして多くのことをためらうことなく行うからです。 たとえば、ループのフォーマットを考えることができたが、新しいループを作成するときは考えません。 以前と同じように書きます。 これは、コード生成のほぼすべての側面に適用されます。



ビル・ゲイツ氏は、後になって優秀になったプログラマーは、最初の数年間は優秀だと言います。 その後、変更はほとんど不可能です。



何かをすることを学ぶ、すぐにそれを正しくすることを学ぶ。 初めて積極的に行動を検討するときは、アプローチを簡単に変更できます。 何回か何かをしていると、あなたは自分の行動にあまり注意を払わなくなり、「習慣の強さ」が犠牲になります。 希望する習慣を正確に身につけていることを確認してください。



最も効果的な習慣を開発していない場合はどうなりますか? 悪い習慣を変えるには? 悪い習慣を習慣の欠如に置き換えることはできません。 悪い習慣を良い習慣に置き換えることができます。 新しい、効果的な習慣を開発してみてください。 たとえば、エンコードする前に擬似コードでクラスを記述する習慣を開発したり、コンパイルする前にコードを注意深く読んだりします。 そうすれば、悪い習慣を取り除くことを心配する必要はありません-それらは自然に新しい習慣に置き換えられます。



まとめ





スティーブマッコネル



All Articles