Hope this helps you get prepared for GSoC participation.
--------------------------------------------------------------------------------------------------------------------------------
Hey Guys,
Yes! GSoC 2012! Its time you start preparing!
For those of you who don't know what GSoC is, it is a program (like an
internship and you have to work from home) in which you get to work on a
project for another existing open-source project. For example, you may work
on a project that is about improving some part of Mozilla Firefox or you
may work on something like writing a library for OpenCV or you get to work
on a MediaWiki plugin. The projects that get get selected for Google Summer
of Code are very very good projects and if you get to work on them, you get
to learn a lot. You get to learn about best programming practices, how to
work in an open-source community, version controlling, development
procedures, etc. You will also be assigned a mentor who will guide you
through your project and review your work. GSoC is for 3 months. You can
work from anywhere in the world. And, the best part is that you get paid.
Last year it was $5000, which is a lot of money.
Apart from all that, you get to know good people in your field and you
learn a lot. These people may become your potential employers in the future.
The idea behind GSoC is to get more contributors for open-source projects.
So ideally, once you are done with GSoC, it is your responsibility to
continue to work on your code and improve it or provide patches for bugs
when necessary. Ideally, you should also get involved deeply with the
open-source project you will get to work for.
So if you didn't know about GSoC, find out more and try to get in. There
cannot be a better way to get involved in an open-souce project. And hey,
you get paid for a good cause! :)
For more details, visit this link: http://code.google.com/soc/.
The Procedure
Getting selected in GSoC is no easy task. It is a long process and in a
way, it begins now.
1. *Your marks DON'T MATTER*. Yes! It is not an issue for them if you
have a back or if you are 9 pointer. You can contribute and be a GSoCer.
2. Select an organisation/project you want to work for. For example:
MediaWiki (the software that powers Wikipedia), OpenCV, Wordpress, Drupal,
Mozilla, Fedora, etc. There are more than a hundred organisations that
participate. Read further on how to select your organisation.
3. Get involved with the community. Start contributing now and don't
wait.
1. Talk to people on IRC channels of that organisation. Don't forget
to read IRC etiquette. And honour them. One suggestion from my side is
*try to be patient*. It mostly pays off. Click
here<http://www.ircbeginner.com/ircinfo/etiquette.html>to read some
general IRC etiquette. The organisation you want to get
involved with might have their own guidelines so don't forget to
check that
on their website/wiki.
2. Join mailing lists. Most of the IRC etiquette apply to mailing
lists also. There might be some additional guidelines as well so look for
those on your organisation's website/wiki. Click
here<http://kandalaya.org/guidelines.html>to read some general mailing
list guidelines.
3. Their can be numerous ways of contributing to a project - coding,
testing, documentation, localization, design, promotion, etc. GSoC is all
about programming and contribution by coding will count in your
selection.
So you should work towards contributing by coding.
1. The best way to start contributing as a programmer is start
solving bugs that are simple or marked for beginners/novices.
Slowly you
can move to more difficult problems. Don't directly dive into
something
very difficult.
2. Almost every project/organisation has a page on their website
that talks about how you can contribute to that project. For example,
Drupal has this page on their website:
http://drupal.org/getting-involved. These pages carry details to
ways of documentation and how you can contribute as a
programmer (or as a
designer, etc.). Go ahead and read about how you can
contribute code, the
procedure, steps of contributing, coding standards and practices. *You
must follow the guidelines strictly*.
3. When stuck somewhere or don't know where to start, write to the
mailing list or talk to other contributors on the IRC. Tell
them that you
want to contribute but don't know where to start and if they
can lend a
helping hand. *Remember: be polite and patient*! Generally their
websites provide names of people who you can get in touch
with on IRC for
help. If there isn't one on their website, then try to get in
touch with
those who are there on the IRC channel.
4. After a couple of contributions, you can start talking about
Google Summer of Code with people who have been helping you out so far.
Tell them you want to participate. What is the best way or if there is any
idea your contributor would like you to pitch for? Would they like to
mentor you? You may also propose a project idea of your own. Read further
on how to select a project idea.
5. Decide which the project idea you would like to work on. Try to have
some people backing you up for your project idea.
6. The official process will begin sometime in March when the
participating organisations will be announced on GSoC's website.
7. After that registrations will open when you will have to register
yourself. When you register, you will have to prepare a detailed proposal
of what you want to do, how do you plan to achieve that, and a proper
timeline of events: what milestone you will cover by when.
8. Then the voting period will begin. Other contributors from your
organisation will vote on all the proposed ideas associated to your
organisation. The projects getting highest number of votes get selected.
Every organisation has a fixed number of seats. For example in 2011 Drupal
had 20 seats while Wordpress had around 10 seats. So out of all the
proposed projects for Drupal, top 20 project with highest votes will get
selected.
9. You will get notified when you get selected. You will have enough
time before the project actually starts to get more comfortable in the
community and communicate more often with your mentor(s).
Selecting your organisation
Selecting an organisation is the most important task as everything depends
on that. So read carefully:
1. A list of organisations that participated in GSoC 2011 is available
here:
http://google-melange.appspot.com/gsoc/accepted_orgs/google/gsoc2011.
2. Following are some parameters on the basis of which you may select an
organisation for yourself:
1. *Your current skills*
You are going to be coding after all. So you must consider what are
the technical skills required to get involved with an
organisation/project.
For example, if you think you are good at C programming and algorithms,
then selecting Wordpress as an organisation might not help much because
Wordpress' code is written in PHP, HTML/CSS, JavaScript. You will have to
learn all that to get involved. So try selecting an organisation that in
someway fits your current technical skills. Obviously, you wouldn't know
everything, but if you know something it will be easier for you
to catch up
and learn other things related to what you already know.
You may select an organisation even if its technical requirements
don't match your current skill set. But for that, you must have a strong
reason. For example: interest!
2. *Your interests*
As discussed above, you should also take into consideration what you
are interested in. For example, you might be interested in Graphics (the
programming part, don't confuse with Photoshop please) then you should go
for organisations related to graphics. If you are interested in
networking,
try organisations like NMAP. If you are interested in Web
Development, try
Drupal, Wordpress, Joomla, MediaWiki, etc.
If you have strong interest in something and you are determined to do
it, then your current skills don't really matter that much. You will be
able to quickly learn and catch up.
3. *Projects/organisations you think are very cool*
This is another very important factor. You must believe that the
organisation you are going to choose is COOL and DOES COOL WORK. It is a
motivational factor. And that is what drives you to work for that
organisation.
3. It is really the combination of the above three factors that you
should consider. Give importance to all of the factors and decide wisely!
It is also an important decision for a long term point of view. Google
Summer of Code works towards creating new contributors who get involved
with the organisation for a very long term and contribute. If you are
applying, you are trying to get involved with that project deeply as well.
And in my personal opinion, you must continue to contribute after GSoC as
well. Work for a good cause! That means that you are going to work on that
project and contribute to it in your free time. Therefore, the project you
select must be a project that you really like as you are going to work on
that for a long time.
4. Start working now! :)
Select a Project Idea for GSoC
The second most important thing is select a project idea to work on. The
projects that were selected for GSoC 2011 can be found
here<http://google-melange.appspot.com/gsoc/projects/list/google/gsoc2011>
.
1. *Ideas proposed by the organisation*
Some communities propose ideas of their own and asks aspiring students
to apply to work on those ideas. Generally these ideas will already have
someone from the community who will be the owner of the idea and will be
mentoring for that project.
You may talk to the project idea owners about working on the idea you
like the most. Consider your skills. Do your homework before talking to
them. Read docs about that project idea on their website. Research. Try to
formulate a solution for the proposed project idea. When you talk to people
in the community about a particular idea, try to be as prepared as
possible. Create documents and host them online somewhere like Google Docs
or EtherPad so that the docs can be easily shared with others.
Generally the proposed idea will be available on the website of your
organisation. And the page may have a commenting system. Voice your
opinions there. Discuss ideas.
2. *Ideas proposed by you*
You may also choose to propose an idea for GSoC. If you think that you
have a killer idea and you think it might be worth working on, then prepare
a nice proposal with all the details of your idea: problem statement,
current solutions (if any), your proposed solution, how you plan to execute
it, how much time you will take to work on it, work timeline, etc. Document
it somewhere - Google Docs, EtherPad, or you may also create something like
a wiki page on your organisation's website (read guidelines before creating
wiki pages, etc.). Be professional, format properly, indent properly, add
links and images/diagrams where necessary,
You should then go ahead and discuss your idea with other contributors.
Listen to them. Discussions really help. Other contributors will help you
with making your idea even better. Their suggestions are very very
important. Talk to them over IRC so that others can also get involved in
the discussion.
Getting Selected for GSoC
- The only way to get selected for GSoC is to prove that you will be
able to do your project.
- The only way to prove that you will be able to do your project is that
show them your work and code.
- College projects don't help because:
- they might not be related to your organisation's field.
- they are mostly crappy.
- The best way to show that you can work is contributing code before
talking to people about your project idea or before applying for an idea
proposed by the community.
- More the work you do, better are your chances of getting selected as
that is the only way communities can judge your capabilities.
Coding Period
1. The project coding period will officially begin sometime in May and
you will receive your initial payment (in 2011 it was $500).
2. There will be a mid-term evaluation. The date will be published on
GSoC's website. You will have to prove that you have done work until then.
Your organisation and your mentor will assess your progress. If they think
that you have done good work, you will be passed and you may continue for
with your project. You will then get another payment (in 2011 it was
$2250). If they think that you have not lived up to their expectations, you
will be disqualified from the program and will not be allowed to work
further on that project as a GSoC project (however you can continue to work
and still contribute but you won't get paid).
3. In August, you will have your final evaluation when you will be
required to submit everything. Your work will be assessed again by the
organisation and your mentor. If you pass that, you will get your remaining
payment, the GSoC t-shirt and the certificate (which is really cool). If
you don't pass that evaluation, you won't get your final payment, t-shirt
and certificate.
4. The program ends here.
Important Links
Google Summer of Code on Github - http://code.google.com/soc/
Google Summer of Code 2011 Website -
http://google-melange.appspot.com/gsoc/homepage/google/gsoc2011
Help
You can directly reach out to me and I will try to reply as soon as I can.
You may choose to post your problems on OSDC's mailing list. That ways,
everyone will benefit.
Best of luck!
Vaidik Kapoor