Having looked quickly at GML, if you can do what you want to do using it then I'd probably say stick with it for now. It'll be a whole lot easier to achieve stuff that way than it would if you leapt into C++, and making working stuff in GML will probably do far better for your motivation than trying to make the same game in C++ straight off.
Don't confuse learning programming with learning a language. Programming is definitely something that can and IMO should be taught formally, but the focus there is really on the formal theory -- algorithms, data structures, that sort of thing. The language used to teach all that stuff is fairly incidental.
Learning a language, on the other hand, is far better done informally and by experience IMO. Find something you want to write, and go do it. Try and match it to your skill level -- if you want to get started with C++ then start with a "
pick a number between 1 and 100"
game rather than a platformer -- but have a definite and desirable goal in mind when you sit down, then go and research whatever you need in order to achieve it.
One doesn't necessarily require the other, although they are complementary. You can describe a whole lot of programming theory in pseudo code, but you can't test any of your assumptions. You can write a whole lot of working code without understanding the theory, but it'll probably be bloated, buggy and unmaintainable.
So I guess to actually answer your question, a recommendation for learning C++? Start simple (
really simple), and keep the projects small and fun. Do what you want to do, not so much what some book says you should do.
[Last edited by Tuttle at 03-19-2008 11:16 AM]