Это большой вопрос. И я думаю, что это не только старшие программисты, которые сталкиваются с этим - раннее решение может быть отличным способом для ученика ускорить развитие своих навыков.
У этой проблемы есть две стороны: одна плохая, а другая действительно хорошая .
Плохо - выбор неправильного решения
Вот пример - как неопытный разработчик, вы можете иметь только действительно решить две проблемы до того , проблемы A и B . На данный момент, вы знаете , есть проблемы , которые вы не знаете, но , учитывая объектив вашего собственного опыта, много того , что вы видите , как выглядит это может быть или B .
Вдоль новой проблемы. Для вас эта новая проблема выглядит как проблема А , так вы решить ее так , как вы обычно решить A . Что - то не чувствует себя хорошо, и это занимает больше времени, и , как вы работаете вы в конечном итоге понимая , что это новая проблема, C . Это вариация А, о которой ты не знал.
Итак, что вы делаете, чтобы не повторить эту ошибку? Две вещи:
- Выясните, что отличало эту новую проблему. Выясните, какие подходы могли работать по-другому и почему.
- Каталогизируйте эту проблему и переходите к решению новых проблем.
Это должно помочь вам естественным образом решить эту проблему. К тому времени, как у вас есть 10-летний опыт работы, вы уже знакомы с проблемами от А до Я, и у вас обширный перечень решений.
Хорошо - Эффективность
В реальном мире, с крайними сроками и ограниченными ресурсами, использование того, что вы знаете, не всегда плохо:
- В начале процесса решения проблем вы сравниваете новую проблему со всеми проблемами, которые вы знаете.
- Вы попытаетесь распознать признаки и решить, на какую проблему это похоже.
- Если 100% -ное совпадение не может быть достигнуто, опытный разработчик будет взвешивать риск тратить больше времени на обнаружение против рисков возможного ошибочного выполнения. Если риск потерянного времени слишком высок, тогда просто продолжайте с тем, что вы знаете.
Это не плохо - он использует анализ рисков, чтобы выбрать эффективность более 100% точности. Это делается каждый день, и мы все были бы связаны тем, что нас никуда не привело, если бы мы этого не делали.
Итак, чтобы ответить на ваш вопрос:
Как программист с приличным опытом, как можно бороться с этой тенденцией всегда подходить к решению проблем с «проверенных и истинных» путей из прошлого опыта?
- Продолжайте искать и каталогизировать новые проблемы
- Получить лучший выбор правильного решения проблемы; вместо того, чтобы просто знать, какое решение, знать, почему это правильно.
- Практикуйте и оттачивайте свои навыки принятия решений. Иногда эффективность является правильным выбором, и улучшение понимания этих времен приведет к ощутимым реальным преимуществам.