Do you have some programming experience and are comfortable in at least one or two programming languages? Then, yes, you are good enough! No, you don’t need to be a Computer Science or IT major or have been coding for 5 years. Have work experience programming but spend your time studying philosophy? Yes, you are good enough to be a GSoC contributor!
“Although at first I was a little inexperienced in the world of mobile applications and a bit overwhelmed by the challenge, I can positively say that four months later I’ve gradually overcome all the obstacles. I had a great mentor, that’s for sure!”
Evelina Vrabie, Romania, Android Project - GSoC student
Every project has a different criteria for selecting GSoC contributors and subsequently different skill level requirements. If you meet the below list of general skills you are likely to find a GSoC project to which you can feel comfortable applying:
The soft skills
You find out where to go for help with technical questions
There are many available resources on the interwebs to go to for help with technical questions, knowing how to use a search engine to begin your search is very important.
You take and respond well to feedback
The community developed software model relies heavily on constructive feedback and the willingness for each contributor to take that criticism and make the code better. You are going to be getting regular feedback from your mentor – not all of it is going to be “this is great” “you are awesome.” Learning from and graciously accepting feedback is a very important trait for a successful GSoC contributor.
You can work independently
Since you’ll be spending significant amounts of time working alone - not being afraid to face the unknown and start breaking down what may initially seem like insurmountable problems independently is important.
You know when to ask questions
Do you think you already know everything about everything in the world of open source programming? Then you probably aren’t good enough for GSoC!
You can communicate effectively
Communication is key to GSoC. We will mention this many times in this guide. Being a successful GSoC contributor requires you to communicate with your mentor and the community regularly. Much of the time the communication is via chat or email but you may also have weekly video chats with your mentor or community. If you are behind schedule or you are stuck on implementing something but have tried to find the answer to no avail, reach out to the community and your mentor, don’t stay stuck.
The technical stuff
You can install and configure software packages on your own
If you don’t know how to download and install packages on your own, you’ll need to figure that out, stat.
You have access to a functioning computer
If your computer regularly dies, or you don’t have dedicated access to a computer you’ll need to figure that out before you start your project. GSoC is a significant time commitment, don’t expect an hour or two a day in an internet cafe to be enough!
You’ve got experience using the programming language and operating system of the project
Depending on the project, the skills necessary will range from beginner to expert, but you do need some experience. One of the great things about GSoC is that there is a large variety of organizations and projects to choose from. Chances are very good that you can find a project that meets you at your level, even if you are a beginner! If the project primarily uses Linux for development and distribution, then you need to be comfortable with basic Linux usage. Sometimes, you’ll see projects looking to expand onto other platforms, in which case you may be able to bring in new expertise.
Every project has additional characteristics that they look for when selecting contributors and projects - however, if you meet the above basic criteria - chances are good that there are GSoC projects and organizations to which you can feel comfortable applying.
Pro Tip: Read the organization’s requirements or skills they are looking for in potential GSoC Contributors
Be aware that some requirements are likely to be firm and you must meet those requirements for the organization to consider your application. For example, many organizations require potential GSoC contributors to submit pull requests as part of their application, or they require you to have a chat with someone in the community about your idea before submitting your proposal. More complicated projects will likely require familiarity with particular programming languages, processes or techniques. It is also possible some organizations may be looking for students who are earlier in their development, while other organizations may be looking for applicants more advanced in their skills.
However, some of the requirements may be less stringent and could be things you can learn quickly, just be sure to mention that you are working on these skills, etc. when you are discussing your proposal with the organization.