ハイブジェームズ
ソフトウェアアーキテクチャを構築する方法、変数の名前を選択する方法、コードをより適切に文書化する方法、およびその理由などについて多くのことを話します。
しかし、人々はあなたや私と同じプログラムを書きます。 優れたプログラマーになって大成功を収める人もいれば、専門職を放棄する人もいます。 古典を言い換えると、「あなたのコードを見せてください、そして私はあなたが誰であるかを言います」と言うことができます。 調査によると、優秀なプログラマーは、スキルの低い同僚よりも10倍速くプログラムを作成します。 コードのデバッグにかかる時間、最終プログラムの量と速度、エラーのレベル、検出されたエラーの数も約10倍異なります。
この記事では、完璧なコードを書くために人がどのような品質を持たなければならないかという質問に答えようとします。
知性と謙虚さ
インテリジェンスはキャラクターの特性ではないようで、実際にはそうではありません。 最高レベルのインテリジェンスは、優れたプログラマーになりたい人にとっての主要な条件からはほど遠いものです。
最高のプログラマーは、自分の能力がどれほど制限されているかを理解している人です。 彼らは控えめです。 最悪のプログラマーは、自分の能力がタスクに応じていないことを認めることを拒否します。 このキャラクターは、彼らが優秀なプログラマーになることを許しません。 あなたの心の限られた能力を補うために努力すればするほど、あなたはより良いプログラミングをします。 開発の速度は謙虚さに依存します。
好奇心
自分の能力が小さすぎてほとんどのプログラムを理解できないことを認識し、効果的なプログラミングがこの欠点を補う方法の探求であることに気づいたら、あなたはこの探求を始めます。これはあなたのキャリアの終わりまで続きます。 したがって、プログラマーの重要な性格特性は、技術的な問題に対する好奇心です。
- 開発プロセスを研究します。
- 実験
- 問題解決について読んでください。
- 行動する前に分析および計画する。
- 成功したプロジェクトを研究する;
- 本や定期刊行物を読む;
- 志を同じくする人々と通信します。
- 常に専門能力の開発に努めています。
プロの誠実さ
「どんなバカでも自分の過ちを守ることができる-ほとんどのバカはそれをやる。」
デール・カーネギー
高度なスキルを備えたプログラマーの形成には、さまざまな形で現れる可能性のある職業上の誠実感の向上が含まれます。
- あなたがそうでない場合、専門家の役割を主張することの拒否;
- 自分の間違いを喜んで認める。
- インタープリター/コンパイラーの警告をオフにする代わりに警告を理解したい;
- プログラムを明確に理解したいという願望と、それが機能するかどうかを調べることのみを目的としてコードをコンパイルすることの拒否。
- 現実的なプロジェクトステータスレポートの提供
- プロジェクトの完了時間の現実的な推定値を提供し、管理者が評価を調整するよう求められた場合でも、その位置を擁護します。
コミュニケーションとコラボレーション
本当に優れたプログラマーは、人間が読めるコードを書くことを常に伴う、効果的なコラボレーションを学びます。 お使いのコンピューターは、おそらく他の人と同じくらい頻繁にプログラムを読み取りますが、人々よりもずっと悪いコードを読み取ります。 コードに取り組むとき、将来それを変更しなければならない人々を忘れないでください。 プログラミングは、主に他のプログラマーとのコミュニケーションであり、2番目はコンピューターとのコミュニケーションです。
創造性と規律
一部のプログラマーは、標準と慣習が創造的な自由を抑制すると信じていますが、受け入れるのは難しいです。 各ページに異なるフォント、色、テキスト配置方法、グラフィックスタイル、ナビゲーション方法を備えたWebサイトを想像できますか? 創造性はそこにある-これはカオスです。 標準や規約が大規模なプロジェクトで使用されていない場合、それを完了することは不可能になります。 役に立たないものに創造的なエネルギーを無駄にしないでください。 マイナーエリアの規則を設定し、本当に重要な側面に焦点を当てます。
怠azine
怠azineはいくつかの方法で発生します。
- 不快なタスクの延期;
- できるだけ早くそれを取り除くことを目的とした不快なタスクの即時実装;
- 不快なタスクを実行するツールを作成して、再度実行する必要がないようにします。
怠lazの最初の症状は、ほとんど有益ではありません。
これらの習慣を身につければ、最初のタイプの怠inessを取り除くことができます
すぐにタスク。 この習慣は、怠secondの2番目のタイプである「啓発」に対応しています。 あなたはまだ怠け者ですが、不快な問題をできる限り時間をかけずに解決します。 怠lazの3番目のバージョンでは、不快なタスクを実行するツールを作成します。 これが「長期怠」です。 間違いなく、これは最も生産的なタイプの怠inessです(もちろん、ツールで最終的に時間を節約できる場合を除きます)。 この文脈では、特定の怠は有益です。
ただし、怠には欠点もあります。 「速攻」と「努力」は、体育の授業ほどプログラミングでは高く評価されていません。 急いで余分な、不必要な努力です。 アクティビティを示しますが、作業の実行は示しません。 運動は進歩と混同しやすく、雇用は生産性と混同することは難しくありません。 思考は効果的なプログラミングで重要な役割を果たし、思考する人は通常忙しくないようです。
表示されるほど重要ではないプロパティ
急ぎに加えて、生活の他の分野に関連する他のプロパティがありますが、ソフトウェア開発には特に効果的ではありません。
- 頑固さ、ロバの頑固さとして理解される場合;
- 業界の発展の現在のダイナミクスの経験(例は古いアプローチとテクノロジーへのコミットメントです);
- プログラミングへの情熱-1日16時間働くと、単に燃え尽きたり、間違いを犯したりする可能性があります。その後、「勝った時間」よりも数倍長く修正する必要があります。
習慣
良い習慣を身に付けることは非常に重要です。なぜなら、プログラマーとして多くのことをためらうことなく行うからです。 たとえば、ループのフォーマットを考えることができたが、新しいループを作成するときは考えません。 以前と同じように書きます。 これは、コード生成のほぼすべての側面に適用されます。
ビル・ゲイツ氏は、後になって優秀になったプログラマーは、最初の数年間は優秀だと言います。 その後、変更はほとんど不可能です。
何かをすることを学ぶ、すぐにそれを正しくすることを学ぶ。 初めて積極的に行動を検討するときは、アプローチを簡単に変更できます。 何回か何かをしていると、あなたは自分の行動にあまり注意を払わなくなり、「習慣の強さ」が犠牲になります。 希望する習慣を正確に身につけていることを確認してください。
最も効果的な習慣を開発していない場合はどうなりますか? 悪い習慣を変えるには? 悪い習慣を習慣の欠如に置き換えることはできません。 悪い習慣を良い習慣に置き換えることができます。 新しい、効果的な習慣を開発してみてください。 たとえば、エンコードする前に擬似コードでクラスを記述する習慣を開発したり、コンパイルする前にコードを注意深く読んだりします。 そうすれば、悪い習慣を取り除くことを心配する必要はありません-それらは自然に新しい習慣に置き換えられます。
まとめ
- プログラムを直接作成できるかどうかは、個人の性質に依存します。
- プログラマーの最も重要な資質は、謙虚さ、好奇心、専門家の誠実さ、創造性、規律、そして「賢明な」怠lazです。
- 優秀なプログラマーになるためには、特別な才能はないかもしれませんが、常に自己改善に努めなければなりません。
- 驚くべきことに、知性、経験、忍耐はプログラマに害を与えません
助けるよりも少ない。 - 多くのプログラマーは、新しい情報や方法を積極的に検索するのではなく、職場での新しい情報との偶然の出会いに頼っています。 時間のほんの一部を本を読んだり、プログラミングを学ぶことに専念すれば、数か月のうちにほぼすべての同級生よりもはるかに優れたものになります。
- 良いキャラクターとは、多くの点で良い習慣の産物です。 優れたプログラマーになりたい場合は、適切な習慣を身に付けると、他のすべてが自然に生まれます。
スティーブマッコネル