Helpful FAQs for Google Summer of Code Aspirants.
Last year, when I was preparing for the Google Summer of Code (GSoC), I used to have too many questions. This year when we were taking an orientation for Open Source development and GSoC, at BITS Pilani Hyderabad Campus, then we have encountered similar questions that were asked by most of the fellow developer. Here, I have curated questions which fellow developers keep asking about Google Summer of Code and how to start approaching open source. So if you find anything missing or incorrect feel free to write to me.
1. Should I be from a CS background to be selected in GSoC?
No, not at all. As a matter of fact, a lot of Google Summer of Code participants I know (Shantanu Mishra, Siddhant Kumar Patel, me and many more) are from non-CS background.
2. What programming language(s) should I know to participate in GSoC?
The programming language you need to know depends on which organization you are interested in working with. You should be familiar with the programming language(s) used by that organization.
3. I don’t have enough knowledge to apply for GSoC
Honestly speaking, you will never have enough knowledge of any technology in your entire professional career.
Even some of the most experienced developers out there don’t know everything and that’s fine!
Learning is a lifelong process, you can never be truly ready for something.
My rule of thumb is, if you can read and understand (not write) the code written in the project you’re trying to contribute to, you already know enough. **And even if you don’t know enough, what’s the worst that can happen? You’ll only get tons on exposure while trying to understand that code.
Doesn’t sound too bad, does it?
4. I am not familiar with Git/Github. What do I do?
This is a major problem because every GSoC applicant is expected to have learned Git/Github or be able to submit his or her code online. There are various online resources, like try.github.io and various Youtube Videos which can help you get started.
5. My Github profile isn’t that impressive. Is that a problem?
Not at all. People do not care about your Github Profile but your contributions to Open Source. Got university projects which are related to your project? Well, that should work here too. Tell them you are starting with Open Source and how you can help the community with your knowledge.
6. How do you prepare for Google Summer of Code? What should be my roadmap?
Start early is the best advice you’d get from every GSoCer. Make sure to interact with fellow developers and organisation admins. Be active on their IRC channels. Get involved completely with at least one project where you find a potential of development and of adding new features. Find bugs, issues and report them in the repository. Help fellow developers in the project and review their work. Try to get involved in their community.
7. Could you give me any suggestions on which organization to contribute?
There is a huge list of organisations on Summer of Code website which will help you filter organisations based on Programming Language, Projects, Technology etc. Best way to approach an organisation is directly in their organisation’s IRC channel.
Here are some parameters which you should take into consideration during an organisation selection
Your interest and familiarity with the software
- Working on a scuba-diver monitoring program can be difficult if you don’t know much about scuba-diving.
- Working on a software library can be difficult if you have never used that library.
Skills
- It’ll be good if you know the programming language used for a project, but that might not be a requirement.
- You’ll generally need to know the required technologies, especially if it’s a popular technology.
- For e.g., If you have to make an android app as part of your project, you will probably be expected to already know how to build Android apps.
Competition
- Very popular organizations (like Mozilla) have a lot of competition. Extremely skilled students participate in them.
- New organizations (those which have never taken part in GSoC before) have less competition but accept fewer students.
Responsiveness
- Some organizations are very responsive. You’ll find their forums brimming with activity.
- Some organizations are very beginner-friendly.
- Organizations which don’t seem interested in mentoring should be avoided (though that’s often difficult to detect).
Keeping in touch with multiple organizations
- Contacting multiple organizations protects against unresponsive organizations and too much competition in some organizations.
- An organization you contact early might not get accepted for GSoC.
- Most people try 1, 2 or 3 organizations.
8. Where do I find the list of ideas shortlisted by organisations?
You can find the list of ideas on the individual page of every organisation. For example, to view the list of ideas of FOSSASIA head to this link and find “View Ideas List.” To view, all the participating organisations go to https://summerofcode.withgoogle.com/organizations
9. What if the organization I contributed to from December to March did not get selected for GSoC? Would the effort go in vain?
Not really. The 3–4 months that you spent contributing helped you get into the flow of being in the open sourced community. The new organization that you apply to will see your passion for Open Source and that itself is noteworthy. Also, when you choose the new organization for GSoC, do remember to start contributing to that organization with more intensity and frequency. This will help as there is a gap between the student proposal application submission and proposal shortlisting period. Your contributions can positively impact the verdict of the reviewers as now they can see a dedicated coder working tirelessly.
10. I need to understand the entire codebase to be able to contribute to it.
No, you don’t.
It’s practically impossible for you to understand the entire codebase from the get-go without spending proper 3–4 months with it.
So instead, break the codebase in modules and start understanding and contributing to a specific module instead.
Also building and using the project personally can help you find out tons of issues and optimizations in the project, so try doing that as well ;)
11. What if I don’t know much about the project?
It’s okay to not know about the project. Ask your mentors and fellow developers and discuss with them. Usually, they have a clear description of what the project is about in the ideas list or they might have talked about it in their IRC channels. Find out if whether you have to learn any new languages or frameworks? Do you have the correct resources to learn them? Do you have enough time to complete the courses? What extra practice or sample projects you will have to refer to start with the project. Make sure you do proper research before choosing a project.
12. Can I learn and code at the same time during the GSoC period?
Yes, many people have been doing it and it is not something new. You are not expected to know everything beforehand. However, you should be able to convince your mentors by stating them the actual timeline you will follow in order to do this. If you have zero knowledge about the subject you should think again whether this project is for you or not.
13. How much do my past contributions to open source matter?
They do matter to most organisations. If you have a good history with the mentors and the project you are applying to, you have greater chances of getting in. Make sure you also show any other work related to your project or something which you have done at your university which is directly an application of what you will be doing in the program. The organisations will definitely be interested in knowing about this.
14. What do I do when I get stuck? If I ask too many doubts would I not be disrupting the work?
Not really. On the contrary, the channels of open source organizations have several active members who will get back to your queries within a couple of hours.
15. When I contribute to an organization, what if my code breaks the system?
The organization you contribute to will have a lot of safety measures to ensure this does not happen. In fact, git ensures to a great extent that the codebase remains stable. There are moderators and code reviewers who cross-check to ensure this. So do not be afraid of this — Start tinkering and be ready to make mistakes and learn from it, but be assured no one else will be impacted as a result.
16. What are the key points to keep in mind while working as a team?
Maintain good communication, ask for help if you need help and take the time to answer the queries of other developers. A good community takes a good member. Just be the role model for new developers who join and the positivity will continue. Saran was given author rights because he proved to be a good member and a dynamic participant in the project.
17. I should have a kickass profile for organizations to consider me as a student developer
While having a good profile helps, it’s just icing on the top.
Organizations will judge you based on the proposal and contributions you have done to their project prior to GSoC.
18. How early should I begin writing my proposal?
You shouldn’t be in a situation of submitting the proposal at the last minute, so to make sure you are doing good on your proposal, have a green signal from your potential mentors and have reviewed everything correctly you should begin at least 3 weeks before the deadline. There might be times your proposal would need two to three revisions from the mentors, mentors are busy most of the times so don’t run after sending them long messages and pinging them on the main channels. They definitely will help you out once they are free.
19. What should my proposal look like? How intense should it be?
Your proposal should contain important sections such as Abstract, Goals, Implementation, Milestones/Timeline, Future Prospects, Mockups/Wireframes if there is need to put any, UML/Data Flow Diagrams which can help you explain the organisation what you are proposing exactly. Most importantly at the end, it should have a detailed report about you, your background and your past work. You should be able to answer all types of questions like, How many hours can you contribute every day? How are your goals being achieved based on your timeline? Are you giving too much time on a particular feature? Is this the correct way to approach this feature? You should highlight any commitments during the GSoC period like exams, vacations etc. due to which you won’t be able to give time.
20. Can I ask my prospective organisation to review my proposal?
Yes, definitely. It is a very good habit to talk about what you want to do with your mentors and your organisation. This way you are not only getting noticed to them but they also have a clear picture of how you approach things and how your approach would be during the GSoC period.
21. Can I send more than one proposal to one organisation?
Yes, most organisations will consider your application for more than one projects. But again make sure you have enough time to give to each of your proposals. Please note you will only be working on one single project.
22. I haven’t contributed to this organisation but I still want to send the proposal, should I send it?
As mentioned in previous answers, it won’t be a problem if you are wanting to apply to a completely new organisation unless your past work and background is supporting you with what you want to do. Tell them how excited you are about working in their organisation, what draws your attention, what changes and features can you bring in the project and how it will help you if you contribute. Make them feel interested in you.
24. How to balance between academics and GSoC?
Mentors and the team you work with deciding upon a schedule. If you start preparation from November as suggested, the transition should be seamless. There might be times when work increases, but at important times like exams at the university, telling about it to your mentors ahead of time should give them enough space to compensate for your absence. The community is very understanding and you will adjust your time to fit in this as well.
25. How do I get started when I wish to contribute to an organization?
In GitHub, if you go to the issues tab, you will see a lot of possible ways you can contribute. There are tags associated with each issue that indicate the difficulty level. You can start with simple ones and later progress towards the more challenging ones. In time, you will get a hang of it and things will roll easily. For example, Adarsh’s first commit to the organization was simply a change of double quotes to single quotes in the program! All it takes is a mindset to try and people are always there to help if you get stuck
26. I do not know how to code as great as these scholars. Am I not keeping my expectations too high?
Most of the scholars got through GSoC after several failures and attempts to learn from mistakes. Experience taught them a lot and that is what lead them here. Even if you are worried about not getting GSoC next chance, you must still try preparing for it, because that is experience and in time it will reap benefits. Vidyadheesha considers himself to be an average to a below-average student. “Do not be afraid to try anything new” is his answer. GSoC is not only for amazing coders, but it is also for those who dare to go beyond their comfort zone and learn to adapt to each problem.
BITS-specific issues
PS1 clash
- It is not hard to do PS1 with GSoC. Many people have done it before.
- I avoided PS stations which are known for giving relatively more work.
Sem 1 clash
- Your summer vacations will end before GSoC ends.
- It’s important to tell your organization about this.
- Try to almost finish your project during vacations.