I picked carpentry....
Really in my mind it is more like cabinetry making or boat building. In my mind to be a success at those you first have to build up your jigs and tools.
Programming is sorta the same thing. Once you have your templates and tools in place and set up you can begin. Like boat building and cabinetry a good plan before you start can be a big help but in some really talented cases is not necessary.
My grandfather for instance, who was a bricklayer and mason by trade, decided to build a boat one fine day. He cut down some Maine oaks, hew the timbers, stacked and dried them. When he felt the wood was ready he and my mother laid the frames for the boat out on my grandmother's kitchen floor. My grandmother wasn't amused by that but she knew better than try and stop my grandfather.
Out of that came an 18 foot cabin cruiser that was never finished because my grandfather always had a better idea of how he wanted it configured. He built the boat without any plans.
Peter L. Berghold -- Unix Professional
Peter -at- Berghold -dot- Net; AOL IM redcowdawg Yahoo IM: blue_cowdawg