Я частенько задумываюсь о том, как я подхожу к решению той или иной задачи. И не важно с чем эта задача связана. Пусть это задача на программирование или же обычная бытовая задача. Но ведь любая проблема требует хоть какого-то подхода. В моем случае решение происходит в три этапа.
Интуитивный. Это самое первое, что приходит в голову. Как только задача была понята, тут же в голове рождается какое-то решение. И ведь чаще всего это решение кажется достаточно логичным и верным. Когда это происходит, то обычно о другом и не задумываешься. Однако это неправильно. Это не марафон и не решение задачи на скорость. Поэтому нужно встряхнуться и перейти ко второму этапу.
Технический. Когда интуиция закончила выдавать варианты и мозг слегка обдумал проблему, то самое время перейти к решению задачи через поиск закономерности. В этом случае для решения можно использовать знакомые подходы, применить свою логику или выработать некий алгоритм. Т.е. на этом этапе мы должны подвергнуть анализу проблему, обдумать возможные варианты и принять обдуманное решение. В этот момент обычно приходит понимание того, что интуиция это хорошо, но не всегда. А ведь мы были уверены в ней. И теперь обдуманный вариант кажется лучшим решением, но есть ещё один способ, который необходимо применить.
Нестандартный. Каким бы хорошим не казался логичный и обдуманный вариант, вы обязаны задуматься о необычном решении. В этом случае можно попробовать использовать самые нестандартные способы, которые в обычном случае были бы неуместны. Довольно часто необычные варианты позволяют взглянуть на проблему иначе и натолкнуть на другое, менее очевидное решение. К примеру, попробуйте применить для решения задачи по программированию графы, файлы, рекурсии, пойти от противного или просто выбрать сложное решение. Это довольно действенный способ.
В итоге, пройдя через все три этапа, вы сможете найти наиболее оптимальное и удачное решение вашей проблемы.