C++ Deep Dive: Relearning Programming from Scratch