1) Stop being lazy.
2) Write code.
3) Write more code.
4) Go back and look at the awful code you wrote in step 2. Unfuck it. Make it faster. Make it use less memory. Make it more secure. If it's a script, make it OOP. If it's OOP, try to make it procedural.
5) Repeat.
If you're stuck on the bullshit tutorials, pick something you're interested in and write a program that involves that subject. Make a system to catalog your music/movie/porn collection. Write a browser plugin that downloads YouTube videos, whatever. If you find yourself doing the same repetitive task, figure out how to automate it. It doesn't really matter what you write, just write code.
As a corollary to that last statement, try googling "best way to <do something> in <language>". Look at the options, and don't settle for the first half-assed answer you see. While that's fine for prototyping or getting your feet wet, there are often lots of problems with the basic examples. Find a faster, better, more secure way of doing it. Then, test that shit and find what breaks, and fix it. Supply invalid input. Break things, fix them, then learn how to prevent them from breaking again.
The answers are out there - you may have to search for specific answers, but you can pretty much write any program in any language by searching StackOverflow and the likes. Just google it.
"how to save to a file in <language>"
"how to parse HTML in <language>"
etc.
Learning a computer language is just like learning any other language. You can sit in class, read about it, and wish you were fluent all day long, but until you get out there and start using it, you'll never know shit.