And what's your suggestion to move to the next level of C++ programming for someone who may be called, well, an intermediate C++ programmer?
Intermediate Programmer: Understands ISO C++ reasonably well, can read and modify other's code with some luck, good with data structures and algorithms but not great
- Learn C++0x
- Learn what kind of assembly code gets generated for different construct types, maybe for x86
- Forget language nuances and get the fundamentals -- automata theory from somewhere like Sipser or Papadimitriou
- If you know OOP or at least think you do, consider how to incorporate functional programming skills with C++
- Work on something on the lines of a compiler and open-source like LLVM or GNU Toolchain
- The whole idea is busted -- the next level means more sophisticated data structures. So if you know AVL, consider learning left leaning red black trees et al
Now obviously nobody can do everything in this list without prioritizing, so we need some suggestion on what might be the best way forward.
NOTE: Thank you all for the very helpful responses.