1745446990
2025-04-23 11:50:00
私は私の人生で多くの開発者に会いました。最近、私は自問しました:「最高の1つになるには何が必要ですか?彼らは何が共通していますか?」
これがそこにいる誰かのインスピレーションになることを期待して、私は私たちのクラフトの最も例外的な人々で観察した特性を書き留めました。始めたときにそのリストがあればいいのにと思います。もし私がこの道をたどっていたら、それは私に多くの時間を節約していただろう。
参照をお読みください
若いプログラマーとして私がすべきだったことが1つあれば、それは 参照をお読みください 私が使っていたものの。つまり、読みます Apache WebServerドキュメント、 Python Standard Library、または TOML仕様。
オーバーフローをスタックしないでください、LLMに尋ねないでください、しないでください 推測、すぐに行きます ソース。多くの場合、それは驚くほどアクセスしやすく、よく書かれています。
優れた開発者は、aで使用するテクノロジーを理解しています 基本レベル。
できることは一つのことです 使用 ツールと本当に他のもの グロック (理解)それ。単なるユーザーがファンブルを回し、混乱しやすくなり、間違って保持し、構成を最適化しません。
専門家が(参照を読んだ後)に行き、すべてのラインを理解し、同僚に説明できるツールの構成を書くために座っています。それは疑いの余地がありません!
ツールをよく知るには、知っておく必要があります。
- その歴史:誰がそれを作成しましたか?なぜ?どの問題を解決するために?
- その現在:誰がそれを維持しますか?彼らはどこで働きますか?何で?
- その制限:ツールが適切ではないのはいつですか?いつ壊れますか?
- そのエコシステム:どのライブラリが存在しますか?誰がそれを使用しますか?どのプラグイン?
たとえば、あなたがバックエンドエンジニアであり、Kafkaを十分に活用している場合、Redditで読んだことだけでなく、Kafkaについて多くのことを知っていることを期待しています。少なくとも、あなたが最高のエンジニアの一人になりたいなら、それは私が期待することです。
エラーメッセージを読んでください
のように エラーメッセージを本当に読んで、何が書かれているかを理解してみてください。結局のところ、あなたがただ座ってエラーメッセージについて瞑想するなら、それはあなたに話し始めます。最高のエンジニアは、ほとんどコンテキストから大量の情報を推測できます。エラーメッセージを読むだけで、ほとんどの問題を自分で修正できます。
あなたがそのスキルを持っていない人を助けるなら、それはまた、超大国のように感じます。のように 「カップから読む」 またはSO。
問題を分解します
誰もが時々立ち往生します。停滞する方法を最もよく知っています。彼らは消化可能になるまで問題を単純化します。それは学ぶのが難しいスキルであり、たくさんの経験を必要とします。または、あなたは素晴らしい問題解決スキルを持っているだけです。たとえば、あなたは賢いです。そうでない場合は、訓練することができますが、難しい問題を壊す方法はありません。この世界には、関係者が一度に解決するのが難しすぎる問題があります。
あなたがプロの開発者として働いている場合、それはあなたが支払われる仕事の大部分であり、問題を壊します。あなたがそれを正しくするならば、それは不正行為のように感じるでしょう:あなたはあなたが完了するまで単純な問題を解決するだけです。
手を汚すことを恐れないでください
私が知っている最高の開発者は多くのコードを読んで、彼らはそれに触れることを恐れていません。彼らは「それは私のためではない」とは決して言いません。代わりに、彼らはただ始めて学習します。コードはです コードだけです。彼らは、時間と労力で必要なスキルを手に入れることができます。あなたがそれを知る前に、彼らは彼らが触れたものは何でもチームの頼りになる人になります。主に、そもそもそれに触れることを恐れなかったのは彼らだけだったからです。
常に他の人を助けてください
関連するポイント。優れたエンジニアは需要が高く、常に忙しいですが、彼らは常に助けようとします。それは、彼らが自然に好奇心が強く、彼らの支援的な心がそもそも彼らを素晴らしいエンジニアにしたからです。彼らは問題解決者であるため、彼らをあなたのチームに持っていることは純粋な喜びです。
書く
ほとんどの素晴らしいエンジニアは、よく話されており、知識を共有して喜んでいます。
最高のものには、ブログ、講演、オープンソース、またはそれらの組み合わせなど、彼らの考えのためのアウトレットがあります。
ライティングスキルとプログラミングの間には強い相関関係があると思います。私が知っているすべての最高のエンジニアは、少なくとも1つの人間の言語よりも良い指揮を執っています。あなたが書く方法を習得することは、あなたが思う方法とその逆をマスターすることです。人の執筆スタイルは、彼らの考え方について多くを語っています。混乱して構造がない場合、コーディングスタイルもそうです。それが簡潔で、教育的で、十分に構造化され、機知に富んだ時々、彼らのコードもそうです。
優れたプログラマーは、言葉で遊ぶことに喜びを感じます。
学習を止めないでください
私が知っている最高の開発者のいくつかは60歳以上です。彼らは私の周りで円を走ることができます。その理由の一部は、彼らが学習を続けているからです。彼らが試したことのない新しいツールや好きな言語がある場合、彼らはそれを学びます。このようにして、彼らは常に多くの努力なしで物事の上にとどまります。
それは当たり前のこととは言えません。多くの人が大学を卒業した後、または最初の仕事を始めた後、本当に迅速に学習をやめます。彼らは、学校で教えられたことが物事を行う「正しい」方法であると考えて立ち往生します。新しいものはすべて悪く、時間の価値がありません。そのため、「精神的に引退した」25歳と68歳の人がまだ新鮮な人がいます。私はいつか後者のグループに属します。
やや関連していると、最高のエンジニアはトレンドに従いませんが、新しいテクノロジーの利点を常に慎重に評価します。彼らがそれを却下した場合、彼らはあなたに正確に伝えることができます なぜ、テクノロジーが良い選択であり、代替手段が何であるか。
ステータスは関係ありません
最高の開発者は、主要なエンジニアとジュニア開発者と同様に話します。階層はありません。彼らは老いも若きも、みんなから学ぼうとします。新参者は、多くの場合、まだオフィスの政治に定着しておらず、まだ新鮮な心を持っています。彼らはなぜ物事があるのかわかりません 難しい そして、彼らは創造的なソリューションを提案します。たぶん、過去の障害はもうありません。これにより、これらの人々は大きなインスピレーションの源になります。
評判を築きます
あなたが堅実なエンジニアになることができます する 良い仕事ですが、あなたが最高の1つになることしかできません 知られています あなたの良い仕事のために;少なくとも(より大きな)組織内。
自分で評判を築くには多くの方法があります:
- (より大きな)組織の重要なサービスを構築して出荷しました。
- あなたは有名なツールを書きました
- 人気のあるオープンソースツールに貢献します
- よく言及されている本を書きました
なぜあなたの仕事で知られることが重要だと思いますか?上記はすべて、コミュニティでの衝撃半径を拡張する方法です。有名な開発者は、有名な開発者よりも多くの人々に影響を与えます。書くことができるコードはそれほど多くありません。影響を「スケーリング」したい場合は、思考リーダーになる必要があります。
評判を築くことは長期的な目標です。それは一晩では起こりませんし、そうする必要もありません。そして、それは偶然には起こりません。あなたは毎日現れて仕事をします。時間が経つにつれて、仕事はそれ自体を物語っています。より多くの人々があなたとあなたの仕事を信頼し、彼らはあなたと一緒に働きたいと思うでしょう。あなたはより名誉あるプロジェクトに取り組み、サークルは成長します。
私はかつてあなたの最新の作品があなたが以前にしたことすべてを覆い隠すべきだというこの考えについて聞いたことがあります。それはあなたが正しい軌道に乗っているという良い兆候です。
忍耐があります
コンピューターや人間に忍耐が必要です。特にあなた自身で。すべてがすぐに機能するわけではなく、人々は学ぶのに時間がかかります。あなたの周りの人が愚かであるということではありません。彼らは不完全な情報を持っています。忍耐がなければ、世界はあなたに反対しているように感じるでしょう、そしてあなたの周りのすべての人はただ無能です。それは悲惨な場所です。あなたはあなた自身の利益にはあまりにも賢いです。
最高の1つになるには、信じられないほどの忍耐、焦点、献身が必要です。難しい問題を解決したい場合、簡単に気を散らすことはできません。キーボードに戻るには、それを乗り越える必要があります。プロジェクトをフィニッシュラインに押し上げるには、作業を行う必要があります。そして、ar慢な刺し傷ではない間にそうすることができれば、それはさらに良いことです。それが残りのものと最高のものを分離するものです。
コンピューターを非難しないでください
ほとんどの開発者は、ソフトウェア、他の人、犬、または気候のように見える「ランダムな」バグを非難しています。
最高の開発者はそうではありません。
コンピューターの動作がどんなに不安定でもいたずらであっても、 いつも 論理的な説明:あなたはまだそれを見つけていません!
彼らが理由を見つけるまで掘り続けるのが最善です。彼らはすぐに理由を見つけられず、決してそれを見つけることはないかもしれませんが、外部の状況を責めることはありません。
この態度により、彼らは信じられないほどの進歩を遂げ、他の人が失敗したことを学ぶことができます。バグを理解できない魔法と間違えると、魔法は常にそうなるものです。
「わからない」と言うことを恐れないでください
就職のインタビューでは、少なくとも一度「私は知らない」と言うように候補者を一生懸命押しました。その理由は、私が優れているように見せたかったからではありませんでした(一部の人々は確かにその印象を持っていましたが)。いいえ、私は彼らの知識の境界に到達したかったのです。私は彼らが知っていると思ったことの端に彼らと一緒に立ったかった。多くの場合、私自身は答えを知りませんでした。そして正直に言うと、私は答えを気にしませんでした。私が気にかけていたのは、人々がインタビューを通して彼らの道を強打したときでした。
最高の候補者は「はい、私は知りませんが、それは興味深い質問です!私が推測しなければならなかったなら、私は…」と言い、彼らは答えを推測し続けます。それはあなたが素晴らしいエンジニアになる可能性があるという兆候です。
あなたが「私は知らない」と言うことを恐れているなら、あなたはhub慢または防御の立場から来ます。私はチームのブルシッターが好きではありません。あなたがすべてを知ることができないことを認める方が良いです。それを受け入れたら、あなた自身が学ぶことを許可します。 「重要なことは、質問をするのをやめないことです」とアルバート・アインシュタインは言いました。
推測しないでください
「あいまいさに直面して、推測する誘惑を拒否する」それは私のお気に入りのルールの1つです PEP 20 – Pythonの禅。
そして、それはそうです、推測するのはとても魅力的です!
私は何度もそこにいて、自分の野望に失敗しました。
推測すると、2つのことが起こる可能性があります。
- で ベストケース あなたは間違っており、あなたの誤った仮定はバグにつながります。
- で 最悪の場合 あなたは正しいです…そして、あなたは決して止まって、自分自身を推測することはありません。間違った仮定に基づいてメンタルモデルを構築します。これは長い間あなたを悩ませることができます。
繰り返しますが、推測への衝動に抵抗します。質問し、参照を読んで、デバッガーを使用して、徹底的にしてください。答えを得るために必要なことをしてください。
シンプルにしてください
賢いエンジニアは賢いコードを書きます。例外的なエンジニアは簡単なコードを書きます。
それはほとんどの場合、シンプルで十分だからです。そして、シンプルは複雑なものよりも保守可能です。時々それ します 物事を正しくすることは重要ですが、違いを知ることは、最高を他の人と区別するものです。
シンプルに保つことで、多くのことを達成できます。正しいことに焦点を合わせます。
最終的な考え
上記はチェックリストや競争ではありません。そして、優れたエンジニアリングは人種ではありません。
ハードワークをスキップできると考えさせないでください。ショートカットはありません。あなたの旅で頑張ってください。
読んでくれてありがとう!プログラミングスキルをレベルアップしたい場合は、チェックしてください CodeCrafters – それは私が本当に友達にお勧めするプラットフォームです。無料で試して、有料プランが40%オフになります。
完全な開示:サブスクリプションに関する手数料を獲得しているので、コーディングスキルを向上させながら仕事をサポートします。
#私が知っている最高のプログラマー