「プログラミングの年齢が21歳の中年のプログラマーとして、ソフトウェア業界の変動する世界の山と谷をうまく経験したことを誇りに思います。この記事では、これまでのソフトウェア開発におけるキャリアを記録しています。キャリアのミスが、また、これらのミスに指を回避する方法を南に。」
。 ラビシャンカールラジャン
翻訳者| Su Benru、編集長| Guo Rui
出品 | CSDN(ID:CSDNnews)
以下は翻訳です:
私のプログラミングのキャリアがついに21年を経たので、今日は私にとって重要な日です。
すべてが昨日起こったように感じます。今日、私はここにいます。プログラミングの年齢が21歳の中年のプログラマーとして、変数の多い世界であるソフトウェア業界の山と谷をうまく体験したことをブログで誇らしげに言えます。はい、少なくとも今日は私にとって象徴的な瞬間だと言えます。
ことわざにあるように、間違いを犯すことは優れた学習への道の一部であり、急速で頻繁な失敗は成功のしるしです。人々は優先順位を付けるべきです:同じ間違いを何度もしないようにする方法。
はい、自分の経験から経験と教訓を吸収することが最も効果的な学習方法ですが、他の人の経験を利用して知識を習得することは、痛みを和らげることができるより速くて賢い方法です。結局のところ、人生は短く、人生で起こり得るすべての間違いを犯すことはできません。
ソフトウェア開発の仕事に従事することは、あなたの技術を習得する旅の始まりです。どの分野でもそうですが、さまざまな課題に直面することになりますが、正しいことをする機会があり、何かが完全に間違っているかもしれません。この記事は、ソフトウェア開発におけるこれまでのキャリアで私が犯した間違いを文書化し、それらを回避する方法についてのガイドでもあります。
必要な場合に備えて給与を保存しないでください
あなたのキャリアの軌跡は、あなたが最初の給与をどのように使うかを決定することに大きく依存します。あなたは本当にこのお金をより良い車を買うこと、あなたの服を変えること、そしてより高級なレストランに行くことに費やしたいと思うでしょう。
時々散らばることは間違いではありませんが、知識の獲得にお金を使うことを計画する必要があります。これにより、投資に対する最大の利益がもたらされるだけでなく、長期にわたって利益がもたらされ続けます。
自分を欠かせない
自分を欠かすことのできない力になりたくなるかもしれませんが、これを続けていくと、自分の成長を損なうことになります。
より高い目標を追求したい場合は、低い目標から自分を解放し、後継者があなたを成功させるように訓練して導く必要があることを常に覚えておいてください。
自己破壊的な後退
あなたが優秀で中心的で熱心な開発者になったとしても、「橋」を燃やして不必要な闘争を引き起こすことはできません。ソフトウェア開発業界は小さなサークルであり、あなたが燃やしている「ブリッジ」は、それらを最も必要とするときに問題を引き起こします。
嫌いな人と接するときでも、謙虚で誠実で、良好な関係を維持する必要があります。
知識を共有しないでください
私の経験では、技術力はチームメンバーの尊敬を勝ち取るための最も持続可能な方法です。そうは言っても、チームメンバーと知識を共有せずにテクノロジーを習得すると、必然的に悲惨な結果がもたらされます。
知識習熟は成功の半分であり、それを共有することは成功の残りの半分です。優れたプログラマーは、初心者プログラマーとコミュニケーションをとり、問題を解決する方法を示します。初心者に問題の解決方法を教えるだけでなく、なぜこの方法を使用して問題を解決するのかも説明します。
「ソフト」スキルを無視する
プログラマーは、ソフトウェア開発がチームスポーツであることを忘れることがあり、プロジェクトは人々のグループにとって共通のタスクです。彼らは並んで作業し、お互いをサポートし、共通の目標に向かって進む必要があります。
したがって、プログラマーが傲慢すぎて仕事に熱意がない、または効果的にコミュニケーションできない場合、これは自分の仕事に悪影響を与えるだけでなく、プロジェクト全体の速度を低下させるか、仕事の一部を台無しにしますこれはプロジェクト全体に悪影響を及ぼします。したがって、「ソフト」スキルが不可欠です。
テクノロジーに夢中
ソフトウェア業界は発展を決して止めません。同様に、プロのソフトウェア開発者は、業界の発展に伴って継続的に自分自身を改善し、業界と歩調を合わせ、時代と歩調を合わせて、業界によって見捨てられないようにする必要があります。
覚えておくべき重要な点は、すべての新しいテクノロジーを習得する必要はなく、新しい概念を習得して、新しい方法で問題を解決することを学ぶことです。優れたプログラマーは、コードを記述するだけでなく、新しい方法で問題を解決し、最も効果的な解決策を見つけるのに役立ついくつかの新しい重要な概念を引き続き学習します。
角を切る
「速くて汚いコード」というものはありません。汚いコードは悪いコードであり、手抜きをしたり、低品質のものを受け入れたりしないでください。
優れたプログラマーとして、あなたの真の能力は危機に反映されています。危機的状況でのパフォーマンスが通常よりも一貫性がない場合、優れたプログラマーになることはできません。
ソフトウェアのドキュメントはありません
重要なのは、ソフトウェアがどれだけ優れているかだけではありません。ソフトウェアのドキュメントが十分でない場合、人々はそれを使用しないでしょう。
締め切りが何であれ、ワークロードがいくらあっても、またはドキュメントを書かないことの言い訳に関係なく、ドキュメントのないソフトウェアは死んだ鳥です。理由はとても簡単です!!!
政治を避ける
「政治的な闘争から私を除外し、私はこの技術を実装したいだけです。」と技術者が言うのをよく耳にしますが、これはうまくいきません。
テクノロジーがあるところでは変化があります。変化がある場合、誰かは勝者または敗者として自分自身を見るでしょう。それが政治の始まりです。あなたはそれを管理し、それを回避する方法を見つけ、勝者になる必要があります。他に方法はありません。
コーディング前の過剰設計
コーディングする前の良いデザインは良いことですが、時間をかけすぎると「分析麻痺」の状況に陥ります。
完璧なデザインを見つけようとしないでください。それはプログラミングの世界には存在しません。十分なデザインを見つければ、それから始めることができます。優れたデザインは地図のようなものであり、同じままではなく、進化する必要があります。
「コード認識」の重要性を過小評価する
ロバート・マーティンによると、「クリーンなコードを書くには、無数のトリックを意識的に使用し、「クリーン」な認識を痛々しく得ることによってこれらのトリックを適用する必要があります。これらのトリックは、まとめてコードセンスと呼ばれます。」
「コード認識」は、良いコードと悪いコードを区別するのに役立つだけでなく、悪いコードを良いコードに変換する戦略を形成するのにも役立ちます。
最初のソリューションを選択してください
最初の解決策(考えるのが最も簡単な解決策)は魅力的です。おそらくそれは単純な解決策でしょう。ただし、見つけたすべてのソリューションに疑問を抱き始めると、通常は良いソリューションが見つかります。
プログラマーとしてのあなたの仕事は、問題の解決策を見つけるだけでなく、最も単純で最も最適化された解決策を見つけることです。
何をすべきでないかわからない
最高のプログラマーは、何をすべきでないかを正確に知ることができます。
彼らは、ライブラリを最初から書き直すことは、それをより読みやすくすることである、または古いフレームワークから最新のフレームワークに切り替えることが常に賢明な選択であるとは限らないことを知っています。コードの目的は、数分または数秒で習得できるほど明確である必要があります。
重要なのは、リスクを回避することではなく、正しいことを行うために慎重に選択することです。
知識の欠如を認めないでください
あなたは技術的な天才かもしれませんが、天才でさえすべての技術を完全に習得することはできません。それはほとんど不可能です。
一方、オフィスで経験の浅いプログラマーでさえ、現在の問題を解決するための持続可能で効率的なソリューションを思いつくかもしれません。優れたプログラマーはチームにソリューションを課さず、逆に、最高のソリューションが勝つ民主主義のシステムを確立します。
圧力に屈する
コードは食べ物のようなものです。高速、高品質、または低価格で、2つを同時に実装することは難しくありません。しかし、プレッシャーに圧倒された悪いプログラマーは、チームに3つすべてを一度に実行させようとする可能性があります。彼らはそれが実行可能でないことは非常に明らかですが、締め切りと他人によってなされた約束に圧迫されています。
優れたプログラマーがしなければならないことは、「真実を知る」ことであり、この真実をすべての利害関係者に最速で伝えることです。
対人関係および信頼関係を確立しない
プログラマーは一人で戦うことができますが、最高のプログラマーは対人関係に熟練している人です。
信頼と良好な対人関係を構築する最も簡単な方法は、他のチームが問題を解決できるように支援することです。そうすることで、彼らは「人間関係」を借り始め、必要に応じてためらうことなく彼らの助けを求めることができます。他の人を助けるボランティア、または他の人が彼らの仕事をできる限り完了するのを助けるボランティアは、あなたの専門的スキルを養うだけでなく、組織内でのあなたの影響力も構築します。
全体像を見ないで
プログラマーは、ほとんどの場合、コードの一部に取り組むか、既存のコードのいくつかの本番の問題を解決する可能性があります。あなたは自分に割り当てられた仕事をしているだけなのです。ただし、プロジェクト全体の一部になりたい場合は、プロジェクトの内容全体を理解するために少し時間を費やす必要があります。
最善かつ最も簡単な方法は、あなたのスキルをより速く向上させ、より大きなプロジェクトの視点にしっかりと立ち向かうことができるようにすることができるメンターから助けを得ることです。
ホイールを再構築する
優れたプログラマは車輪を再発明せず、常に既存の関数を可能な限り再利用して構築します。これにより、時間を節約できるだけでなく、コードを共有する開発者間に何らかの友情も生まれます。
あなたが解決しようとしている問題については、おそらく既製の解決策があります。したがって、タスクを完了しようとするときは、他の誰かが問題を解決したかどうかを確認してください。そうすることで、手抜きをするのではなく、作業負荷を減らします。
ビジネスルールを十分に理解していない
プログラマーは、ビジネスルールの複雑さを過小評価することがあります。ビジネスルールがわからない場合、ソリューションを効果的に実装する方法がわかりません。
プログラミング時には、強力な技術的ソリューションに焦点を当てるのではなく、ビジネス思考を採用し、その目的を達成するためにビジネス用語で実行可能なソリューションを作成する必要があることを覚えておいてください。
チームと通信しないでください
コミュニケーションには一定の規則はありませんが(実際、Limboソフトウェアプロジェクトでは、「人」はリソースと呼ばれます)、ホモサピエンスへの進化の旅の一環として、職場で人間に関連する情報を取得する必要があります。
他のプログラマーの能力と制限を理解し、彼らの興味を理解することで、より良い方法で開発を計画することができます。
健康を大切にしない
肉体的健康は、キャリアを含むすべての生活の質を向上させるための基盤です。それはあなたの創造性、活力、そして勇気を改善し、避けられない浮き沈みを乗り越えられるようにします。
健康を優先することは一度きりの仕事ではありません。つまり、それを日常生活に取り入れ、適切な食品に投資し、定期的に運動し、さらには他の悪い習慣をあきらめる必要があります。
おわりに
どんな職業にも浮き沈みがあり、それはすべてあなたの態度に依存します。あなたはネガティブなものに圧倒されるか、ポジティブな方法で受け入れられ、自分自身を向上させるために経験と知識から学びます。
カールトン・フィスクが言ったように:
「あなたが得たものではなく、あなたが打ち負かしたものです。それがあなたのキャリアの高さを決定するものです。」
オリジナル:https://levelup.gitconnected.com/21-bad-mistakes-in-my-21-year-programming-career-6d25c5b34908
この記事はCSDNの翻訳記事です。出典を明記してください。
【終わり】
よりエキサイティングな推奨事項
☞ プラットフォームは毎日7億回の訪問に抵抗し、研究開発の品質管理プロセスは完全に開示されています
☞ ドライグッズ!深層学習トレーニングのパフォーマンスを数回改善するにはどうすればよいですか?
☞「LeetCodeの問題を手動で解決し、さまざまなアルゴリズムルーチンでズボンを拾う」
☞ NGINからPandownloadに、プログラマはどのようにプログラミングするための刑務所を避けるために?
☞Web1.0からWeb3.0へ:ここ数年のインターネットの発展と今後の方向性の詳細な分析
あなたが注文するすべての「ウォッチング」、私はそれを真剣に受け止めます