Possibly off-topic, but I have a similar (or at least similarly described) experiences with making a big software library work like it's supposed to be working when porting it to a different operating system, working only from user documentation. First I have to familiarize myself with everything, learn how it all works together, the ways of thinking about various interfaces, the quirks of some function calls and why they are there, and it's hard and boring work, and I start writing the code and it's still boring and needs rewriting as my points of view simplify. Then at some point everything starts to click together in my mind, and I can program in all the rest relatively quickly, and solutions to all the remaining problems are straightforward, resulting from the way I put the foundation together.
|