I would love to share my experience on what it takes to get into GSoC. I hope it would help newcomers to get into the world of FOSS.
You might not be the best programmer in your school, but you should believe in thyself. College grades do not matter. Neither do your linguistic skills. GSoC requires a certain passion and dedication towards your interests.
If you’re not an open source enthusiast and wouldn’t like to write open source code, then GSoC is not for you. The only difference for you should be that Google is providing stipend for you to do this.
Selection of the organisation you want to work with is the most important factor. Being aware of the kind of organisation you want to contribute to is a very hard thing to do, and is one of the few steps where people go wrong. For this, you should shortlist your interests. Research about the organisation. Know what you are interested to work on. Choose a job you love, and you will never have to work a day in your life.
Some organisations expect you to do minor bug fixing/ development tasks before accepting your proposal. Others are more interested in your profile and interest. It also depends on size/scale/platform of the project. There might be competency tests, one-on-one interviews e.t.c. My advice: Adopt. If you’re on a mailing list where every other candidate is fixing bugs, then do it. Otherwise, it’s more about bringing in ideas and perspective.
Often, organisations are explicit about the same. You might want to check their GSoC pages/ consult with people from organisations that interests you. Do a lot of research on the organisation you want to work with. Services they build, languages they use (this shouldn’t be an issue) and if that interests you.
Communication with the organisation is very important. An organisation gets tens if not hundreds of proposals, all equally good and qualified. How can they trust a random person, halfway round the globe? If you can show that you’re passionate enough to work, skilled enough to code and dedicated enough to be a long-term member of the community, you’re 100% in.
Every organisation has it’s own way of communication. Some prefer mailing lists, others the IRC and a very few others use asana, bootcamp e.t.c. Whatever it might be, be an active member of it. Again, an important thing to remember is to make your presence felt amongst the developer community. This will help you at later stages of application process. But always remember to ask intelligent questions. Never give a chance for someone to redirect you to this link.
Next, understanding the codebase. This is a daunting process if you’re new. But a little perseverance can get you through this. You can always ask for help in your community discussion forums and help others whenever you can.
Proposal writing is a tricky part. Opinions/ expectations differ. I would recommend writing proposal(s) for a single organisation. There’s no point in writing it for multiple organisations, it doesn’t increase your chances of selection. Also, you might write multiple proposals to the same organisation (at most 2, if you ask me). Remember that proposals tend to change during the period. A good proposal would include motivation of why the project/idea is essential for the organisation, a precise description of the implementation process (or an idea of how you’re planning to implement), concrete milestones, and availability. The “about me” part is not important, you can provide an external link to your blog/ linkedin page e.t.c. Take extra care while writing blue sky proposals, make sure you get it verified by your mentors before you submit. Otherwise they might end up in spam.
Write your proposal as early as possible and get it reviewed by your mentors. Sometimes, peer reviewing can also be done. I would recommend not to PM/ mail the mentors directly (or anyone else for that matter). Also, don’t ping mentors unless it’s really necessary. Ask permission first, mailing etiquette matters a lot.
After the proposal deadline, you might have to hang around in the IRC, solve some minor bugs, discuss implementation process of your project e.t.c. Because if you haven’t really proved your dedication/ coding skills to the organisation yet, your chances of getting accepted gets even slimmer, no matter how strong your application maybe.
Luck always plays a major role in our lives. You might need a pint of potion of luck too.
Acceptance/ rejection into the programme isn’t an indication of your coding skills or technical abilities. There might be millions of reasons for your rejection. Mentors may not be available, the organisation may not have enough slots for your project or it may not be the right time for your proposal.
Just do your best and leave the rest!
P.S: I am fairly new to GSoC as this will be my first experience, all my views/opinions may not be authentic for some.