>2. Great programmers don't have to worry about learning libraries -- they just figure them out.
I would love to be able to do this. The amount of time I'll ponder on a library thinking "what are the internal mechanics of this?" can be quite frustrating. For OpenGL, for example, I have such a hard time processing a mental image of the system that I can't really figure out how to use it well.
Every library should have their first page be an explanation of how everything goes together, in layman's terms. The fact that the X server books had a huge introduction explaining everything really helped me understand the otherwise ungrokable code.
That's what examples are for. Start from working code; make it your own.
Sure it helps to have a mental model. But how to achieve that? Expect it to take time, and digging right in and looking at those examples, and changing them to see what works.
I would love to be able to do this. The amount of time I'll ponder on a library thinking "what are the internal mechanics of this?" can be quite frustrating. For OpenGL, for example, I have such a hard time processing a mental image of the system that I can't really figure out how to use it well.
Every library should have their first page be an explanation of how everything goes together, in layman's terms. The fact that the X server books had a huge introduction explaining everything really helped me understand the otherwise ungrokable code.