Recently I've read these philosophical essays: How To Become A Hacker, by Eric Steven Raymond and Teach Yourself Programming in Ten Years, by Peter Norvig.
It's worth reading. I think that it's like hacker "mantra" ;-) I don't want to retell all that stuff. Just want to sum up.
1. Programming language learning.
"Besides being the most important ... languages, they represent very different approaches to programming, and each will educate you in valuable ways."It means that you should learn languages from different paradigms to get some conceptual knowledge.
E.g. You shouldn't learn Java and C#, or Python and Ruby. I think it's just waste of your time.
"To be a real hacker, you need to get to the point where you can learn a new language in days by relating what's in the manual to what you already know.This means you should learn several very different languages."2. Learn Unix/Linux.
I think the best way to learn is to start playing with Ubuntu.
3. Learn English and native language.
You should be able the speak and write fluently in both.
4. Persistent learning
It's the key point to success in any profession.
"To follow the path:
look to the master,
follow the master,
walk with the master,
see through the master,
become the master."