Teach Yourself Programming in Ten Years - Peter Norvig (Armenian Here)
The key is deliberative practice: not just doing it again and again, but challenging yourself with a task that is just beyond your current ability, trying it, analyzing your performance while and after doing it, and correcting any mistakes. Then repeat. And repeat again.
Weird Languages ~ Paul Graham
When people say that in their experience all programming languages are basically equivalent, they're making a statement not about languages but about the kind of programming they've done.