Thanks for sharing your view. I realize I share exactly the same experience of foresight vs. loss of fun. I.e. "I have no idea how to implement this" is a really hard thing to come by and it's more like "yeah, I would need to implement that, that and that...".
Somehow my POV has shifted from an energetic craftsman to the proverbial mathematician of so many jokes whom realizes a solution is feasible and loses all interest in the practical solution for the fun of it.
The problem in software engineering with this mathematicians approach is that a theoretical solution seldom stands up in real world unless a sufficient domain solution is implementable using a well defined and concise algorithm, thus the foresight is not necessarily that prescient to start with, so I realize I'm not in possession of any true understanding of value but just realize the long, long road ahead when starting something new.
It might be an idea to use a more formal, functional oriented language to implement your ideas, e.g. F# or haskell, where defining what you're going to need and want to achieve is half the work?
Though it might indeed be redundant, as designing the algorithms and understanding they'd work is enough: typing it in and seeing it work is an exercise performed so many times it's become a chore.
Somehow my POV has shifted from an energetic craftsman to the proverbial mathematician of so many jokes whom realizes a solution is feasible and loses all interest in the practical solution for the fun of it.
The problem in software engineering with this mathematicians approach is that a theoretical solution seldom stands up in real world unless a sufficient domain solution is implementable using a well defined and concise algorithm, thus the foresight is not necessarily that prescient to start with, so I realize I'm not in possession of any true understanding of value but just realize the long, long road ahead when starting something new.