自我のないプログラミングをすることは可能ですか、それとも望ましいですか?
職業として、私たちは最新のギズモやテクニックを披露したり、「私が書いたこの素晴らしいコードを見てください」と言いたいようです。それでも、コードレビューのために作業項目を提出するように求められたり、他のプログラマーから否定的なコメントを受け取ったりすると、非常に防御的になる可能性があります(WTFという用語を聞いても、良い兆候ではありませんでした)。
私たちは職業として、コード、データ、またはアーキテクチャの一部を座って分析し、そのメリットや制約、そして落ち着いて敬意を払う方法で、攻撃を引き起こしたり同僚に敵対したりすることはできませんか、それとも私たちはただの典型的なディルバートのキャラクターであり、怒り狂っていますか?システムに対して?
はい、可能だと思います。そして、私はジェフ・アトウッドが彼のブログエントリでこれを最もよくする方法を説明していると思います 強い意見、弱く開催された 。
常に心に留めておくべきことは、ほとんどの職業生活では、あなたが書くコードを所有していないということです。
あなたが従業員の場合、ソフトウェアは会社が所有しています。あなたが請負業者である場合、ソフトウェアは会社が所有しています。あなたがフリーランサーである場合、ソフトウェアはクライアントが所有しています。あなたがareである場合のみ、会社/クライアントはあなたが所有するソフトウェアです。
これを理解したら、「これはmyコードです」という考えや態度は少なくなります。はい、それでも起こります。誰かがあなたが今作ったものを批判した場合に動揺するのは人間の本性だけですが、その手順を踏んでアタッチメントを削除しようとすることで、打撃は少なくなるはずです。
反対側から、他の誰かが作成したコードをレビューするときは、コードの機能とその方法に集中し、改善を提案するときは建設的にします。
あなたがそれを成し遂げて正しくすることに焦点を合わせているとき、解決策があなたのアイデアであったかどうかはもはや重要ではありません
その時点で、あなたのエゴは建物を去りました-そしてあなたは何かを学ぶ可能性がはるかに高いです!
自信には灰色の領域がたくさんあります-傲慢な連続体。私はむしろ自分の仕事の所有権を取り、自己妄想ではなくメリットに基づいて卓越性のために努力する誰かが欲しいです。
私を信じてください、あなたは失敗するたくさんのがらくたを書くでしょう、そしてあなたは責任があるでしょう、それであなたはすべてがうまくいくときに利用したほうがよいでしょう。
何かがおかしいと思うとき、私はそう言います。私が間違っていると私に言って、それをバックアップする準備をしてください。それは最初でも最後でもありません。
あなたが批判を望まない場合(明らかにタクトと拘束を行使することができます。)、あなたの目のためだけのコードを書き、それを自分のコンピューターで実行してください。何かに優れたことのある人は誰でも批評家に対処しなければなりませんでした。
はい、自我のないプログラミングはかなり可能です。私は仕事のキャリアの半分以上の「メンテナンス」プログラミングを行ってきました。2番目に重要なこと[1]は、次の人が私のコードを読めるようにすることです。このオフィスには2人のプログラマー[2]がいて、誰が書いたかすぐにわかるような独特のスタイルで書いています。私たちは、彼が私たちに残してくれたコードと喜びの小さな束を「障害物」と呼んでいます。
一部の開発者は、自分が書いたコードは汗と血の結果であると感じており、質問されると(コードレビュー中など)非常に防御的になります。コードレビュー中にそれらを攻撃しないようにしてください。姿勢と防御の振る舞いがなくなるため、将来的にコードについて話し合うことが容易になります。
ノート:
1。最も重要なことは、バグを修正するか、機能を正しく記述することです。
2。これらのアプリケーションのほとんどは10年以上出荷されているので、私がいなくなってからずっと後になってしまう可能性が非常に高いです。
[imo]
これは根本的に難しい問題だと思います。おそらく社会学、または単にコンピュータをコミュニケーションの主な形として使用することは、それと多くの関係があります。
コンピューターはツールであり、その意識は信じられないほど美しいですが、コードの一部が自分で作成したオブジェクトであると言ってはいけません...すべてのコードは発見であり、そのパターンはコンピュータはあなたと結びつき、あなたが楽しむ結果を生み出すことができます。これらのパターンを繰り返し発見し、作成しているように感じることができるという事実は、まったくの至福の偶然です-私たちはパターンを見つけるのが得意です。
私たちは本当にコンピューターを発見への窓として見る必要があり、たとえそれらが生物の脳からの信じられないほど小さな切り抜きであっても、これらの小さな脳の自律性を尊重する必要があります。すべての数学とすべてのアルゴリズムは、私たちの宇宙が共鳴する不可侵の真理に対応しています。これの一部が「私のもの」であると宣言すること。 (Finding Nemoのカモメを考えてください)非常に多くのレベルで非常に多くのポイントを逃します。
新しいアルゴリズムを「考案」するために「労力を費やす」とき、これから離れることは難しい場合がありますが、私たちがこれらのエレガントで正確なウィンドウを数学的な真実に謙虚に維持していると考えると、タスクの定義が変わりますソフトウェアの目標が何であれ。
あなたのコンピュータを最初に同等のものとして扱い、残りの部分(egoless-ism、ピア調整、ゴール志向の振る舞い)は必ず従います。
コンピューターサイエンスを勉強してプログラマーになった動機の多くは、物理的なハードウェアや問題を解決するスリルではなく、私が感じたこの親和性によるものでしたが、脳と直接コミュニケーションできる脳をじっと見ているという事実私の好きな方法で:パターン!
一歩下がって、最初から好きなものが好きな理由を思い出してください。プログラミングは競争力があり、コードやデザインの選択を守る上で多くのエゴを刺激すると思いますが、
a)誰かがより優れたプログラマーである場合
私は彼らと話をし、電気意識とのこの複雑な関係についてもっと学びたいと思います。私たちは発見を共有でき、それは素晴らしいことです!
b)私のデザインの選択またはコードを、私が働いている組織により適したものに変更できるかどうか
その後、ぜひ変更してください!私は従業員です。お金が必要で、会社がお金を稼ぐとお金がもらえるからです。彼らは、空白などについて議論したいときではなく、使用するコードが素晴らしいときにお金を稼ぎます。そして、ChrisFが指摘しているように、他の労働者が知る限り、あなたは本質的に会社の設定で本当に遅いタイピストになります。あなたはコードを所有しておらず、実装も所有していません。あなたはアイデア/紙/仕様から電気意識のブレインフードへの翻訳の媒体にすぎません。言語の任意のペアとの間の翻訳は反復的なプロセスであり、時間の経過とともにより良くなります。批判はこのプロセスを加速させるので、決して個人的に受け止めるべきではありません。しかし、とにかく、あなたはエゴレスであるべきだということにほとんどの人が同意しているようです。会社のコーディングは仕事であることを忘れないでください。上司とクライアントを幸せに保つ限り、コードを学び、いじくり回し、遊ぶことができます。 。
[/ imo]
自我は単に自己価値の感覚です。自我に関連する感情の影響は、プラスにもマイナスにもなり得ます。
困難なことを成し遂げたり、複雑な問題に対する明確でシンプルな解決策を見つけたり、新しい方法論を問題に適用したりするとき、私はしばしば誇りを感じます(エゴは興奮する)。これは有益であり、私に自己調達の動機付けのキックを与えると思います。これが起こったとき、脳は心地よい化学物質を放出するように配線されています。あなたは中毒の成功になることができます。
ただし、特にチーム環境では、エゴに依存することにはマイナス面があります。それは逆効果になる可能性があります。あるプロジェクト、ソリューション、またはテクノロジーに執着するようになると、それが(新しいソリューションやテクノロジー、またはアイデアを持つ人によって)脅されたときに防御的になります。客観性を維持することが重要であり、ソリューションを個人的に攻撃しないでください。
私は自我の脅威に対処するための最良の方法を見つけました。それは、新しいまたは代替のアイデアや解決策に謙虚に執着することです。
特に自分が専門家だと考えるなら、学ぶべき新しいことが常にあります。