To see how something works, break it and unbreak it in many different ways. Sometimes the part you think does something isn't it. You don't know code well until you know how it acts when broken. Seeing what error messages mean will help you recognize them in your own code. Hotkeys are good. Ctrl-Z (undo) and Ctrl-Y (redo) are great for breaking/unbreaking code. Version control will be useful at some point.
Change one thing at a time when fixing bugs, or you'll never know what fixed it. Afterwards, explain what happened.
Do not make changes without a reason--that's a short path to cargo-culting. Read the doc, then use the scientific method--hypothesize something, then test. Rinse, lather, repeat. Otherwise, you're just guessing and will waste infinite time, like a Shakespeare-typing monkey.
When borrowing code, understand it, or it will cost you in the long run. Stripping code to the bare minimum or adapting it is a good way to know what parts do what, even if you just use the original.
Remove lines you "think" you need in your solutions and see if they still work. If a line of code isn't necessary, but is not hurting anything, remove it anyway.
I have no idea how people coded before Google, and it scares the crap out of me. Paste in your errors with variable names removed. Invest time to become a Google search pro.
If you haven't tested it, it's best to consider it broken.
Find something fun to build, the smaller the project the better. Keep working on it until you can't bring yourself to work on it any more, then repeat with a more ambitious project.
http://www.catonmat.net/blog/learning-python-programming-lan...
1 - Find something you want to build
2 - Learn everything you need along the way
3 - ???? <!-- Lots of hard work -->
4 - Profit
I built a pop-up blocker and privacy suite this way (as a single founder) and earned more than I was making at my day job, so I eventually quit.
I see a lot of "things you should know" in other posts, but in my experience, they won't be interesting until you need them. You'll have to go step-by-step, though. I'd probably start with HTML and work my way out if you're interested in web apps.