This article is also published in Zhihu column: The Summer of Google Programming: Lots of high-quality projects, lots of rewards, and you don’t even know?

Zero, wedge

This article contains an introduction to the Google Summer of Code (GSoC), personal feelings, and application tips. The inspiration came from a blog post on Google Open Source: Google Summer of Code 2017 Statistics Part 1, this blog lists the national distribution of students participating in the program in 2017. Some of the numbers are quite interesting: A total of 1,318 students from 72 countries were eligible for the program in 2017, including 49 from the Chinese mainland and 126 from the United States. Which country has the most students? As you might have guessed, our neighbor India has 569! That’s more than 40 percent of all students.

The proportion of Indian students is staggering, compared to the number of our Chinese students is pitiful. However, in my personal opinion, perhaps the biggest reason for the low number of Chinese students is that they have never heard of the program! “What is GSoC? Is it good?” That’s probably how most people feel when they hear about GSoC.

I learned about GSoC by myself, and I saw a blog application for Google Summer of Code 2015 by Yang Lei, the great god of our university, by chance in the Summer vacation of freshman year. I planned to apply for it in 2016, but it was shelved because I participated in the summer expedition of automobile Association in the summer vacation. I applied for it in 2017 and successfully passed it. Over the past year, I have not often sold Amway with my friends. Later, I saw several Peking University students in this year’s GSoC wechat group, and most of us learned about GSoC through word of mouth. I am very happy that I also made a small contribution to the popularization of GSoC in our school.

When I see India’s 10 times the number of students in the us, participation in the top ten school has eight from India, in addition to what some defy spirit, more admiration for the Indian programmers mutual support, information sharing mechanism, why can this point with them in silicon valley there are a lot in common are flawed, but not this paper, don’t do. Based on these background, I have been planning to write a formal article to introduce GSoC and provide some of my own feelings and application experience. At the same time, I hope that more students who love technology can read this article and have the opportunity to participate in such a Google organization with high value and high reward (you can get tens of thousands of yuan reward!). A summer project involving many of the big names in the open source community. I hope that this can provide a little help for the majority of domestic college students with solid technical level and desire to exercise, so as not to miss such an excellent project because of “don’t know”, “haven’t heard”!

What is Google Summer of Programming

What is Google Summer of Code?

Google Summer of Code (GSoC) is a global program that matches students up with open source, free software and technology-related organizations to write code and get paid to do it! The organizations provide mentors who act as guides through the entire process, from learning about the community to contributing code. The idea is to get students involved in and familiar with the open source community and help them to put their summer break to good use.

Translation:

Google Coding Summer is a global program that connects students with open source, free software, and technology-related organizations to get paid to contribute code! The organization provides mentors to guide students through the process from becoming familiar with the community to contributing code. The idea is to get students involved and familiar with the open source community and help them make the most of their summer vacation to get some exercise.

In my opinion, this introduction is very concise. If you want to know more details, you can go to What is Google Summer of Code? Read the full article.

In a nutshell, students spend a summer working with tutors to write code for the open source community, and Google pays you for your work ($5K before 2017, it seems; Since 2017, the payment has been reduced to $3.6K in Mainland China, which is still a considerable income when translated to about 25K RMB).

Ii. What is the high gold content of GSoC

