ワインディング開発者の道







プログラミングの学習は生涯にわたる仕事です。 ほとんどの場合、あなたがまだ知らなかった存在について何か新しいことが出てきます。







私はコンピューターサイエンスを学んでいる多くの学生とコミュニケーションを取り、彼らの多くは大学でプログラミングを学び、その知識を仕事に応用すると信じています。 おそらく、彼らはプロセスの中である種のビジネス知識を理解するでしょう。 しかし、プロのプログラマーは、彼らが完全に新しいことをすぐに気付くでしょう、これらの大学卒業生。







開発者が経験する多くのステップについて議論した@PrototypeAlex話し合った後、私はそれについて書くインスピレーションを得ました。 私がコードを書いている30年間、私はこの記事で説明されているほぼすべての段階を経験しましたが、特に苦痛を感じる人もいました。







これらの段階で自分自身を認識していますか? そして、私は何を見逃しましたか? 多くの段階が私の視界から外れます。 学習と発見を止めることはありません。







グレートコピーパスター



コードを書くのは難しいですが、人々はあなたのために問題を解決しました! アドレスバーに「s」を入力すると、ブラウザーはStack Overflowに移動し、さまざまなコードを貼り付けて、必要なコードを確認します。 時にはそれが道徳的な強さを損なうことがありますが、最終的には少なくとも何らかの作業コードを取得します。







あなたが理解すること:あなたはあなたがうまくプログラムする方法を学ぶ唯一の方法があなた自身でタスクを通して働くことであることを理解するでしょう。 作業が遅くなったとしても、1日に2、3回だけスタックオーバーフローに頼ります。 あなたのプログラミングスキルは向上しており、今ではあなたは他の人が書いたコードに依存することなく、はるかに速く作業しています。







成功したメソジスト



必要なことを行うコードの書き方を学びましたが、最初は何も機能しません。 そして、要件は常に変化しています。 いくつかのコードを貼り付けて、動作するまで掘り下げます。 動作しますか? リリース! あなたは信じられないほど生産的であり、プロダクトマネージャーはあなたを称賛します。







あなたが理解すること:コードはコンピュータだけでなく人々によっても読まれます。 他の人々とプロジェクトに取り組み始め、コードを読むたびに彼らは壁を登ります。 あなたは単一のテストを書いたことがなく、彼らはコードをリファクタリングし、それを壊すことを恐れずにそれを改善することさえできません。







コードをきれいにするために時間を費やすことで速度が低下する可能性があることを理解していますが、そうすればコードは将来簡単に維持できます。 あなたのチームパートナーはあなたと一緒に仕事をすることで幸せになり、あなたはあなたの会社の長期的な価値を保証します。







スマートコーダー



これで、お気に入りの言語のさまざまなトリックを理解し、コードの一部を合理的な小さなメソッドに圧縮できます。 あなたはリラックスして座って、それがどれほどコンパクトであるかを賞賛します! コードがどれほどクールか、スキルをどのように強調しているかを見てください。







あなたが理解すること:時には賢くするだけで十分であるように思われるかもしれませんが、-結局のところ-これは社会関係にあまり影響を与えません。 他の人の脳はあなたのようには機能せず、たとえ彼らが優れたプログラマーであっても、彼らはあなたのスマートコードをすぐに理解しないかもしれません。 あなたのコードがそれを読むすべての人のために明確に定義された概念を持っているとき、それはずっと良いです。 これで、「スマート」コードは、あらゆる種類のパズルやコードゴルフなどのパズルに適した場所になりました。







コメンテーター



他の人があなたのコードを理解することは重要ですので、非常によくコメントされていることを確認する必要があります。 数行ごとに何が起こるかを説明します。 すべてが読みやすい!







あなたが理解すること:多くのコメントはコードが何をするのかを正確に説明していないため、驚くほど読みにくくなります。 コメントを使用して、コードが記述されているとおりに記述されている理由を説明するためではなく、コードが記述されているとおりに記述されている理由を説明します。







