It’s well known that software engineers are in high-demand right now with startups and companies around the world. And if they’re not able to hire from the existing talent pool, companies are looking at the next generation – those computer science majors seeking to make a name for themselves in the industry. However, after four years of post-secondary academia, are these students really prepared for the working world?
Stanford professor and Facebook education modernizer Jay Borenstein doesn’t seem to think so. As a result, he’s organized the Facebook Open Academy, a program that is designed to give students practical software engineering experiences before they graduate, all while working on open source projects.
Now in its second year, Facebook Open Academy has brought together 250 students from 25 universities around the world with faculty and industry mentors.
One of the important things to realize is that while it’s called Facebook Open Academy, it’s really not a Facebook initiative per se. Borenstein worked with the company’s CTO Mike Schroepfer to help grow the program and provide them the necessary resources needed to get close to real-world experience as possible.
Preparing students for work
Borenstein tells us that the idea started as an experiment to see if it was possible to help computer science students gain relevant exposure to the type of work that they’d be doing in the industry. The issue isn’t that engineers aren’t being hired, but rather that traditional universities aren’t providing the necessary skill sets that students need, such as project estimation, revision models, and standards for writing code when it’s out in production.
It’s argued that computer science students are able to learn more from the Open Academy program than their entire college experience. This is because students will have the opportunity to be supervised by an industry expert vetted by Borenstein’s team and will provide the necessary 1:1 mentorship that’s needed in order to survive in the real-world.
University of Helsinki researcher and faculty advisor Fabian Fagerholm tells us that the Open Academy supplements the teachings universities provide students. He equates the educational curriculum with programs like Borenstein’s as being a marriage of “theory and practice”. Students only have a brief period of time learning about a profession and may oftentimes not get the required practice of those skills prior to joining the workforce. Facebook Open Academy gives that chance and also is just as useful for the mentors and faculty advisors as it is for the student participants.
This year’s program brings together students from 25 universities, including Carnegie Mellon, Columbia, Harvard, MIT, Princeton, Stanford, University of Illinois at Urbana-Champaign, University of Washington, Universidade Estadual de Campinas, University of Singapore, Tampere University of Technology, Waterloo, University of British Columbia, University of Tokyo, Imperial College London, and others.
Why open source?
When asked about the focus on open source, Fagerholm says it’s unavoidable in any computer science job. Whatever kind of software you’re making will probably use some open source framework or tool to do the job:
It’s never a wrong choice to use open source framework to teach computer programming. It’s not the only choice, but never the wrong choice.
So if the goal of Open Academy is to help better prepare students for the real world, some might wonder why Facebook is involved and not a coalition of other tech companies. Borenstein says that the Facebook brand was important to the program since its mission resonated with Open Academy — both organizations cherish transglobal connections, not to mention the social networking company’s support of open source.
In January, Facebook CEO Mark Zuckerberg spoke about how important it was for Facebook to contribute to the open source ecosystem. At the fifth Open Compute Summit in San Jose, he said:
“When you’re the first company to design something, sometimes there’s an advantage to keeping it proprietary and secret. But if there are companies that have done some of this work, especially when we’re getting started, then from our perspective, it was just much better to collaborate with the community and work together to do something that could would blow past what anyone else have done. That was kind of like a no brainer of a practical strategy that we wanted to execute.”
Facebook has certainly contributed to the open source community. Among the most notable of its contributions is its Open Compute Project, which seeks to utilize the power of the crowd to improve server performance for applications and platforms. The initiative has gained momentum over the past three years as notable tech companies have signed on board to participate, including Microsoft. Based on the knowledge shared, Facebook says that the Open Compute Project has helped it save $1.2 billion in infrastructure costs.
Other open source efforts include Presto, its homegrown SQL query engine, Origami, a free design prototype for the Quartz composer, and more spread across infrastructure, mobile, and Web.
However, there’s more to the Open Academy’s open source focus than just Facebook. Students have been brought together to work on projects that reach far beyond social networking — practically any effort that a software engineer works on will use some aspect of open source code. Borenstein’s program is designed to help students understand what the code is all about and be able to make necessary fixes.
While Facebook has been a major part of the Open Academy, Borenstein is hoping that in the future, the company will become a steward and help lay the foundation for the development tools and infrastructure that the academic world can use.
Creating a better software engineer
As we all know now, one of the goals of Facebook Open Academy is to give computer science majors part of the working experience they’ll have when in the workforce. But rather than thrusting them into lectures and exercise problems, these students are put into teams to find out how to work well with one another and learn from a dedicated mentor.
This year, the program has brought on board seasoned veterans who actively maintain open source projects, including Ruby on Rails, MongoDB, SocketIO, Mozilla OpenBadge, ReviewBoard, Phabricator, PouchDB, Kotlin, and Freeseer.
AT&T Interactive’s senior software engineer Aaron Patterson is one of those mentors and spoke with us about his role in the Open Academy. He says that while the assigned open source projects benefit from the extra help, students actually receive a huge advantage by being able to interact with one of the maintainers of the project. At the beginning of each program, students are flown to Facebook’s headquarters to meet with their mentor. Over the following three days, they’ll receive help in setting up their development environments and get briefed on projects.
Patterson says teams will be working on bug fixes and also “small-ish” projects. However, make no mistake that these enhancements are just busy work — all efforts by students help advance the state of projects. This is something that Patterson says separates Open Academy from other similar programs at companies like Google.
We’re told that with Open Academy, mentors work with students and tell them what projects need their attention — Patterson says it’s important for students to take on things that maintainers don’t have time for. Yes, it sounds like free labor, but keep in mind that students aren’t just filing documents or answering phone calls — they’re working on actual projects and making improvements.
Patterson points out that with other programs like Google’s Summer of Code, student participants are building things that they want, but may not be appropriate or needed at that time. With Facebook Open Academy, mentors like him know what’s needed and instructs students on what to do — Patterson helps them move in the right direction before asking them “Now what do you want to do? What do you want to improve?”
The end goal
The length of Open Academy varies based on each student’s university – some operate on a semester calendar while others are on a quarterly one. For each session, students will be paired with others based not on friendships, but on common interests. Borenstein says that a formula is used to assign people to teams, primarily weighted on project preferences. Other factors include logistics such as time zones and schools where students are located.
For mentors, the primary goal isn’t the presentation of the work that they’ve accomplished. Rather, it’s about how students have worked together in teams remotely, the learning outcome, and being mentored by someone who they respect.
In the end, it appears that students, faculty, and mentors agree that programs like Facebook Open Academy have a positive impact on strengthening the developer talent pool and community. Fagerholm agrees with this and believes more companies should participate in Open Academy-type programs lest they miss out on a source of talent. He thinks that students are more inclined to join a company that has participated in such an initiative and shows that they’re thinking long-term about the development of their talent.
This is not like an internship or even a massive open online course (MOOC) like you’d receive from Coursera, Khan Academy, Udemy, or other similar services – it’s more like a more detailed and hands-on capstone course one can take for college credit. While Facebook Open Academy is only in its second year, it will be interesting to see how it progresses in the future and/or if it affects the current computer science curriculums in universities.