I'm a big fan of just writing a program and learning that way, once you have the basics and understand some of the concepts and hopefully didn't learn some bad habits. I'm starting to write a program in C++ for fun, because I've used C++ in the past and read a few tutorials, but I usually didn't really use it correctly and didn't use the object orientedness of it.
Two things tutorials and other stuff taught me that I'm now trying to unlearn are "using namespace std" and "endl". Both things that I think tutorials use for simplicity, but are bad ideas in practice.