私はPHP 1年の経験を持つプログラマーです。キャリアを始めたばかりなので、今はたくさんのことを学んでいます。私は少し完璧主義者だと言えます。
問題が割り当てられたとき、私はグーグルから始めます。そして、解決策を見つけたとしても、2〜3の選択肢が見つかるまで、より良い解決策を探し続けます。それから私はそれを学び始め、最高のパフォーマンスのソリューションを選択します。
私は多くのことを学んでいますが、このプロセスにより、私はパフォーマンスの低いものとしてラベル付けされます。
私の質問:
経験豊富な人が周りにいる場合は、2時間から2年の範囲のソリューションを備えたソフトウェアの多くのことを想像できるので、何かにかかる時間の見積もりを教えてくれるかどうか尋ねることができます。その間は、リソースに応じて、さまざまなオプションが理にかなっている場合があります。誰かが何かが数時間かかるはずだとあなたに言い、あなたがそれを成し遂げることなく数週間を過ごした場合、これはあなたが合理的な期限内に物事を成し遂げるためにもっと助けが必要かもしれないというサインかもしれません。この種のロールモデルの例として、 "ダクトテーププログラマー" について読むことをお勧めします。
完璧主義をやりすぎると、キャリアを妨害する可能性があります。同時に、適度に保たれ、定期的に本当に改善しているのであれば、そのように見ることができれば、それは悪い強みではありません。
うーん....妥協はどうですか?
あなたは今実用的な解決策を手に入れました、あなたがそれらに気付くようにもっと良いオプションを探しましょう、しかしもっと良いものを使ってください次回。
ソフトウェアプロジェクトを推進する要因はたくさんあります。正確さ、柔軟性、コスト、スピードなど。すべてのプロジェクトで、必要なものに応じてこれらの要素について妥協する必要があります。
たとえば、私が現在取り組んでいるプロジェクトは、正確さではなくスピードによって推進されています。つまり、プロジェクトにはいくつかのバグを許容できますが、できるだけ早く立ち上げる必要があります。したがって、テストケースの作成に多くの時間を費やすことはありません。
したがって、開発者として、この妥協の技術を習得する必要があります。場合によっては、あまり良くないソリューションを迅速に実行することで、「最良のソリューション」よりもプロジェクトに利益をもたらすことができます。時々。
あなたの場合、私はあなたがプロジェクトの要件を満たし、あなたの自由な時間に学ぶためのより良い解決策を見つけることをお勧めします。あなたは良い習慣を持っていますが、私たちの雇用主を犠牲にして学習に多くの時間を費やすことはできませんが。
私が提案するルーチンの主な変更は、既成の解決策を探すために年齢を費やす前に、問題に対する独自の解決策を理解して開発しようとすることです。
OK、不必要に車輪の再発明をするべきではありませんが、コードを最初から作成しないと、能力が大幅に低下します。
私の本のコードの正確さはオプションではなく、必須です。スピードは経験の副産物です、それは来るでしょう。
私は物事を正しくやりたい/完璧主義者であることを理解していますが、ある時点でコードを書き始めたいという衝動に駆られませんか?計画は素晴らしいです。新しいことを学ぶことは常に奨励されるべきです(しばしばあなたは自分の時間にそれをしなければなりません)。コーディングの衝動を養うか、MBAを検討してください(問題はありません)。
あなたは「たくさんのことを学んでいたが、このプロセスはあなたを貧弱なパフォーマーと見なす」と言った。
あなたはある方法であなた自身のパフォーマンスを測定していて、あなたの雇用主は別の方法でそれを測定しています。違いを判断し、気にするかどうかを判断します。成績が悪いというレッテルを貼られたほうが、学習と比べて問題ではないと感じた場合は、無視してください。パフォーマンスの悪いとラベル付けされることがあなたにとって重要である場合、あなたの学習があなたのパフォーマンスのより価値のある尺度であることを彼らに納得させるか、彼らが提案しているパフォーマンス尺度を通して改善してください。
ただし、これを考慮してください。
多分あなたはあなたが思っているほど多くを学んでいないでしょう。 1年前よりも優れたコードを作成できますか?それとも、当時と同じ問題を解決するためにGoogleに依存していますか?
何でも上手になる方法はそれを練習することです、そしてあなたが説明したプロセスはプログラミングを練習するのではなく、グーグルコードスニペットを練習することです。確かに、同様に解決された解決策を探すことはプログラミングの仕事の側面ですが、プログラミングの中核はコードを生成することによる問題解決です。