Inventor of Ruby on Rails – David Heinemeier Hansson :
“Programming because I needed to. Programming because I gave a damn about what I was writing and I wanted it done sooner rather than later.
That’s how I learned to program Ruby. By making it my mission to write Basecamp in it. When you’re learning on a mission, the order of things come really naturally. So what exactly do I have to do to get this messages section working in Ruby? Oh, I’ll need to do a loop here. Oh, I’ll need to get something from the database there.
Before you know it, you’re half-way done with your idea and you’ve accidentally learned how to do it too.
In short, you start with little bit of something real and make it tick. Then you make it tock.
Passion overstates the issue. You don’t have to have that all-flaming, insatiable desire to get going. You just have to want a concrete, real program to work. Starting to learn something without even a shred of a goal feels premature.”
Best Learning Approach:
1- Real Projects that you have to do.
2- Avoid tutorials and books, why? cos they create programs you don’t have the slightest interest in keeping.
Resource: How do I learn to program?