Richard Caetano hits on something I was just working on myself today, picking the right data structure for the job, in .NET no less. Of course I struggled with the choice for a good ten minutes before I realized that the collection would hold at most three items. Doh.
To give a more serious answer to the question, the best guide I have ever found has been to write the use case for the object in question. I write out a sketch of what the clients of that class would want to do and optimize the member function signatures to make the clients job as easy as possible, and then add no more functions then necessary to implement that interface. By the time I'm done the internal data structures have become 'obvious'.
Two more books arrived today to be added to my reading pile:
Of course, the Amazon URL's I copied were originally very long:
but I had a sneaking suspicion that there was extra info in there and found that this much shorter URL works just fine:
http://www.amazon.com/exec/obidos/ASIN/059600270X/
I guess they just don't make them as opaque as they used to...
Two things lead me to believe that Google has reindexed. The first is that my page rank has risen from 5 to 6. The second is that I am no longer displayed as an advertisement for godaddy on Sam Ruby's related list.