You can't be serious!!
1. I don't know about US/China/Europe but your certificate covers material (we did not have templates) taught to me in high school - CBSE board India and like most Indians, I had a pathetic teacher. So, I basically taught myself. The way I did initially was to learn syntax , read briefly through a school text that was passed down 5 years and was shared among 4 (luckily, out of which 2 were only interested in the few rare girls in my CS class and the other had just found out that Biology interests him) and play around on the computer for hours on different projects I could think of. I read the errors I made while compiling them and learned by correcting them by trial and error. My final projects in high school in
C++ itself were :
1. Solve a Sudoku puzzle by asking the user to create one.
2. Create an automated school timetable.
3. Find inverse of a nxn matrix.
The reason is that
C++ is fundamentally an easy language. There are a few tools and there are precise reasons or applications of these tools and there is the tool's syntax that can be found on the internet in seconds literally. Then, why would I pay you 1500 USD to learn this ? I'd rather pay my internet guy 1500 USD and secure internet for the next 15 years (yes, 1500 USD buys me 500 kbps internet worth 15 years where I live)!!
Moreover, these tools provide for multiple ways of doing stuff. For instance, I never liked using pointers and still can do most of the stuff. You give me 5 reasons why it is hard to self-learn and I'll respond. Frankly, even if you have a below average IQ and have an interest in programming (which generally emanates from the fact that you're lazy and want the machine to the bull's work), you should be fine. I have so many Indian friends of this kind in the US making a solid pay, going to bars and fixating over drunk women and slowly but steadily putting on weight and a bear belly due to their lack of exercise and sedentary lifestyle which is the flip-side of the inherent laziness that attracted them to programming in the first place! And, they love to brag about it almost to say, who cares if we have a below average IQ; we're still living the American dream..
The only part where
C++ probably gets difficult is when you need to design efficient algorithms to code in
C++. It is hard to self-learn what differences in coding strategy come up due to the fact that, say, pass-by-value and pass-by-reference or whether pass-by-reference is possible from an efficient memory allocation perspective.