The Best Way to Earn Open Source Experience as a Student
A detailed guide to an amazing open source internship — Alibaba Summer of Code
Introduction
Are you a college student who is passionate about the open-source culture? Or desire an internship to enrich your CV? How about joining Alibaba Summer of Code to have a different kind of internship experience than others?
Same as Google Summer of Code (GSoC), Alibaba Summer of Code (ASoC) is also an open-source summer internship hosted by Alibaba Cloud. It is such a young program that has only been held twice so far. Every year from around May to August, Alibaba will pick several issues from each of their open-source projects and invite students from all over the world to work those problems out. You do not have to be a computer science or IT major student to get selected. Also, to whom may think is important, it is a paid internship.
ASoC is quite the same as some common open-source activities, which developers from different places or countries discuss and try solving project issues together online. This kind of internship will pair one or more mentors with a selected student to work out solutions together and guide him/her through the whole process remotely.
In this article, I will give you a complete guide about ASoC. The content will be mainly based on my experience and aim to attract more students to get involved in the open-source culture.
Before Start
During the whole summer, students will experience several different stages. In the beginning, people who intend to join should browse through the official project list first. Within these projects, potential mentors will launch a number of issues and mark them as specific to ASoC.
After deciding which project to join and which issue to solve, students will be required to provide a proposal to apply for the given topic. The proposal should include sections about what the problem is and how it can be solved. The implementation plan can be discussed with potential mentors and need to be as detailed as possible.
Furthermore, providing project deliverables and timeline is necessary, they are also important as potential mentors will evaluate whether a student is able to plan the development progress reasonably and if he/she has adequate time to complete the project.
Tips
A tip here is to contact the community as early as possible, even before the event begins. In my case, I had made a connection with Apache RocketMQ, which is the project I participated in, a few months before ASoC started. This saves me a lot of time to learn how the community and project work.
Another advice is to keep interacting with your potential mentors while writing the proposal. It will not only make you understand the problem more thoroughly, but also can let them get to know you better. This will increase your chance of getting elected.
Implementation
The coding phase is the most exciting and difficult part. It will start right after candidates getting selected by the community. There are midterm evaluation and final evaluation during this period, in which the mentor will evaluate whether you have finished given tasks on time and are able to continue. Instead of talking about the process, I will sum up my experience into several parts to let you know what things should be noticed throughout the program.
Teamwork
At the beginning of this program, I was so nervous and kept questioning myself if I had the ability to implement the solutions that I provided in the proposal. I believe many student developers who lack experience in industrial projects will have the same thought as me. Although I did have two to three past experiences in open source development, I was still feeling unconfident in building some large software engineering projects.
In fact, instead of writing code, learning how to cooperate with others is the real big deal. Regardless of ASoC, or based on my experience in other open source communities, identifying what the real problem is and asking someone for assistance boldly can greatly increase the development efficiency.
While the development just started, I was so focused on how to implement the project by myself that I spent a lot of time searching for related information online and found no answer. Since most of my school projects are personal assignments, I often wanted to solve problems by myself. Although you might think this is a good habit, it will waste a lot of time while the problem is too complicated.
Therefore, I began to ask for some help from my mentor. The result turned out that having team awareness is important. Those problems that I thought were difficult could be easily solved with the assistance of my mentor. So try not to be a maverick during the software development.
Communication
Having team awareness is not enough, some student developers like me sometimes think that asking a lot of questions is a kind of good cooperation with others. In fact, this is a manifestation of poor communication skills. To reach high communication efficiency, asking the right question is the key point.
After I realized the importance of discussing problems with my mentor, I often ask him some dumb questions that I could have solved by myself. Even though my mentor is a patient guy and would always guide me step by step, our development efficiency had not been significantly improved.
The real reason that made me keep asking dumb questions is my weak debug skills. I don’t even know how to use “step in” or “step over” in IDE properly. After spending some time to learn it, I can solve most of the coding problems on my own and started to deal with some real technical problems with my mentor. I finally realized what the “right question” should be looked like.
Before asking for help, try to see if there is any method that could improve our problem-solving skills and if we could handle problems by ourselves. Avoid just simply “throwing” all your bugs to others since the cost of communication should also be considered. A “right” question can save you a lot of time.
Perseverance
Other than interacting with mentors and community members to complete the program. I would like to talk about what the most important thing is while participating in open source projects, that is, perseverance.
Actually, no matter GSoC, ASoC, or any other open-source internship programs, although the participants often get paid, their main purpose is to attract more people to join open source communities after the event. They provide a chance for those communities to grow and cultivate developers that would make continuous contributions.
Consequently, perseverance is something that lots of communities care about. By engaging in the community of Apache RocketMQ, I had seen lots of developers from different companies, even different countries, persist in making contributions to the project even if there is no money in return. This is why I think open source is one of the most beautiful things in the technical world.
Can you still make contributions to the community, even without getting paid? Please ask this question to yourself while attending these kinds of events.
After ASoC
After the two-month coding phase, ASoC was coming to an end. I had successfully passed two evaluations and received a certificate of completion.

Besides the certificate, students will also be awarded a salary, which is about 250 RMB per day. Despite this amount is much less than GSoC, the people I met and the experience I learned in these two months are priceless. Unfortunately, due to the COVID-19 pandemic, ASoC students this year cannot visit Alibaba’s headquarter like last year. This is my only regret for this internship.
All in all, it is an amazing journey for these two months. Before knowing ASoC, I had applied for GSoC two times in previous years, and all came to fail for some reason (e.g. the communities I chose did not get selected by Google). I am glad that I finally got the opportunity to participate in this kind of internship which I dreamed of.
Finally, I would like to thank all community members from Apache RocketMQ, especially my mentor ── Rongtong Jin, for their professional support and suggestions during these times.
Resources
Alibaba Summer of Code 2020 (English official website)
Alibaba Summer of Code 2020 (Chinese official website)
Apache RocketMQ official website
Hope this article could help you understand how open-source internships look like and guide you through their process and core values. Thanks for reading.






