I've recently seen a lot of interest in people who are looking to learn programming. So I put together a quick guide with lots of help from other people: http://everydayutilitarian.com/essays/learn-code
Let me know (via comments here or email - peter@peterhurford.com) if you try this guide, so I can get feedback on how it goes for you.
Also, feel free to also reach out to me with comments on how to improve the guide – I’m still relatively new to programming myself and have not yet implemented all these steps personally. I'd cross-post it here, but I want to keep the document up-to-date and it would be much easier to do that in just one place.
Immersion work well for beginner language learning because natural languages are fine with loose, sloppy, full of errors mishmash. The point is to get going and fix all problems later. I don't think this would work well with programming languages.
This seems pretty similar to the "search for what you want on StackExchange / GitHub and copy/paste" approach to learning to code, which appears to work fairly well.