Generally speaking, students who want to improve themselves in summer have two places, one is summer graduate school and the other is summer internship. GSoC is more similar (but very different) to engineering, and it is easier to see the advantages of GSoC compared to summer internships:

  • Schedule and work patterns
    • Take 2017, for example. Google will announce the list of selected students on May 4th, and there will be a Community Bonding Period from May 30th, during which you can get familiar with the Community and discuss your project with your tutor. From May 31 to August 29, you will have about 12 weeks to complete your application. Except that the start time is slightly earlier than the final exam in China, the time span is basically the same as most summer internships. The amount of work varies from project to project, but is usually less onerous. Even if you can’t complete all the expected content, as long as you participate in the whole process seriously and responsibly, most of you will Pass. For example, a few days ago (the Coding Period just started), some people in the group said that they had finished all the Coding and now they were bored writing documents…
    • The tasks of GSoC are all completed online. You can do everything at home or in the school dormitory, compared with the painful rush hours of crowded subway (dare not make fun of the traffic in imperial Capital). Simple and efficient, do not worry too much!
  • remuneration
    • Before the price cut, the remuneration is more than 11K per month, almost catching up with the official price of fresh employees of first-line Internet companies. After the price reduction, it is about 8K in January, which is still crushing the price of interns. Still need not deduct tax yo!
  • Personal growth
    • During the GSoC program, each student will be assigned a mentor who will assist you throughout the program. From my own experience and the experience of people around me, although there are some lazy grazing instructors, they are generally very serious, responsible and warm-hearted. The technical level of the tutors themselves is also excellent. If you are involved in a project with a well-known tool, language or framework such as GCC or OpenCV, it is likely that your mentor will be Core Team Developer of these organizations, who are highly respected in the industry.
    • Take another example from my own experience. Warehouse to him once I submitted a total of no more than 50 lines of change, but because of the changes is the key, in the organization of a few mentors and I discussed for a week, full covered code style, performance optimization, testability, forward and backward compatibility, all aspects such as design principles, after several changes, incorporated into the final success. This process is hugely rewarding. We usually say that being reviewed is a good way to learn. The less and better the code is written, the more detailed the review, the faster the growth. And GSoC is exactly that model.
    • In contrast, most of the internships in front-line development positions are likely to be led by people who have just graduated and worked for three or five years, and their technical level is not amazing. Business-oriented development puts efficiency first, so it is difficult for someone to do a detailed review of your code. Even worse, some interns may spend most of their time doing “chores” instead of creating anything meaningful, let alone learning.
    • Of course, internships should not be killed by a stick, such as MSRA research interns, BAT TMD Huawei laboratories or core departments of first-line companies are also very valuable, there are many things that can not be learned in GSoC, is also very worthy of choice.

All in all, the quality of GSoC is quite high and is well worth participating in from all aspects. Google’s official profile reads:

Successful students have widely reported that their participation in GSoC made them more attractive to potential employers and that the program has helped greatly when embarking on their technical careers.

GSoC is recognized worldwide, and successful completion of GSoC projects will make you more attractive to employers. This experience is especially valuable if you want to join Google in the future.

And since GSoC is completely remote, you can also choose to participate in a GSoC project at the same time as your research or internship. For example, WHILE participating in the GSoC project this summer, I will also intern in the MSRA Big data group. Because of this GSoC, @Ohata also participated in GSoC and practiced in MSRA. So don’t worry about missing out on other opportunities if you attend GSoC!

Iii. Application qualifications, procedures and skills

Any undergraduate, master, or doctoral student can apply for GSoC. If you have already graduated, it is a shame that you will no longer be able to participate in GSoC as a student. Google has some more detailed requirements, but they are generally available, for example: FAQ#What are the requirements for participation?

Google releases a Timeline for GSoC every year, such as the Google Summer of Code 2017 Timeline for 2017

One is a List of Accepted Mentoring Organizations published, which announces a List of organizations for the year, and each organization has a home page listing Project Ideas you can choose from. This year it was announced on February 27. After that you can look at hundreds of Ideas and find the ones that interest you. You can send up to five Proposals to Google by the Student Application deadline (April 3 this year), Each Proposal should include your Idea, implementation plan and time plan for one of the ideas. The specific content of the Proposal varies according to the requirements of the organizer. The organization then reviews all the students’ Proposals and selects the ones they consider to be excellent. In about a month (May 4th this year), Google will announce the list of selected students, and if you pass, you can start your GSoC journey!

The above is the basic outline of the application process. Google official also provides a very detailed student guide and FAQ, which you can find, and more detailed and accurate introduction and guidance of the application.

