Why You Can’t Learn To Code Without Open Source

A year into Facebook’s Open Academy, one innovation stands out.

Why You Can’t Learn To Code Without Open Source
[Image: Flickr user]

Tech companies want to see computer science students learning the tools and techniques necessary to contribute to large-scale programming projects, as well as the algorithms and theory traditionally taught. So to make that happen, Facebook launched a program last year called Open Academy, letting CS students from around the world earn course credit by contributing to major open source projects. A year later, we checked in to see how it’s going.


Why Free Isn’t Good Enough

The idea of making education free online isn’t new, but Open Academy does the concept one better by giving students real-world projects to work on.

“I think the opportunity to have a superior learning experience while contributing something to society is just a natural win,” says Open Academy founder Jay Borenstein, a lecturer at Stanford who also holds the title “education modernizer” at Stanford. “I think it’s not lost on the students that in large part they’re using freely available frameworks or libraries of some kind that are pretty critical components of whatever they’re building.”

GitHub worked with Facebook at the launch of the program, and is also a staunch open source supporter. The company offered free accounts and training to students and schools looking to use its code repositories in the classroom–something that GitHub cofounder Scott Chacon says grew out of his collaboration with Borenstein.

Open Academy kicks off each session with a weekend hackathon to get teams on the same page, works with participating universities to make sure students can get credit and fit the program into their academic schedules, and assigns student teams industry mentors to keep them on track. And just as in industry, it’s critical to get student developers motivated and feeling capable from the moment they dive into a new codebase, Borenstein says.

“There’s a ramp-up process where the students start off orienting themselves with the codebase,” he says. “Part of the subtlety of being a good mentor is first introducing bite-size issues: things that the students can bite off in the early going,” but are still part of a larger project that has real impact.

In one successful project, students helped make the Facebook-created, open source HipHop Virtual Machine compatible some of the web’s top PHP codebases, Borenstein says.


“HipHop is a technology where you can compile PHP to bytecode and it performs a lot faster, and the students have made it compatible with the 20 most popular PHP frameworks that are out there,” he says. “The mentor did a good job of compartmentalizing different aspects of the syntax compatibility that need to be worked on, giving them things that were achievable in the early going and then broadening that toward the end.”

That’s training that will help the students jump into new projects throughout their careers, he says.

“There’s a skill to that–just dropping yourself in there,” says Borenstein. “I think you get better at that over time.”

Getting Kids On Git

For GitHub’s education program, too, the challenges go beyond simply finding the server space for the 100,000 free accounts GitHub is granting students, says Chacon. In the beginning, it was possible to manually activate student and class accounts on a case-by-case basis, but that quickly grew impractical as the program grew.

“I would go in and flip a switch for Jay or whatever, and that very quickly was not scalable,” Chacon says. “Scaling the giving away free accounts was actually a technical challenge.”

Now, the process is heavily automated, with workers from Amazon’s Mechanical Turk helping to validate students’ eligibility, he says. And once students and teachers are signed up, the company helps make sure they know how to use GitHub and the underlying Git source code version control software effectively.


“We hired an education liaison, and he goes around to multiple universities and teaches them how to use GitHub effectively and how to use open source effectively in the classroom,” Chacon says.

Not surprisingly, not all teachers and schools are eager to have their students’ homework assignments open source or even stored on private sections of GitHub’s cloud, he says.

“Just being able to get people to use GitHub successfully has been a little bit more involved than in the corporate world sometimes,” he says, explaining some privacy and intellectual property-conscious universities prefer to store student work and other materials behind their own firewalls.

But students increasingly come to class understanding the importance of mastering tools like Git, say both Chacon and Borenstein. And both agree the relationship between open source, software engineering, and academia is rapidly evolving.

“There are challenges, but those are definitely outweighed by the benefits,” says Borenstein, explaining Facebook hopes to develop a template for Open Academy-style projects that other organizations can use.