Tips and tricks from a Google Summer of Code veteran

Wednesday, August 27, 2014

Today we have guest writer Victoria Martínez de la Cruz providing her take on how to have a successful Google Summer of Code. Victoria just finished her summer working with OpenStack, an open source tool for building private and public clouds. Read below for some of her great tips on how to conquer the summer as a GSoC student. 
The end of Google Summer of Code (GSoC) is near and I wanted to share with readers my perception of what it takes to participate in GSoC, to work in an open source environment and what to expect after the program.

What it takes
Participating in GSoC will allow you to learn about the latest technologies and to contribute to the open source organization project of your choice. Every project is different, so any previous knowledge you should have and tools you are expected to use depend on the project plans.You don't need to be a hacker, but in my opinion, it really helps to have deep understanding of several computer science concepts.

The learning curve can be high. It really helps to become familiar with the project code—discover where things are located and how they interact to make the application work ahead of time. You also will have to become familiar with the programming style of the community. Every organization has its conventions and it’s important to stick to good practices to guarantee high quality code. Students are required to understand the workflow, including how to submit your code for review, how the review process works and what is required to get it merged. Finally, you have to start working on your specific project— sometimes a bit harder than you might think!

It’s important to be proactive and take initiative. Research things you don't understand and collect as many resources as you can to make your own decisions. It is better to be wrong about something and fix it with the feedback submitted by the reviewers than to waste time poking people to ask their opinion on a subject they may not be so familiar with.

Working with a mentor
I want to emphasize how important it is to find a good mentor and to get along with them. It is essential that you share with them both what you feel good about and what is making you nuts! Given that GSoC is a remote program, it is always a good idea to keep your mentor up to speed on what you are doing. Otherwise they cannot track your efforts and they won't notice if you are stuck on something.

Seek to find a good balance—contact your mentor often, but don't expect them to devote all of their time to you. And don’t forget about taking advantage of the developer community. If your mentor cannot reply to your questions for some reason, you can also ask someone else.

What to expect after GSoC
Once you have walked down the GSoC path, you have several options. You can stop contributing to the project you worked on and continue with something else that you like more, you can keep contributing as a volunteer, or you can try to find a full-time job to keep working on it. What you decide to do is up to you, but at the very least you have built a strong background that will be useful in your career.

In short
  • GSoC is an incredible opportunity. You will learn about programming tools and practices used in real world deployments, and you will build the experience and confidence necessary for a future job. It is really worth the effort!
  • Become familiar with the project before the summer starts. If you can get in touch with the project community and contribute with a small fix, it will make it easier for you to apply later to GSoC.
  • Share as much as possible with your mentor. Interact with the community. Get to know them, it's important. Open source projects work because of their communities.
  • Your contributions are as important as other people's. Review other people’s patches and submit feedback. You will not only learn a lot, but they will be more likely to review your patches.

By Victoria Martinez de la Cruz, Google Summer of Code Student, 2014