The following is the illicit goods! Some life lessons from my own and other GSoC participants!

The first is what to choose. There will be hundreds of organizations participating in the GSoC, and it will be difficult to read them all. My advice is to choose a language that you have actual experience with, rather than a language or framework that you have never used. For example, this year I looked at Homebrew, CheckStyle, and PKU Helper. I finally chose the program under this organization); Secondly, if I choose a technology stack that matches my own, for example, JVM Based Language is my best technology stack, I will pay more attention to projects using Java, Clojure and Scala.

Once you have defined your initial boundaries, you can network with mentors through the organization’s open channels of communication. Usually, Mailing lists, Mailing lists, IRC and Mailing lists are the most common. You can learn more about these organizations and their programs to find the ones that interest you the most. Although each person can fill out up to five Proposals, it takes a lot of practical experience to write a Proposal carefully. It is not advisable to cast a wide net. According to Google Summer of Code 2017 Statistics Part 2, a total of 4764 students submitted 7089 Proposals in 2017. That means that on average, each person submitted more than one.

After selecting checkStyle, I was very interested in a project called Optimization of Distance Between Methods in Single Java Class. It involves algorithms, mathematical models, very interesting and challenging at the same time.

Then I wrote a Proposal for this purpose, which was divided into three parts: About Me, Project and Extra Information. About Me is the introduction of some basic personal Information and programming skills, and Extra Information gives Me my working hours, time zone and something I want to say. Project is the most important section, containing the Project Description, Outline, and Expected Timeline. It detailed the design of my expected mathematical model, statistical analysis process, applicable algorithms and implementation, and I will write an Article about it.

In my opinion, the key point of writing the Proposal is to be careful and meticulous, consider the feasibility and workload, fully discuss with the tutors, and finally add a aesthetics. Based on the above methodology, I spent more than a week grinding out a Proposal with a high level of appearance, which was well discussed with my mentors. I thought this project was a sure thing, but two days before the application deadline, my tutor suddenly wrote me a message saying that we thought this project was too difficult and we might not find enough tutors to lead you, so please hurry to find another project and finish a Proposal. Me:?? … I had no choice but to spend half a day to pick out another project that looked ok and write a paper in a hurry. Tutor is also enough meaning, told me that you just write ideas, not too detailed. Then I successfully submitted two Proposals before the deadline and succeeded in the next one.

My Proposal was highly evaluated by my tutor. If you are interested in it in the future, you can refer to Google Docs:

  • Proposal for GSoC 2017 – Optimization of Distance Between Methods in Single Java Class
  • Proposal for GSoC 2017 – Regression Testing Tool and HTML Report Generator for Pull Request

In addition to a good Proposal, it is also very important to communicate with tutors before announcing the final list! Mailing List and actively participate in discussions. It would be best if bugs were proposed or even fixed or new features implemented. Checkstyle’s tutor clearly wrote that the number of Fixed issues of students was an important indicator at the very beginning. Later, I submitted 8 PR papers before the deadline and ranked first among more than 10 competitors, which contributed to my final selection.

To sum up, get involved, talk, give feedback, and even help other developers in the community, and you have a very good chance of getting picked! Of the 4,764 students who submitted Proposals this year, 1,318 were selected, a very high rate of more than a quarter. In fact, many of the 4,764 applicants did not write proposals properly at all, and many of them came to apply for proposals because of their poor skills. So for the vast majority of the foundation is not bad for domestic college students, as long as the application is easier. To know, our college students’ technical foundation, even the English level, is not worse than Indian students (Indian English is really not all good), others can apply for 500+, we can also do, 49 people is far from our real level!

Four, conclusion

The 2017 GSoC is already in full bloom. If you missed it this year, don’t regret it. As long as you don’t graduate and leave campus next month, GSoC 2018 is waiting for you. Use this time to improve yourself and try reading up on some of the open source projects on GitHub and even get involved. I wish you all a successful application for your favorite GSoC project!