When i decided to learn PHP, i went to the php.net and started learning the "syntax". And then i started "memorizing" the functions. But it turned out i was just wasting my time. Ok, i learnt some stuff of course, but just peanuts.
I decided to change my way. I set a goal; "to make a website". Then started to coding.
In the beginning, on every line i stucked. I asked myself & Google "I need to do this. how can i do it?" For almost every line, i googled for something. By time goes on, it started to take place in my mind.
On every step, i set another goal. When i ask myself "i want to do something like this, how can i do it?" , I started to (had to) learn something on CSS, JavaScript, Jquery.
For me the steps to learn are; 1. Set a goal. Make it hard! While getting to that goal, you'll learn lots of things. And finally when you reach that goal, set another one, more harder.
2. Use Google a lot ;)
edit: typo