How to start with Open Source?

I have never even tried open source before this but I want to give it a shot and learn a bit of dev. I have only programmed competitively before this.

Can anyone address questions like which is the best project to start from, how to learn basics of github in the most efficient way(Least possible time)? Also, it would be great if you could give some examples of how you contributed to some project so that I can get a template of what to expect when I dive head first into dev.

I know c++, JAVA and javascript and also have made an app in android(Just a hello world app).

Thank you in advance. :slight_smile:

2 Likes

To learn basics of github: https://try.github.io/levels/1/challenges/1
https://summerofcode.withgoogle.com/organizations/, the site contains various organizations and their various projects links, just sort it out on the basis of your knowledge and INTERESTS.Here, each organization has their own IRC channel, there you can ask them how to contribute to their project.

1 Like

People have asked me this question already a few times over Facebook. They usually ask: “What project can I contribute to?” And the logical counter question is: “What Open Source projects do you regularly use?” And then they usually reply: “I don’t know.” or “I don’t”.

In my opinion it only makes sense to participate in Open Source projects, if you actively use them. Otherwise, how else would you know the project? How do you know what bugs are there and where to fix them? …

So my tip is to start using Open Source.

And I also recommend small projects for the beginning. If you ask one of the main maintainers of GCC some trivial question, I’ll doubth that he will answer you. They are too busy doing actual work, and already have a few good students.

Just keep your eyes open and try new things. There are small Open Source projects everywhere you look. For instance:

  • Do you use an editor that supports plugins? Try using a few. If you like one, that is very helpful for you on a daily basis, then consider improving something. Report a bug, if you see one. Even in projects you don’t enjoy. Maybe you like the idea, but the implementation is bad and it works only half the time. It’s your time to shine.
  • People post projects on Codechef/Codeforces all the time. I’m sure you have seen the Codechef Rating Predictor? It’s an Open Source project written in JavaScript (I guess). If you use and like it, why not improve something there. Maybe a new layout, some improvements in speed, …
  • Keey your eyes open in other places: I usually see multiple Open Source projects every day, just by browsing Reddit. I’ve subsribed to r/programming, r/cpp, … People always post interesting projects there.

One tip at the end: If you participate in Open Source you will have to learn new things and new technologies. It will be quite hard to find an interesting project, that only uses the core C++ features and the stdlib. They might use a GUI library like Qt, doing some graphical stuff with OpenGL, using some JavaScript extensions like Node, … But that’s also the interesting part. You will have to learn new things and will improve as a programmer.

5 Likes

Hey…I too am starting open source and have done just competitive till now.!
I saw these 25 videos in 2x speed and now Github seems fairly easy to me.
The link is:

Also, I’d say if you are familiar with javascript…just like me…
Then you should start with easy projects. You can easily find some projects on

  1. https://github.com/explore

  2. http://www.firsttimersonly.com/

  3. https://opensource.google.com/projects/

I found one project from the github.com/explore in which I am working now to contribute
and opensource google projects are not for beginners , but still I mentioned that.
Happy contributing.!

2 Likes

I had the same doubts on ‘how to actually begin with open source?’ some time before.
I’d say first build some of your small projects in whatever field you’re interested in and upload them on Github side by side. Once you get comfortable with the environment of the languages and framework, you can begin contributing to other projects of your interests.

So, first you should learn some programming language, javaScript, Python or Java whichever interests you.
Then learn what is Git and Github. Get familiar with commands and environment. You can take an MOOC too. I took Udacity’s Git and Github course. It’ll take not more than 3-4 days and it’s good too.
Then start building small web apps and upload them on Github.

1 Like

Hi Istasis.

I dont know much about open-source. The main thing is however that whatever project that you want to contribute to, you will need to know other additional libraries. From a Java standpoint, Maven, Spring and SWT are some of the important ones. Also, I would suggest you to learn OpenGL for a bit of graphics understanding. Since you are mostly from a CP background, these might not be known to you too well. This is why I would suggest NOT to start with open-source projects from the very beginning, as they require a certain level of expertise to contribute to… the interesting ones at least. Making your own applications is a better place to start with, even if it is based on some other project that you have seen and want to add some different features.

As for open-source projects, plug-in development and improvement is nice, though I have very little experience in it( tried once, but gave up, though it was a long time back). Google also has some beginner friendly open-source projects. Another thing is Google Code-in.
Hope this helped.

1 Like

Are they very active? Like…being a first timer I may ask for help every hour. :stuck_out_tongue:

This was great, thank you so much!

As there are many factors, like different time zone, or you may be asking questions easily available on google.So you might even have to wait for 2-3 days to get answers (each community responds differently).
So keep patience and enjoy it.

Thank you :slight_smile: