これは素晴らしい質問です。そして、これに出くわすのは上級プログラマーだけではないと思います。早期に対処することは、学習者がスキル開発を加速するための素晴らしい方法になる可能性があります。
この問題には2つの側面があります。1つは悪いこと、もう1つは実際には良いことです。
悪い-間違った解決策を選ぶ
以下に例を示します。経験の浅い開発者として、問題AとBの 2つの問題を実際に解決したことがあるかもしれません。この時点で、あなたは知らない問題があることを知っていますが、あなた自身の経験のレンズを考えると、あなたが見るものの多くはAまたはBのように見えます。
新たな問題が生じます。あなたにとって、この新しい問題は問題Aのように見えるので、通常Aを解く方法でそれを解きます。何かが正しくないと感じられ、時間がかかります。そして、あなたが仕事をするにつれて、これが新しい問題、Cであることに気づきます。それはあなたが存在することを知らなかったAのバリエーションです。
では、この間違いを二度としないために何をしますか?2つのこと:
- この新しい問題で何が違うのかを見つけてください。どのアプローチが異なる方法で機能したのか、そしてその理由を把握します。
- この問題をカタログ化し、さらに新しい問題の解決に進みます。
これは、この問題を自然に解決するのに役立ちます。10年の経験がある頃には、AからZまでの問題に精通しており、ソリューションのレパートリーは豊富です。
良い-効率
現実の世界では、期限と限られたリソースで、あなたが知っていることを使うことは必ずしも悪いことではありません:
- 問題解決プロセスの開始時に、新しい問題を既知のすべての問題と比較します。
- 兆候を認識し、これがどの問題セットのように見えるかを判断します。
- 100%の一致が得られない場合、経験豊富な開発者は、発見により多くの時間を費やすリスクと、実行の欠陥のリスクを比較検討します。時間の浪費のリスクが高すぎる場合は、自分が知っていることをそのまま進めてください。
それは悪いことではありません-リスク分析を使用して、100%の精度を超える効率を選択しています。それは毎日行われており、私たちがやらなければどこにも行かないものに縛られてしまいます。
だから、あなたの質問に答えるために:
十分な経験を持つプログラマーとして、過去の経験から「試行錯誤した」パスから常に問題解決にアプローチするこの傾向にどのように対処できますか?
- 新しい問題を探してカタログ化し続ける
- 問題に適切なソリューションを選択することでより良くなる; どのソリューションを知るのではなく、なぜ正しいのかを知ってください。
- 意思決定スキルを磨き、磨きます。 効率が正しい選択である場合があり、それらの時間の認識を向上させることは、測定可能な現実世界の利点につながります。