(1) work with others who are more experienced and through osmosis you begin to pick up aspects of their developmental style and process i.e. how to approach a project and ultimately implement a solution (this is not possible for those that don't program for a living);
(2) hack on your own and through trial and error eventually find your way (good but perhaps not the best or only alternative).
Concept: I'm proposing a third option or hoping if it already exists. I would find it incredibly helpful if there were a resource that detailed the thought process and implementation steps that an experienced developer took in approaching a set of problems or projects. Even better I'd love to see two developers independently approach a set of small to medium sized projects, detail their thoughts along the way, and see how their development process and their implementations differ.
What do you think? Valuable? Does it exist? Worth creating?