7

I am a new graduate with a degree in computer science. I haven't done any work with companies (or even startups). I wanted to get an opportunity with some company and work with a group on large projects.

However, I thought maybe it is better to have experience dealing with open-source projects before diving in to a real world project, to improve my self-confidence and decrease the risks!

But don't know how to start. I know C++/JAVA at mid-level(maybe beginner?) and like artificial intelligent fields.

What are some methods or criteria I could use to go about contributing to an Open Source project?

  • 11
    Common advice Ive seen is to go on an open source hosting website such as GitHub, identify a project youd like to contribute to and go through the issues log to find the easiest items. Own these and learn how to get them integrated into a release. That in itself would be an interesting stepling stone. – ApplePie May 18 '18 at 9:51
  • 5
    What makes you think open-source projects aren't 'real-world' projects and are there to mess around with? – jcm May 18 '18 at 10:13
  • 4
    @ApplePie that should be an answer ;) – Erik May 18 '18 at 10:27
  • 1
    @ApplePie You should turn your comment into an answer now. – Mister Positive May 18 '18 at 18:09
  • 1
    Also, as an alternative, why not start your own Open source project? – DarkCygnus May 18 '18 at 18:11
7

Open source is great because it gets you access to a wide types of participation on a wide range of subjects.

Want to test? Fix bugs? Develop New features? Try a new language? Manage a project? Start a new project, from scratch? Write documentation? It's all possible. And as you're finding, it can be overwhelming to know how to participate, because you don't have a boss telling you what to do - instead, you essentially have a long list of opportunities and you need to pick where/how to start.

Most open source projects are hosted on a public repository, ie github. Most projects include instructions on how to contribute (although sometimes they're not obvious) or at least names/contact info for people involved in the project. Most people who participate in Open Source are doing so because they want to foster the community of Open Source contributors, so they're often more than happy to help newbies.

Find some (active!) projects you're interested in, contact those already active, and ask the best way to get involved. Likely, as a newcomer, you'll be directed to work on bugs from an issues log, so pick those that look easiest to you. As a newcomer, it's sometimes hard to get real experience on a project that has no one else working on it, so if a project doesn't seem to be getting attention, look for something else.

Before you contribute, it may be useful to watch a project for a few days/weeks to get an idea for the cadence and habits of those working on it. When others check code in, look at specifically what they did and use it as a learning tool.

Consider this as much an exercise in learning to work on a team, and learning to contribute to a group, as it is an exercise in writing code. Which leads me to your comment:

However, I thought maybe it is better to have experience dealing with open-source projects before diving in to a real world project, to improve my self-confidence and decrease the risks!

It's worth noting that Open Source doesn't mean "isn't real." It doesn't even mean "has no economic impact." Lots of open source projects have plenty of "real" implications in terms of powering millions of dollars of economic activity and impacting every day lives. The good news is, you can get involved in this massive engine and make a difference, without first having to get hired by a specific employer. So - don't look at it as "not real" or "low risk" - instead, look at it as a learning opportunity and the chance to make a difference, outside of your paycheck.

0

Wait, you're a recent graduate... and instead of job hunting, you want to waste your time doing open source work?

I'm not sure if you know this, but job hunting is a full time job. You need to network, read job ads, prepare for interviews, talk to an endless stream of recruiters, feel broken at the end of yet another day without a job, but begin the next one with a smile and a bounce in your step.

I can honestly assure you that it is very unlikely that doing open source work will get you a job. Nobody who is looking to hire really cares about your open source resume - for one thing, nobody who is looking to hire you has the time to read your commits to Project X, let alone work out what Project X is doing, or if your commits make any sense.

I don't know how affluent you are, so maybe you don't need money at all, but if you in any way do, then just go job hunting. Experience is still the best teacher too - getting a job for one month is worth a year of meandering open source work.

Your boss will care when you check in rubbish code, or code that isn't performant. You can guarantee you will know about it. Your open source "team-mates" will not care anywhere near as much. End result - you learn much much slower in open source than in a job.

If you want a job, go get one. Don't worry about not being very good at what you do - you are a recent graduate, nobody expects you to be good at what you do.

  • Whatever point someone is at in there career, there life should be a balance of different activities. Contributing to open source can add to that balance, even for recent graduates. In most parts of the world, someone who knows Java & C++ won't have to work hard to find a job. The change is picking the right job. Working on open source projects could help the questioner know what they are is looking for in a job. – user86764 May 19 '18 at 21:12
  • 2
    You may be right that OP is wasting their time looking to contribute to open-source but I disagree that a manager in a company will care more than open-source maintainers about code quality. In some companies, perhaps. Just browsing questions in this stackexchange will tell you otherwise! – jcm May 19 '18 at 21:12
  • 1
    @jcm fair point, fair point. OP seems to think they will learn important skills doing open source work - and I'm sure they will. But the pace will be titanically slower than if they just got a job. I would prefer to hire a recent grad with 3 months experience than a recent grad with only 9 months experience in open source. I'm not even sure how you would "measure" the length of time of open source work, nobody would assume it is full time. – bharal May 20 '18 at 2:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.