I can't really suggest anything since I am completely new and a n00b at anything programming related, but honestly the best way to learn is to have a project in mind.
If you read a book or take a regular course without anything in mind, you learn something. That's all. You get out of the class with more knowledge but that's it. If you have a specific project in mind, something you want to accomplish, you're more willing to learn, absorb more information, and even if you don't know something but need it, you search and find it, which in itself is still helpful.
I've tried learning languages countless of times and always gave up because of lack of motivation. Then I thought of a few useful projects here and there that I could make, and started. Searching for information, buying books and gathering useful material. I ended up with something crappy but in the end I learned plenty, and it did come in useful when I wanted to make a new project.
Gradually, more and more experiments on new projects/sites made me even better, and in the end I could make something that wasn't half bad. With my newfound knowledge I was also able to improve on old projects that I messed up earlier. Surely overall my code was still, well, 'crap' for lack of a better word, but I was certainly at a higher point then I was before.
I made myself a website. It was with one of those automagical website makers so I barely had to do any work. It looked pretty but it was too complicated for what I actually needed/wanted. I gave myself the project of building a one-page site that works and displays what I want (just an index page, because I use the server for other things). At first it was a basic page, everything on one, no or little javascript. Plain and not very appealing to the eyes. After a amount of time I don't remember, I got enough reading material to make it better. Change by change, it started looking like something usable. Added animations, pretty gradients, etc. Now it's fine for what I want, and I've gotten positive comments about this small, simple yet appealing site.
With a project in mind, you get motivation to finish it, because you want it to work. Without one, you could just go "eh this is slightly boring" and end up being completely demotivated and not learning much.
Very recently a friend suggested that I make a little system for use at school to upload "quotes" from different people that we hear a lot. It's a mostly useless or pointless idea but I still took it. I realized that I needed PHP when I heard "upload", because well static javascript wouldn't do the job. After searching a few online references, I got test files up, made them work. Combined it with javascript to form primitive AJAX. The code can surely go through a LOT of optimization, but hey, it works. Used my HTML/CSS knowledge form previous projects and applied them, made something that looks 'nice' and works (
here if you care). I even proceeded to add a admin panel for managing users and quotes. You might look at it and say "well this is completely useless". I look at it and say the same. Eh, I learned plenty from making it, and my friends now have something to mess with.
With that basic understanding of PHP/AJAX I could surely build up my skills, go out and buy a book or something, and then later apply them on new projects, thus making the cycle continue. I don't know if every developer might think the same as me, but I know that this surely helped in my case, since I suffer from "I-don't-have-any-motivation-to-do-anything"-ness.
(footnote: lol sorry for this small wall of text that repeats itself like 4 times over, tl;dr get ideas for a project before starting anything)