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).
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.
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.
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
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.!
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.
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.