you miss the point again, there is documentation for that. And I don't expect new college grads to be thorough with everything. for example, if you get into concepts like stack, heap, code segments and debug symbols and things like that you can argue that those concepts are basic fundamentals of object linking and loading that every operating systems text book in college has. but that does not mean that you expect a guy to know it until he actually gets his hands dirty into core debugging and heap analysis. and its not required too because it can be learned in a couple of months.The point is without the knowledge of how std::list, std::vector, std::set, std::multi_set work and the differences between them, how does a programmer know which one to use for a particular situation. We don't expect everybody to write these things from scratch. However, we do expect people to know how these work and when/how to use any of them.