10
DECODING GOOGLE SUMMER OF CODE TOPTALENT.IN

finalalajajdh

Embed Size (px)

DESCRIPTION

shxjs

Citation preview

  • DECODING

    GOOGLE

    SUMMER

    OF

    CODE

    TOPTALENT.IN

  • Index

    1. What is GSoC?

    2. Selection Process

    3. Project Proposal

    4. GSoC Experience 1

    5. GSoC Experience 2

    6. Sample Proposals

    2

    3

    5

    6

    7

    9

  • Google Summer of Code is a global program that offers student

    developers stipends to write code for various open source

    software projects. They work with many open source, free

    software, and technology-related groups to identify and fund

    projects over a three month period.

    Since its inception in 2005, the program has brought together over

    7,500 successful student participants from 97 countries and over

    7,000 mentors from over 100 countries worldwide to produce over

    50 million lines of code.

    Through Google Summer of Code, accepted student applicants

    are paired with a mentor or mentors from the participating

    projects, thus gaining exposure to real-world software

    development scenarios and the opportunity for employment in

    areas related to their academic pursuits.

    In turn, the participating projects are able to more easily identify

    and bring in new developers. Best of all, more source code is

    created and released for the use and benefit of all.

    How Google Summer of Code WorksWhat is

    GSoC?

    2

  • First of all, you should understand how Open Source

    Software(OSS) works and how these OSS organisations

    operate.Understanding correctly the GSoC program itself will go a

    long way in ensuring that you get selected and do well in the program

    as well.

    Step 1.

    Once you understand the in and out of the world of Open Source,

    start with the list of accepted organisations in the past years and pick

    one of them. The way you choose an organisation depends on a lot of

    factors. e.g.

    - Products/services that they build

    - Projects that they are working on

    - Programming languages they used to code

    - Other tools, technologies and platforms they use for their products

    Step 2.

    Having selected an organisation, your next step would be to contact

    the organisation telling them about yourself. Ways to contact the

    organisations: Mailing lists, IRC etc. You will find this information from

    their pages on the GSoC website.

    Step 3.

    Now that you have inputs from the developers of the organisation, you

    can get started with getting yourself familiar with the codebase. These

    applications/products usually have huge codebases and making

    sense out of it may be pretty daunting at first.

    Step 4.

    Provided you manage to solve the bug or develop that feature, the

    next step will be to commit your code to the Trunk/Central Repository.

    Enter Version Control Systems(VCS) - go and learn the one your

    organisation uses to maintain code repositories and track

    contributions. The most common ones are Git, Mercurial, SVN etc.

    How To Get Selected In GSoCSelection

    Process

    3

  • Step 5.

    Next is the application period. As soon as Google announces the list

    of the accepted organisations, start looking for the prospective project

    ideas. Though Google allows you to submit your own original ideas as

    well its better to choose from the list of the ideas provided by the

    organisation itself as it shows the importance of that idea to that

    organisation. However, if the idea is truly meaningful and has a

    feasible implementation plan, there have been instances where

    original ideas have been accepted as well.

    Step 6.Now, once you have zeroed in on a project idea, start discussing the

    ideas in detail with the mentors(prospective) and ask relevant

    questions.You can even code a small part of the project, by doing that

    you really improve your chances; as you gain the confidence of other

    developers and mentors. Start writing the proposal as early as

    possible.

    The main idea behind having a ten-day window for the application

    period is to let students and mentors discuss the ideas in as much

    depth as possible,make sure that before submitting the proposal, you

    get your proposal reviewedby your mentors as much as possible,

    Though there is no particular way of writing a proposal (every

    organisation has its own template), the main ingredients of a good

    proposal are that it should address two kinds of audiences - one

    which is completely familiar with the technical details of the

    project(that would be your mentors and organisation devs) and the

    second one is a neutral not-so-technical audience which is able to

    understand the deliverables of the project(in most cases that would be

    the user base).

    How To Get Selected In GSoCSelection

    Process

    4

  • Introduction: Every software project should solve a problem. Before

    offering the solution (your Google Summer of Code project), you

    should first define the problem. Whats the current state of things?

    Whats the issue you wish to solve and why? Then you should

    conclude with a sentence or two about your solution. This is

    somewhat like an elevator pitch.

    Project goals: This section should again be short and to the point,

    and it might be a good idea to format it like a list. You should propose

    a clear list of deliverables, explaining exactly what you promise to do

    and what you do not plan to do. Future developments can be

    mentioned, but your promise for the three months of Google Summer

    of Code term is what counts.

    Implementation: This section can be longer and more detailed. You

    should describe what you plan to do as a solution for the problem you

    defined earlier. You dont need to provide a lot of technical details, but

    you do need to show that you understand the technology and illustrate

    key technical elements of your proposed solution in reasonable detail.

    Timeline: This section is easily overlooked, yet its arguably more

    important than the previous section. With the timeline you show that

    you understand the problem, have a solution, and that you have

    also broken it down into manageable bits and are have an actual plan

    on how to approach it. With this section you set expectations, so dont

    make promises you cant keep. A modest, realistic and detailed

    timeline is much better than a timeline that promises to move

    mountains. Mentors can spot unrealistic timelines.

    About me: If youre done with the other sections this will be a piece of

    cake. Just put down your contact information and write a few

    sentences about you and why you think youre the best for this job.

    Its ok to brag a little

    Creating a Project ProposalProject

    Proposal

    5

  • Janani Padmanabhan shares her GSoC experience.

    1. Can you describe the complete selection process?

    Janani: The selection process for Google Summer of Code is a pretty

    straight-forward one. Once the list of participating open source

    organizations is out, we have to shortlist the organizations whose

    purpose best matches with our interests, look into their functions and

    source-codes, contact their active members and most importantly

    come up with a project that is in line with their aim and of interest to

    the active contributors. We then submit a detailed proposal which the

    organization reviews and then proceeds to select the projects that are

    of use to it. My detailed proposal can be viewed here.

    2. What project are you working on currently?

    Janani: My project is with SciPy, a Python package commonly used

    for mathematical aspects of scientific computing applications. I aim to

    improve the speed of spherical harmonic function, develop ellipsoidal

    harmonic functions and to debug hyper-geometric function.

    3. How much preparation did you put into this opportunity?

    Janani: I took my own time to get acquainted with the mailing culture

    and the code base of SciPy. It took 2 months to get acquainted with

    the organizations, to understand the direction of its development and

    also to learn and familiarize myself with version control systems like

    git. Then my focus was to develop the proposal and refine it based on

    the inputs from the prospective mentors and other active members.

    4. Whats your advice to others looking for a similar opportunity?

    Janani: Basically, we need interest and perseverance to make it

    through. Open source coding, documentation and mailing etiquette is

    not something we have in our formal curriculum but it is definitely a

    window to the actual coding world out there. It also allows us to meet

    some amazing people across the globe. So, GSoC or not, I would

    advise all the Computer Science students to give it a try.

    GSoC Experience - IGSoC

    Experience

    6

    http://www.google-melange.com/gsoc/proposal/public/google/gsoc2014/jennystone/5629499534213120

  • Dhananjay Sathe shares his GSoC experience.

    How did you decide on your project and what prompted this

    decision?

    I have been an avid linux user and FOSS enthusiast since around

    2003 when I first got Linux to boot up on my PC. Using it as a primary

    OS made me familiar to all the communities, software and norms

    involved in this kind of development.

    It also made me aware of what problems one faces and what new

    stuff could be done. I had this habit, perhaps out of frustration with

    open source software back in those days, if my app crashed or lacked

    some functionality I would try to debug it or try and add in the new

    feature. Samba is a great and powerful tool to have but unfortunately

    it has a 8500 line man page and can be quite intimidating to new

    users. I found this a major issue in people around me on campus and

    I thought samba Gtk was a great way to work on solving that issue. Of

    course the required background knowledge of Gtk, python and a

    decent idea of what samba was and how it works were the final things

    that culminated in my app to Samba.org

    What are the benefits of getting into GSoC and how does it help

    further while applying for a job?

    In one word HUGE! If done right, it is perhaps one of the worlds best

    experiences for aspiring developers. It exposes you to some of the

    best developers on the planet. You learn a lot more than you can think

    possible. You get to deal with people from multiple time zones

    and ideologies. You learn about code development practices, version

    control, communication, the code base itself and numerous other

    minor but very important skills required in the real world but

    completely missing from the scope of formal academics.

    The benefits show in you, you have much better ideas, practices and

    experience than most of your contemporaries.

    GSoC Experience - IIGSoC

    Experience

    7

  • Also the folks hiring you realize the value of it all. It gets much simpler

    to get involved in new open source projects and further your passion

    and skillset. You develop a ton of contacts and gain access to

    information and opportunities you otherwise wouldnt know about

    .Last but not the least, its a huge brownie point to have something

    concerned with Google and Open Source on your CV.

    How should one prepare if they want to land a GSoC project?

    How was your journey and whats next?

    Follow your passion for software development, learn something new

    every week, hack it. The last point is most essential. People often try

    reading books and learning a new language or toolkit for the sake of

    it. Dont do that, learn the bare basics, get hold of the source, hack it

    up and learn as you move ahead. Google has a great search engine

    and project wikis have a goldmine of information, make the most of it.

    Its never too late to start, but of course the earlier the better.

    I had a blast during my two Summer of Code projects, it was great fun

    and a lot of learning too. I gained a LOT from it. I will now be working

    on the next generation of the internet and robotics cloud robotics at

    ETH Zurich for my bachelors thesis on some exciting stuff with the

    open source cloud engine. Its been one heck of a journey.

    GSoC Experience - IIGSoC

    Experience

    8

  • ALL THE BEST!

    For more E-Books & Jobs logon to www.TopTalent.in

    Sample Proposalshttp://goo.gl/B0oEup

    https://www.toptalent.in/http://goo.gl/B0oEup