As an alternative to MOOCs, some would-be professional coders are also turning to intensive "coding boot camps" which often last just a week or two, focusing on specific coding skills.
The idea of employing a developer who is self-taught or who has attended a boot camp or online course may be alarming – after all, who would want to consult a physician who hadn't been through medical school?
Jan-Martin Lowendahl, an education analyst at Gartner, points out that computer science courses teach much more than specific language skills. "At university in a computer science course the emphasis is on learning skills like programming logic, not particular languages. You get much more depth on a computer science degree course."
The flip side of this is that there is great inertia when it come to the actual languages that are taught – many still teach FORTRAN, he adds.
There's an argument to be made, however, that teaching FORTRAN is a little like teaching Latin to language students: Studying it may not be useful in its own right, but it brings a deep and broad understanding of the discipline as a whole, and makes learning to code in other languages more efficient.
Who’s got time (and money) for a full degree?
That may be true, but studying for a computer science degree is a luxury that many people can't afford – both financially, and in terms of time – particularly if they already have a bachelor's degree.
"Many people simply don't have the time to go to [college] to learn new skills, and there is a question mark over the value of a formal diploma in a fast-changing world," says Lowendahl. "At the same time, software development has always been a realm that is suited to self-teaching and learning by doing. People who are drawn to software development tend to be good self-learners."
Daun Davids is a good example of this type of software developer. She earned a bachelor's degree in computer science and worked as a software engineer for many years before taking time off to homeschool her children and finish her master's degree in Computational Science and Robotics. When this was finished, she decided that she was interested in resuming her programming career as an Android developer.
"I was trying to learn Android development on my own but most of the information I found was very basic or outdated. Then I saw that Coursera was starting a Mobile Cloud Computing with Android specialization so I signed up," she says.
The course took a year to complete and Davids says she then found work almost immediately as a freelance Android developer.
Sign up for CIO Asia eNewsletters.