[GSoC]What is Google Summer of Code? Why should I participate?

[Note: I just translate my previous post in Chinese into English, so that other students might also have a glimpse of what GSoC is. I will properly update the content once I get some free time]

This summer, I am honored to be selected for GSoC 2019 and spent a cool summer vacation with the SymPy community. I have just received a commemorative shirt. In this post, I will recall the experience of this summer vacation and make a summary. It is also to promote this activity. I hope that interested students will sign up for this year!

What is GSoC?

GSoC logo

The full name of GSoC is Google Summer of Code, which translates Chinese into the Summer of Programming. It is an annual open-source programming project organized by Google. The earliest started in 2005. The project aims to encourage students in the school (one of the necessary conditions for application is to be a registered student with no qualifications, from undergraduates to doctors) to participate in the open-source community and complete the project under the guidance of the tutor. The activity generally starts to apply in early March, and the results will be shown in May and officially started as a three-month project. The whole project is divided into three small stages, each stage is about one month. After the end of the stage, the instructor will evaluate whether the task of the stage is completed and continue to the next stage until the project is completed.

To make a long story short, I have summarized several major features of this project, and I hope to answer the question of “why should I participate?”

  • Numerous choices of communities

According to my own incomplete statistics, the number of communities participating in GSoC in 2019 has exceeded 200, covering areas including Operating systems (GNU, Fedora, etc), Programming Language (Python, R, JAVA, etc.), Science (CERN -HSF, Python, etc.) and other types. The SymPy community I am involved in is a symbolic computing library for Python. Secretly speaking, our goal is to target NumPy’s hahaha. Objectively speaking, compared to some programming summer projects that have also emerged in China in recent years, such as the summer of Alibaba programming, the appeal of GSoC is temporarily incomparable. So as long as I love programming, I believe that you can find your favorite part in GSoC!

  • High degree of freedom for choosing the project

As the main body of the entire project, how to define these three months of programming tasks is particularly important. On the one hand, each community will release a list of projects on its own forum, official website, and GSoC homepage for students to choose when registration is approaching. On the other hand, as a manifestation of a very high degree of freedom, GSoC allows students to propose projects by themselves and discuss and define their own projects with the seniors in the community. 100% personalized, comfortable to use, and safe to do. So as long as you have the heart, you can definitely find a project that suits you.

  • A mentor to supervise the project

In order to avoid the mess and delay caused by stocking projects, GSoC requires the community to allocate at least one mentor for each selected project to help students throughout the process. The tutor not only plays a role in providing advice when encountering problems but also urges students to complete to a certain extent. At the same time, the communication with the tutor can learn a lot, not only the engineering ability to write code, but also how to find problems in the community, participate in discussions, and solve problems is also a learning process. In addition, there are some mentors in the community of Crouching Tigers, Hidden Dragons, who may be the industry’s big cows. For example, this year’s timecode community (committed to the code implementation of “Artificial Intelligence: A Modern Approach”), there is a tutor who is the original author of the book Peter Norvig. I remember the number of applicants for that project exploded directly. However, out of curiosity, I just confirmed that Peter Norvig did not appear as a mentor in the list of projects determined this year. It should be that the project was not selected. If this is a timecode marketing, it is really very successful hahaha!

  • Polishing your CV

Although this project is still very young, from the perspective of my communication with several seniors during the preparation period, GSoC is still a highly recognized project, and its popularity has also increased with the promotion of Google year after year. Leaving aside the aura of the project itself, just looking at such an experience of participating in the open-source community is also very good for your resume. During the summer vacation, instead of sitting at home as a laid-back happy fat house, it is better to pick up the keyboard and type the code. You can learn something and make money. Why not do it? In addition, after the project ended this year, Google gave a Connect account as a record. When applying for a job and recommending it internally, you will highlight your GSoC experience as a bonus. But I may be too bad. The resume I voted for has not been echoed yet. Hahahaha.

  • Stipend provided by Google

In view of the fact that the project is carried out during the summer vacation, many students will have to work on summer vacation due to certain economic pressure. In order to avoid the worries of students participating in the project, GSoC provides a considerable salary for each student. It is worth mentioning that the amount of salary is defined based on the level of living consumption in the country where the student is registered. For example, domestic students, this year’s bonus is 3000 $ (the amount will change, it is said to be higher in previous years). Because I am in France, based on the level of French consumption, the salary is 5400 $. It can be regarded as a handful of capitalist wool hahaha. In addition, the bonus is divided into three stages with 30%, 30%, and 40% proportions divided into three stages, which corresponds to the three stages mentioned above. So you still have to work hard, there is no guarantee for you earning the money without putting efforts into the project.

II. Timeline of GSoC

Then take a look at how to act. I posted the 2019 timeline below. Since the start time of each year changes, it is only used as a reference for an approximate time period. In the next chapter, I will summarize my application process this year in the order of the timeline.

III. Some personal advices

