Це чудове питання. І я думаю, що не просто старші програмісти стикаються з цим - його вирішення може бути чудовим способом прискорити розвиток навичок.
У цьому питанні є дві сторони - та, яка погана, і насправді хороша .
Погано - вибір неправильного рішення
Ось приклад - як недосвідчений розробник, ви можете мати тільки дійсно вирішити дві проблеми до того , проблеми A і B . На даний момент, ви знаєте , є проблеми , які ви не знаєте, але , з огляду на об'єктив вашого власного досвіду, багато того , що ви бачите , як виглядає це може бути або B .
Поряд виникає нова проблема. Для вас ця нова проблема виглядає як проблема А , так ви розв'язати цю проблему так , як ви зазвичай вирішити A . Що - то не відчуває себе добре, і це займає більше часу, і , як ви працюєте ви в кінцевому підсумку розуміючи , що це нова проблема, C . Це варіант А, якого ви не знали, що існує.
То що ж робити, щоб не помилитися знову? Дві речі:
- З’ясуйте, чим відрізнялася ця нова проблема. З’ясуйте, які підходи могли працювати по-різному і чому.
- Каталогізуйте цю проблему і переходьте до вирішення нових нових проблем.
Це має допомогти вам природно вирішити цю проблему. На той час, коли ви маєте 10-річний досвід, ви знайомі з проблемами від A до Z і ваш репертуар рішень великий.
Добре - ефективність
У реальному світі, з обмеженими термінами та обмеженими ресурсами, використання того, що ви знаєте, не завжди є поганим:
- На початку процесу вирішення проблем ви порівнюєте нову проблему з усіма проблемами, які ви знаєте.
- Ви спробуєте розпізнати знаки та вирішити, який набір проблем це виглядає.
- Якщо 100% збігу неможливо здійснити, досвідчений розробник зважить ризик витратити більше часу на розкриття проти ризиків можливого несправного виконання. Якщо ризик витраченого часу занадто високий, то ви просто продовжуйте те, що знаєте.
Це не погано - це за допомогою аналізу ризиків вибирати ефективність із 100% точністю. Це робиться щодня, і всі ми були би прив'язані до речей, які нікуди не дістають нас, якби ми цього не зробили.
Отже, щоб відповісти на ваше запитання:
Як програміст з пристойним обсягом досвіду, як можна боротися з цією тенденцією завжди підходити до вирішення проблем із "перевірених і правдивих" шляхів з минулого досвіду?
- Продовжуйте шукати та каталогізувати нові проблеми
- Отримайте кращий вибір правильного рішення проблеми; замість того, щоб просто знати, яке рішення, знайте, чому це правильно.
- Практикуйте та відточуйте свої навички прийняття рішень. Іноді ефективність - це правильний вибір, а покращення визнання тих часів призведе до вимірюваних переваг у реальному світі.