I have been teaching myself C++ for awhile now at a fairly slow pace. (The last topic I studied was the beginning of classes). My issue is I am not sure when I should move on and study other more advanced topics. Is there anything I should "do" first before moving on?? I mainly go over the programs that are in my book.
You need to make sure you understand the concepts by writing programs of your own and trying to use what you learned where appropriate. You won't learn much if you don't do that. Even if you think you have a pretty good grasp of the language after finishing your book, you'd notice that you can't even get a simple program right on your first attempt.
So practice in-between. A lot.
when learning a new technique or feature, first, write the shortest possible snippet which confirms your understanding of that feature, and then expand on it to confirm that you understand its uses in other areas
specifically, I do this as a part of TDD (test-driven development) - say, for example, I am learning how to use condition variables in pthreads; I will write a small unit test using pthreads
this helps in many ways:
1. it confirm my understanding of condition variables in pthreads
2. the snippet acts as a very practical demonstration of how to use condition variables in pthreads (gets committed into my code base)
3. ensures that the particular implementation will work properly if I compile on a different machine
initially, keep the code as simple as possible - it must compile and produce the results you expect
later, you can flourish the code to apply it to other uses