One thing you should keep in mind is that you have to move on to C++ to become a good programmer. Start with any of the languages, then do C++ for a couple of years. Otherwise, you will never be able to work in a low level language, since you will be pampered by all the simplicity of these languages.
There's so much in C++ that is specific to C++ that it doesn't even begin to make sense. If you want someone to learn OO, send them to Ruby or Smalltalk. If you want them to learn about performance and deep machine magic (pointers and such), send them to C. In either case, they can learn what they need to know without getting bogged down in a really obtuse pile of bolted-on features and syntax. It's not a bad systems language, but it's not a learning language and never will be.
And the whole "you'll never be able to blah blah" crap is just a hugely stupid idea. Don't think of your learning process as preparing to do something. Pick a project and start working on it--Open Source gives you access to millions of lines of code. There is no better way to learn to program than through working on programs. Be useful as soon as you possibly can, and you'll find that people are willing and eager to help you learn, because they see that the better you become the more useful you are to their project.
A strong grasp of concepts and logic with the ability to quickly pick up new languages makes you a good programmer. Learning many different languages will arguably make you a better programmer.
Knowing C++ is not a requirement to, nor has much to do with, being a good programmer.
You will understand the hardware better if you learn C and Assembly. However, except for the syntactic sugar aspects of C++, it degenerates into a boondoggle because of all its weirdness and corner cases. The buggiest software has always been written in C++. It has the most complex language spec and is the hardest to debug because of those obscure corner cases. As programming consists mostly of debugging, extensive use of C++ virtually guarantees needless pain, wasted time, and bugs that won't go away.