Five years ago, Massive Open Online Courses (MOOCs) were the hot new thing in higher education. Finally, the time was upon us! The internet was set to upend our outdated modes of education!
Today, that does not seem significantly closer to materializing.
MOOCs failed to usher in an era of cheap, large-scale higher education for exactly the same reason that opencourseware failed to usher in an era of cheap, large-scale higher education ten years earlier: they solve the wrong problem. “Education” is not about learning things, it’s about signalling. People don’t study in school because they’ll need all that knowledge on the job. People study in school to show how smart and hardworking they are, so companies will hire them.
Similarly, the value of college isn’t in making students memorize factoids or formulas. The value of college is in filtering students. Employers hire graduates because colleges filter out weaker candidates, both in admissions and over the course of a four-year degree. College grads are much more likely to make strong employees.
But in shifting from a learning-view of education to a signalling-view, one thing stays the same: college seems like an awful lot of resources to burn. Surely the benefit could be captured without spending four years and two hundred thousand dollars? If anything, it seems like signalling intelligence and work ethic ought to be even less resource-intensive than learning things!
So, what might a viable alternative to college look like? If not MOOCs, then what?
Within software, one answer might be open-source contributions.
Already today, companies are eager to hire large contributors to major open-source projects. And such qualifications seem much more relevant to software engineering than a degree: working on large open-source projects is nearly identical to working on a large project at a software company. A candidate who has contributed lots of code to a popular library or framework will almost certainly be successful writing similar code for a company.
On the flip side, open-source projects are constantly in need of more hands. Even the most popular libraries have long wishlists. There’s no Common Application to get started, just pick a software package, browse the open tickets and go. The filtering comes from project owners, who will review any proposed changes or additions to the code. If your code doesn’t pass muster, re-do until it does - the project owner will likely explain exactly where it falls short. If the owners of a project are unpleasant to deal with, go contribute to a different project - though projects are unlikely to grow large in the first place with unpleasant management.
On the other hand, compare to college. There’s a lengthy admission process of questionable granularity, followed by four years of professors who may or may not be interested in helping you. If you fail, it’s a permanent black mark, even if it’s in some stupid class unrelated to your career. At the end of the day, your incentives, employers’ incentives and colleges’ incentives are not very well aligned.
So why do people still go to college, rather than taking some online programming classes and then working on open-source projects?
One answer, presumably, is that college is the default path. The open-source alternative is non-obvious, especially to people not yet in the software industry. It also lacks the flexibility of a college degree. These both seem like reasonable explanations, but neither is a serious roadblock to wider “adoption” of the open-source alternative. Of course, moronic HR departments are another issue, but that only matters at large companies.
Perhaps the most serious roadblock is simply that nobody is promoting the open-source alternative, so nobody knows it’s there. In this case, there is an obvious group who is incentivized to promote it: owners and managers of open-source projects. If Apache were to promote open-source work as an alternative to a degree, they might find a lot more helping hands.
Am I missing anything here? Is there some other reason why the open-source path would not work? Let me know.