Taking an online course can be a pretty lonely and thankless task. The learning approach is often ported right from university and emphasizes individualized learning and accountability. Many of the free online courses have students sign honor code agreements which state that all their work is completely their own or they are otherwise ineligible for end-of-course certifications. It's no wonder that so many students drop out before the finish. Motivation is hard to come by with no one cheering you on and the approach barely follows how people work in the real world anyway.
The workplace demands a more significant level of collaboration; very few projects are done in isolation. Programming circles, in particular, have successfully used a project-based pairing methodology for many years. The idea is that when you put two programmers at one computer (with two mice, monitors, and keyboards), you reap benefits in excess of the sum of their combined hours. Typically, one programmer is the "driver" and writes the code while the other "navigator" reviews the code and guides the path forward. The result in a production environment is a more coherent, efficient and bug-free code base.
The applications of pairing methodologies are even more interesting in the learning space. Forcing two students to hack on a project together which is designed to test and expand their skillets provides a whole new set of benefits. The most painful parts of the learning curve in technical education are when you hit the wall on an idea or a bug and get stuck on Google for hours trying to find a solution. Often, when you work with someone else, they have a more or less complementary understanding of the material and can get you through the rough patch without much issue. This saves a lot of time and accelerates the learning process measurably.
Pairing isn't easy for a whole host of reasons. Even in person, differences between people can make the process difficult and it certainly takes some getting used to thinking with a collective brain. Some people are just geared more towards finding their zone and executing in silence. But when the material is new and the learning curve is particularly jagged, the benefits outweigh the difficulties and the methodology has been proven for hundreds of students in the many coding bootcamps that have recently taken the programming world by storm.
So we have a current approach to online education which is unnecessarily restrictive and an underutilized learning methodology which has found great success in certain circles. How do we bridge the gap? The technology for executing this marriage has grown in fits and starts but it *is* here. It's time to forget about a silod approach to learning and embrace collaboration as a fundamental teaching tool with significant benefits. That's the future, now.