これでコードが読みやすくなり、説明的な変数名と多くの明確に定義されたメソッドが使用されます。 高度なメソッドは、ほぼ英語のように読めるようになりました! また、説明的なコードを作成できなかった場合にのみコメントが挿入されます。







コードリファクタリング



これはくだらないコードです。 5年以上継承されているため、それを取り除き、新しいものを開始する必要があります。 真剣に、私たちはずっと良く書くことができます。 新しいものを使用する方がずっときれいで簡単です。







あなたが理解すること:「時代遅れのコード」からの利益はあなたの給料を形成するものです。 現時点では、すでにいくつかのコードベースを使用しており、世界には完全で自然のままの場所は存在しないことに気付いています。常に技術的な義務があることを知っています。







これで、リファクタリングを最小限に抑えて、毎日の変更の一部にして、これらの変更を送信するために必要なものだけに影響を与えます。 定期的に、小規模なリファクタリングプロジェクトのサポートを提供して、コードベースの最悪で最も影響を受ける部分を取り除きます。 新しいコードが適切に設計されていることを確認しようとしています。 ファクタリングには適切なビジネスケースが必要であることを理解しています。







100%フォロワー



標準に従ってコードの品質を自動的に制御するようにトレーニングされたエディターがあり、コミットする前に毎回メトリックチェックを実行して、「コードが良好であること」を確認します。 あなたが書くすべては必然的にテストされ、テストはあなたの仕事の100%をカバーします。 すべての作業が量的に壮大であるという知識から、温かく居心地の良い感覚を得ます。







理解できること:ほとんどの優れたコードには優れたメトリックがありますが、優れたメトリックを持つすべてのコードが単独で優れているとは限りません。 自分のスキルを使ってコードの良さをテストするのではなく、メトリック、標準、ベストプラクティスに過度に依存していることに気付くでしょう。







今、あなたは積極的にあなたの頭脳を使って美しいコードを書き、終わったらそれを読み直し、レビューコードを使って正しい道を確かめます。 計測器から特定の数を抽出するコードを書くだけでなく、計測器の測定の境界を越えた原則を理解しました。 引き続きメトリック用のツールを使用しますが、コードベース全体のレベルで、コードの状態と、後で改善するために注意を払うことができるものを一般的に理解します。







トレンドへの情熱



最新のテクノロジーを使用すると、コードが非常にモダンになります! プロダクションコードに新しいものすべてを適用するのが好きです。 機能的なRubyプログラミングスタイルを使用し、フォームアプリケーションに最初にNoSQLを使用しました。 これらの新しいテクノロジーは、はるかに生産的でエレガントです。 これはとてもエキサイティングな感覚であり、あなたはあなたが雇用主にとって非常に貴重になったことを知っています。 あなたは間違いなく歴史の背景にとどまることはありません。







あなたが理解すること:トレンドへの情熱はクールですが、それは問題をもたらします。 多くの時間を費やして、国境のケースを巡り、誰もあまり知らない新しいテクノロジーを使用しています。 新しいフレームワークで利用できるサポートやライブラリはそれほど多くありません。また、それを使用した経験のある人も雇うことができます。 最終製品の1つに、一部のデータが失われるという障害状態がありましたが、これは専門家の恥でした。







最終製品に従来のテクノロジーを使用することは企業にとって大きな価値をもたらすことを実感しますが、新しいテクノロジーが本当に好きだったため、これは退屈な方法です。 夕方には、おもちゃのプロジェクトをいじくり回し、取りつかれた喜びとスキルを活気づけて、あなたのビジネスが依存するのに十分な流行になります。







パターンのファン



優秀な人は、優れたコードを記述するためにエレガントなパターンを思いつき、それをコードで使用します。 ずっと。 同僚との多くの会話は、より良いパターンを使用するか、別のパターンを使用してより良いものを書く方法に帰着します。 このアプローチにより、これらのパターンを設計した賢い人々があなたのコードを愛することを知っています。