In this chapter, I will write a self-summary based on my own experience and the news I learned. I hope to give some experience and lessons to the students who will apply in the coming year.

  • Step 1: Get your targets

As reflected in the timeline, the community will go one step ahead of the students and sign up for GSoC to participate in the project of the year. Note that this is a two-way choice. On the one hand, the community chooses whether to participate, on the other hand, GSoC will also screen whether to include the community. So before choosing an interested community, it is best to find out if the community intends to participate in GSoC. The most direct way is to ask the community whether to participate in the community forum or mailing list. I suggest that you can also check the status of participation in previous years. If a community has participated for several years in a row, it should probably continue to participate and be selected. The choice of the community should not be greedy, the right direction and quantity are the most important.

  • Step 2: Get familliar with the community

Although the formal application only started around March, preparation work should be done early. You can start wandering in the community from the end of the previous year or the beginning of the year, mention the issue, and even pull requests are merged. On the one hand, let the people in the community know you and give the tutor a preliminary impression. On the other hand, most communities have a necessary condition for applying to be a contribution to the community. This will also ensure that you have a basic understanding of the community. Many communities will create a Label for newcomers in issues, such as “Easy to fix” “Novice” and so on, so that new members can familiarize themselves with the development environment and process by fixing them.

However, I only learned about GSoC in March this year and decided to participate, so it was really too hasty. Understanding the whole project, choosing a community, and making a contribution and staying up for many nights before catching up with the last bus. So I hope that the students who want to register next year will start as soon as possible.

  • Step 3: Determine your projects

By the end of February, the selected community will be officially announced. At the same time, an idealist will be released, that is, the community needs to put forward some project suggestions. At this time, you need to determine in a timely manner what you want to do. It is worth noting that each student can only submit up to three applications, so it is still accurate and suitable, not too much.

  • Step 4: Prepare your proposal

The proposal is the most critical step in applying!! The most critical! ! The most critical! ! It directly determines the probability of being selected. In fact, the ideas are given by the community often only have a general direction. Next, students need to develop a complete plan for how to solve this problem through their own understanding of the community and their own abilities. This is the purpose of the proposal. How to write a proposal, there are many seniors on the Internet who have summed up their experience, so I wo n’t do anything. My suggestion is that it must be implemented. Regarding how to solve the problem, it is difficult to get affirmation in a bragging way. Instead, we must carefully analyze and propose specific methods. If you can make a small demo is a special bonus.

  • Step 5: Ameliorate your proposal according your the feedback as much as possible

After writing the first draft of the Proposal, it is best to send it to the project mentor and the partners in the community to let them make suggestions and help modify it. In addition, if you encounter difficulties when writing proposals, such as if you do n’t understand the problem or you cannot solve it independently, it is best to communicate with the tutor and ask him to explain or provide relevant materials for you. I believe that after many revisions, I can see that my proposal will become more and more specific and more feasible. This is a good sign for being selected.

Step 6: What to do if you are accepted

After submitting the proposal, it is waiting for good news. This year was announced in early May. God knows how happy I was when I announced my selection that day hahahahaha! In fact, being selected is the most difficult step in the GSoC process. The selection and elimination ratio of our community has also reached 8: 1. If it is some established community, the ratio may be higher. Although there are evaluations at each stage afterward, there is basically no problem as long as we do it practically. So after the hardest level, the next is the bonding period with the community. Understanding the community more deeply, reading the source code more carefully, and deepening your understanding of the project are all preparations for the formal start of the project

Step 7: The evaluation stages during the project

During the project, communication with the tutor is very important. At that time, I had a problem with the timing. The timeline of GSoC is partly British and American, while I am in France in the first phase of the project is exactly the end of the month. The academic pressure made me do nothing. I had an explanation with my tutor before I applied, and he said that the previous month allowed me to reduce the workload properly, and I could just make up for it in the future. This allowed me to spend the devil a month successfully. After that, remember to communicate with the tutor about the problems encountered and adjust some of the project content. Of course, afterward, I had to prepare for the TOEFL test at the same time. Once again, the lack of avatars made me not particularly satisfied at the end of the project, leaving some regrets.

Step 8: Finalize your work

The closing of the project is also important. How to submit your work, if you write a report for later reference. Both the community and the mentor will help, just ask and discuss.

At this point, the entire project is complete! Afterward, you will receive a series of congratulations emails, a final salary, and a commemorative shirt. A substantial summer vacation is over.

IV. Conclusion

Overall, this project has brought me a lot of gains. The first participation experience in the open-source community, the exchange, and discussion with my mentor have improved my ability to write code. Solving problems and completing tasks during the project is also a good learning process. The popularity of GSoC in India is much higher than in China. According to this year’s situation, half of the projects have been taken by Indian students! It can be seen that Indian students do indeed excel in engineering ability. I hope that more domestic students can understand and participate in this project and eventually learn something from it!

Finally, I would like to share a picture of the commemorative shirt hahaha!