I tried to prepare a #roadmap to #GSoC #GoogleSummerOfCode & the way it turned out it just confirmed my belief that it is not possible to give a general roadmap for it. Any youtuber or any blog post that claims to give you a "Crack" to #GSoC2021 or a Roadmap is straight up lying.
Disclaimer :
1. Open Source comes first and GSoC after that. GSoC is merely a festival to celebrate Open Source and welcome new young developers.
2. GSoC is not an internship with Google, it does not guarantee a job or intern or even an interview with Google.
#OpenSource #Google
"Roadmap" for GSoC
A. SKILL DEVELOPMENT
1. Get proficient in two languages atleast (C++, Python, Java, JS)
- Theory : Harvard CS50 and mycodeschool
- HackerRank for practice and Atcoder/Codeforces for contests
2. Learn one out of these. Two is better
- Web Development
a. Backend : Node.js if you know JS, Django or Flask if you know Python, Springboot if you know Java, Ruby on Rails
b. Frontend : React, HTML + CSS + JS
c. Databases : Concept + Postgresql/MongoDB
- Mobile Development : One of these
a. Android Studio
b. Flutter
c. React Native
d. Swift
- Machine Learning/Deep Learning
a. Prerequisite : Linear Algebra(Matrix properties), Differential Calculus(Taking partial derivatives), Probability and Statistics
b. Theory : Andrew NG ML course, Andrew NG DL course
c. Projects : Sentdex youtube videos, FAST.ai course, Learn Pytorch+Lightening/Tensorflow+Keras/JAX and build stuff
d. Cool Stuff : 3 blue 1 brown videos
- Desktop Apps : Electron for JS background, Qt for C++ background, PyQt for python background
- Blockchain : Solidity maybe idk 😐
- VLSI/Embedded systems : idk 😐

3. Learn Version control system(Git preferably) and make account on GitHub.
B. Selecting Orgs
1. Look for previous year Orgs & their projects: summerofcode.withgoogle.com/archive/2020/p…
Go through as many projects as you can.
2. Pick 5-6 projects that match your tech stack & you really are interested in. You may not completely understand them on first glance & that's fine.
3. Set up the project locally & play with it. If you face any problems in this ask the community for help through the medium specified by them on their Org page by asking specific questions (Ex : Hi I am X, tried to set up Y locally, faced Z problem. Can someone please help me?)
4. Try reading the codebase of each of these 5-6 projects understand how it works. If you face any problems in this ask the community for help (Ex : Hi I am X, was going through the code to figure out how Y works, was not able to understand Z. Can someone please help me out?)
5. Start talking to community - mentors, previous year students, other contributors & org admins about the projects. Talk to them about what your experience was when you setup the project & played with it, about what bugs you think are there & suggest features that can be added.
Further, Ask them what they think is the future of the project - things they'd like to see added and taken care of. Make logs of all of these interactions as it will be super useful while writing the proposal.
6. Depending on how much you are interested in the project, how much you are comfortable with the codebase of the project, how much you like the community, competition involved, narrow down your target projects to 2 or 3.
C. Getting Selected (?)
0. Some Orgs have qualification criteria: like building a working prototype or some coding assignment. If something like this exists, the information will be available on the Org's GSoC page. Clearing this up with your mentor at some point is a good idea.
1. Contribute code : start with adding documentation, then approach issues marked as good first issue. In case there is nothing like that ask for help in the community for beginner friendly tasks that you can do.
2. Write a good proposal : Every org does it differently
- Format: Some have a proper format that you are supposed to strictly follow. Some may not have a proper format but do have certain guidelines such as some compulsory sections that you must have in your proposal.
Some are more laid back and do not have any such format or guidelines. In case any such format/rules exist you will find this too on the Org page itself
- Content : Good content is what your mentor and at times org admin think is good. How do you know what they think is good?
Number one by interacting with them as mentioned earlier. This will give you a good idea of what to put in your initial draft in terms of what features your mentor is looking for. Number two by asking your mentor to review your proposal.
So, Prepare an initial draft on the basis of your interactions -> show it to your mentor and admin and ask for suggestions/criticism -> incorporate changes -> ask for review again -> repeat
- Examples :github.com/PulkitMishra/G…
Looking at previous year proposals of your Org may give you a better idea than these. You can get them from your mentors or better dig them up on your own.
Footnotes :
-> You can skip section 2 of point A if you are good with googling and are confident of picking up things on the way
-> A lot of changes were proposed in GSoC mentor summit : linkedin.com/posts/pulkit-m…
The entire thread along with the footnotes are a good indicator of how open ended everything is and why there cannot be a single fit "roadmap" or "crack" to GSoC. Only broad guidelines as specified above can be given. Anyone who claims to give you a crack is fooling you.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Pulkit Mishra

Pulkit Mishra Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!