あなたが理解すること:ささいなことだけをやり遂げている間に同僚が多くの仕事をしていることを観察すると、あなたはあまりにも夢中になっているかもしれないことを理解します。 結局のところ、パターンは、何も説得することのない粗雑なパターンにすぎず、単に有用なことを行うように導くだけです。







これらのパターンをマスターしたので、「パターンXの実装」について考えるのをやめて、直感と経験を使ってコードを書くことができます。 これにより、多くの便利なコードを作成できます。 (そして、あなたは同僚がパターンについて話すのをやめたことに満足しています)。







時期尚早のオプティマイザー



モノリシックアプリケーションはエレガントではなく、アーキテクチャは非常に洗練されています。 スマートメッセージングソリューションにより、それぞれがアプリケーションの1つの機能を制御する小さなマイクロサービスは、新しいアプリケーションを開発する明白な方法です。 同じように続けるかのように開始します。これにより、アプリケーションがスケーラブルになります。







あなたが理解すること:あなたはマイクロサービスが開発を大きく阻害し、モノリスでは遭遇しないであろうあらゆる種類の困難を引き起こすことに気付くでしょう。 あなたはもっと早く市場に参入でき、そしてもちろん、よりシンプルな設計から始めた場合、開発にもっと早く資金を供給するためにお金を稼ぐことができると思います。







大規模なチームで働いていたため、40人以上が同じコードベースで作業していることは複雑な構成であることを知っています。システムを効果的に使用するには、システムに関するすべてのことを知る必要がありますが、これは拡張できません。 今、あなたは長所と短所を見て、これが経済的に意味をなすまでサービスをリファクタリングする決定を先送りにします。







オラクル



あなたのコードは素晴らしいです。 みんなこれを教えてくれます。 彼らはあなたに専門的な敬意を表します。 同僚があなたの机に並んでいて、彼らのコードについてのコメントを聞きたいと思っています。 あなたは永遠の雇用のためにストレスの多い仕事をしており、会社があなたに支えられていることを心配しています。 病気になると、悪いことが起こります。







あなたが理解すること:あなたは理解します、オラクルであることはあなたの組織が働くために悪い考えです。 静かに座って素晴らしいコードを書く代わりに、あなたは会社の開発者を積極的に訓練することに時間を費やします。 コードの記述がはるかに少なくなるため、チームのパフォーマンスが低下します。 しかし、各開発者のスキルレベルを上げることができれば、彼らは一緒にあなたが書く時間がないコードを書き、それからあなたを凌thatすることを理解しています。







開発者は自分の意思決定に自信を持つようになります。適切でない場合もありますが、彼らは間違いから学び、指導のおかげで優れた開発者になります。







ディフェンダー



あなたは、大規模組織の上級開発者の1人、または小規模組織の主要な開発者です。 ビジネス上の意思決定を支援し、デベロッパーが優秀になるようにトレーニングします。 しかし、経営陣やクライアントは常に悪い決断を下す方法を見つけており、チームを彼らの無能さから守る必要があります。 彼らは意味をなさない愚かな関数やコンポーネントを実装したいので、コードが複雑になります。 彼らはあなたのコードと開発者を守るために彼らと戦うことに多くの時間を費やし、時には幸せなチームを維持するための情熱のために関係を壊します。







理解できること:適切な関係を破壊したことで、既存のコードと作業が管理者と顧客のメリットであることに気付くでしょう。 技術的なバックグラウンドを持たない人々が、リクエストの技術的な結果を予測できない場合があり、適切な選択を行えるように貴重な情報やアドバイスを提供するために、チームの一員になるという使命を果たすことがあるという結論に達します。 それらと強力で信頼できる関係を構築する唯一の方法は、上記のように動作することです。







発言したら、彼らのビジネスのために正しい決定を下せるように、彼らの邪魔をしないことが最善の戦略です。 何かがうまくいかない場合は、常に彼らをサポートするためにそこにいますが、最終的には、すべてがうまくいくことがよくあります。







ナタリアベースによる翻訳)








All Articles