Two candidates apply for a software development position: One has a degree in computer science from a prestigious school. The other is self-taught with several years' experience under his belt. Who one gets the job?
Of course, there's no definitive answer to this question, but it's one that CIO's are increasingly going to have to think about.
That's because more and more software developers – and very skilled and competent ones at that – are entering the job market without any degree-level training.
What's interesting is that many of the newer and in-demand languages like HTML5, JavaScript and Apple's Swift are particularly favored by self-learners, whereas programmers of more established languages like C# and Java tend to have more formal instruction.
That's according to the global Developer Economics: State of the Developer Nation[1] survey of more than 13,000 developers carried out by VisionMobile, a London-based developer research company. If found that 46 percent of Swift developers had not studied computer science at a college, and 45 percent of HTML5/JavaScript developers also fell in to that category. In fact 29 percent of HTML5/JavaScript developers have had no training in the scripting languages at all and are completely self-taught.
By contrast, around 73 percent of Java and C# devs have computer science degrees, and about 65 percent of C and C++ devs.
[Related: Alternative education can help close IT skills gap][2]
The survey found that Massively Open Online Courses (MOOCs) offered by the likes of Coursera, Udacity and Khan Academy are playing an important role in helping would-be developers develop skills in Swift and other languages such as Python and Ruby. Many MOOCs also offer courses in iOS and Android app development, Web development and data science.
What's notable about developers who have studied a language through a MOOC is that many of them already have bachelor's degrees of some sort or another, and many were already software developers.
"The typical Coursera learner taking a programming or other technology course has a bachelor's degree, is currently employed, and is between 22 and 35 years of age," says Kevin Mills, a Coursera technology vertical manager. "Among these learners, it is about an even split between those looking to begin a new career in programming versus those seeking to advance their existing programming skills."
That's echoed by Oliver Cameron, vice president of engineering and product at Udacity. He says the company sees a lot of programmers come to Udacity to learn new programming languages or gain new skills in languages they already work with.
"But we also see a lot of people in nontechnical fields like event management or art or music learning to code with Udacity and making the leap to a full-time technical job," he adds.
Alternatives abound
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."
[Related: 5 tips to avoid scaring away top tech talent][3]
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.
Aaron Pollack is another example. While working doing tech support for a startup he began learning Python in his spare time – through self-study, using a tutor he found on Craigslist, on two six-week courses offered by Coursera, and at a coding boot camp.
"Doing the algorithms classes on Coursera made me a stronger applicant for the bootcamp and for jobs afterwards," he says. "But I really learned programming by hacking on different apps, going to events and meetups, and bothering as many people as I could about technology."
While attending computer science courses at a college may cost tens of thousands of dollars per year, anyone can learn to code for the price of a text book, or for free, by accessing online courses offered by MOOCs. For a more formal qualification, MOOCs offer qualifications for far less than typical university fees. For example, Udacity offer courses leading to a "nanodegree" qualification for $199 per month, with half refunded if the course is completed in under a year, or a course with a guaranteed job within six months of graduation – or a full refund – for $299.
So ... degree, or no degree?
So going back to the original question, which is more attractive: someone with a computer science degree or someone with more quickly acquired but more language specific coding skills?
"You certainly get more depth of learning with a computer science degree, but shorter courses have an emphasis on more current skills," says Gartner's Lowendahl.
"When it comes to productivity and ingenuity, you can get that from either type of course. At the end of the day it comes down to a person's competence and grit," he says.
References
- ^ Developer Economics: State of the Developer Nation (www.developereconomics.com)
- ^ Alternative education can help close IT skills gap (www.cio.com)
- ^ 5 tips to avoid scaring away top tech talent (www.cio.com)