Need some serious advice (Newbie)

Hello everyone,

First of all sorry if this question has been asked or answered before. I’ve been looking for the answer to this question for quiet sometime and still haven’t found an answer yet, so I’m posting it here.

Im currently a student and need some serious guidance on how to contribute to open source projects. I know quite a few languages (C, C++, Java, Python, SQL, Javascript, PHP) and I’m kind of good at solving problems in websites like HackerRank but have no idea on how to implement the knowledge into real-world projects. I can’t understand the code and can’t make out anything out of it here in Github. I’m intimidated by the complexity of the code and all the APIs that the projects use.

Basically I have no idea about where to start, what frameworks/APIs to learn…etc. I’m seriously interested in learning and would be really grateful if anyone here can guide me in the right direction.

(Oh by the way I already learned the basics of Github)

Thank you.

I would recommend checking this link out for getting started with open source projects. Looks like you have a wide range of languages you know, very impressive. Maybe pick a language that you like best and contribute to it. For instance you said you know javascript, try this link out for getting started contributing to javascript. Or maybe you don’t want to contributing to a language and just want to help someone out with a project. If that’s the case be sure you know how to request a pull request, use this link to fresh up your memory or teach you how to do it. Read this article to boost your confidence in contributing to open source projects. In that link they have another link that lets you practice on real world projects. Hope this helps and best of luck!


@bakasenpai, Have a look at htdig,

It’s written in C and C++. It has a large code base and is complex, but you’d be surprised at how much you can learn by working on small patches in the beginning. Even if you never understand the code completely, the experience of working with other people is helpful. htdig is a project I maintain, and I often work with and am willing to be patient with students who know how to program, but have no experience contributing to open source projects. And I often have learned from students. :slight_smile:

Another project I maintain is rmw. It is a much smaller project, written in C. I am getting ready to implement internationalization for the ouput messages. It’s something I’ve never done before. I have been reading on how to do it, but learning with someone is always more interesting, and often it’s a great help to have someone around to bounce ideas off of, even if they are inexperienced.

Working on projects that you find interesting is always the best. In the beginning, you might work on very easy things, anything you can find. It helps you get more familiar with the process and eventually you will run into a project that you really care about, or get inspired to do a project of your own.

Another place to find projects for new people is Up for Grabs

1 Like