It has been a while that I don’t write here but I thought this subject was worth it 🙂
Open source is a huge part of Facebook engineering. Whether we’re building new data infrastructure tools like Corona and Presto to manage our warehouses on Hadoop, releasing a new mobile build tool like Buck, or improving PHP runtime with HHVM, open source projects are integral to our operations.
The hypothesis Facebook is exploring with Open Academy (I love the fact that we have Akademy already :P) is that the best way to learn about software engineering is to do software engineering. As simple as that sounds, we have not traditionally done a good job with this in academia. CS departments may provide a project experience as part of the curriculum, but it typically does not map well to a real world software engineering experience. Facebook and the partner universities wants to do better.
To help bridge this gap between school and industry, last spring Facebook teamed up with Jay Borenstein, a computer science professor at Stanford, to launch Open Academy. Open Academy is a program designed to provide a practical, applied software engineering experience as part of a university student’s CS education. The program works closely with key faculty members at top CS universities to launch a course that matches students with active open source projects and mentors and allows them to receive academic credit for their contributions to the open source code base.
The idea is that partnering with selected open source projects holds a great deal of promise on a number of levels; it will give students exposure to learning how to come up to speed in an established code base, revision control, project estimation and access to examples of good software engineering practices beyond what we are able to provide inside university walls, among many other things.
One question that might be on top of your mind is: “how is this different than Google Summer of Code?” One key difference is the tight integration with universities. Facebook OpenAcademy runs as a university course offering for which a student receives a grade and academic credit. It also allows the university teaching staff to stay very involved and work in tandem with the open source mentors to give students good support for their software development efforts. Another difference is the team element. This course offering partners students from around the globe on teams that work together, which IMHO is exactly the way KDE works.
In a nutshell, the program works like this:
- A student team of 3-8 students, potentially spanning multiple universities, is formed
- A matching process is run that puts a student team with an open source project
- The team and a “mentor” from the open source project are flown to a location for a weekend ramp up hackathon (the location is Facebook headquarters in Menlo Park, CA). The students can work on improving the project in two ways: by knocking out low hanging fruit issues that already exist or by identifying and pursuing new functionality
- The students will work on projects for between 8-20 weeks depending upon the schedules of the universities involved Univerisity faculty will be closely involved and consult with the mentor when determining final student grades. Expectations will be set with the students that states the coding contributions they make – the quality and ambition of them – will be the main factor determining their grade
- Start date: January-Feb depending on university
- Feb 7-9 Hackathon at Facebook Headquarters in Menlo Park, CA
- Midterm Acknowledgment (tbd)
- End date: Mar – Jun depending on university
Summary of expectations for mentors:
- Attend Kickoff Hackathon at Facebook HQ Feb 7-9, 2014 (your flight and hotel will be paid for)
- Meet the students working on your project(s)
- Help the students select project goals and develop plans to achieve them
- Set expectations for how you like to communicate with the team
- Be responsive to requests from the team during the course
- As often as possible, attend weekly, 30 minute remote team meetings (IRC, Hangout or equivalent)
- Be prepared to provide the course instructor with a grade recommendation at the end of the course.
- Overall time comittment: You are obviously in control of this and it is also proportional to the number of students you decide to have, but not counting the hackathon, 3-5 hours per week is our expectation
I am asking every interested mentor to fill in project proposals here: http://community.kde.org/Open_Academy . I am excited that KDE can have some slots in this program and as with every other program out there that brings students to open source I am sure KDE is the best place for a student to learn more about software engineering.
If you have questions, feel free to email me.