I talk a lot about the frustrations of learning to program; there are a number of reasons why there may be more than the bare minimum going on here, but there is always some frustration in programming.
So today I thought I'd share some alternative routes to getting into programming, other than this somewhat foolhardy "Dive right in and use the Internet!" approach which I've taken.
First off, there are real live courses at actual Universities, or FE Colleges near you. However, costs can be prohibitive, and a lot of the time you need to be in a classroom, so working it around a job isn't exactly practical.
So we move on to distance learning. Well, there's always the Open University; but their costs can still be substantial.
There are also books like Dummies Guide to... or a similar idea for Android specifically. I learned a bit about Visual Basic for Microsoft Excel from a tome that seemed big enough to be the Liber Paginarum Fulvarum**, though I got more from diving into already-written software and then referring to the book when in trouble than from working through it in any systematic way.
Moving right along, there are also respected academic institutions who have some or all of their courses available online. That could be very handy, but there's no interaction, so it might not be much more rewarding than a book or similar.
There's also a Wiki-based solution and other similar efforts out there; and for anyone who has a grasp of the basics but wants to get into more real problems, there is the excellent OpenHatch, set up to prepare people for getting involved in Open Source projects.
Finally, there is the one that I am trying at the moment, which I discovered through an excellent blog I read called Unequally Yoked; Leah who blogs there has recently been taking courses including How to Build A Search Engine over at Udacity and recommended it highly. The next round of classes is starting on Monday (the 16th April) so if you want to have a crack at it, come join the party!
Because I have previous programming experience but no knowledge of Python, I've gone for How To Build a Search Engine (which is an introductory class), Programming Languages and also Designing Computer Programs.
For the inexperienced I'd advise starting with How to Build a Search Engine and leaving it at that. I may find that three at once is a tad ambitious, but I had to resist the temptation to sign up for all six, so I think I'm doing well!
*Slight misquote of Euclid, speaking to Ptolemy "Sire, there is no royal road to geometry"; the meaning remains - if you want to learn something useful, expect it to take a while. Viz the 10,000 hour rule.
**by Achmed The I-Just-Get-These-Headaches