DEV Community

Andrei Navumau
Andrei Navumau

Posted on

ELI5: how to contribute to a project?

Hi there,

I'm thinking about contributing into an open project. I'm trying to get an idea, how to work in a team, even remotely, from home. To learn from more experienced peers, how they organize their code, how they add comments, what approaches do they use in problem solving, what are best practices and algorithms.

I know basics of git, but I haven't contributed to any project yet. My languages are pretty basic: PHP, C#, ASP, SQL, JavaScript, though I believe, I can solve more complicated tasks. All at a beginner or intermediate level. To tell the truth, it is hard for me to measure my level, because I spent many years of learning how to code. It was my hobby or a "side-effect" of my job responsibilities, where I had to research how to fix some features at my websites. My primary occupation was always events management.

And yes, I myself despise this way of thinking - "I wish I could..." or "Tell me how to do this..." I always do my best to find solution myself. I'm a stop-dreaming-start-doing guy. So, yes, I did some research/googled "how to participate in a project". But every time I end up with looking at a list of files in a github folder confused with where and how to start, who to contact, are they accepting contributors, you know )))

I'll really appreciate any guidance from you. Explain, please, like I'm 5.

Top comments (5)

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

You see that grop of kids doing something interesting in the park? Look closer and see what it is. Are they piling rocks, building a sand castle, or playing some silly game.

Does it seem like fun and you want to join? Then ask them if you can. If they say yes, then great. Ask the rules and see what you can do. If they say no, oh well, move on to the next interesting group. Every group is different: some will be welcoming and accomodating, others will be xenophobic and intolerant.

But what if you really want to join the group that doesn't really want you? Then you'll have to learn their game on your own, and somehow shoe them how awesome you are. Build a sand castle on your own, play their game uninvited, bring somebody cool along. Chasing unicorns won't be easy.

That's about all I can say as an ELI5 answer. There's no easy answer here other than just taking the time to figure out how to participate. If you can't understand their docs and code you likely aren't at a sufficient level. But be aware, it can be hard to understand other people's code.

If you're uncertain of your coding then play at the various online coding challenge website. Do them until you're convinced you can do them all, given enough time.

Collapse
 
phillie profile image
Philly

Wow! Couldn't think of a better "explainlikeimfive"-answer. 👏 Looove your allegory of a kids playground. Gotta keep that one in mind when explaining open source contribution to newbies - if you don't mind?! 😊

Collapse
 
tyzia profile image
Andrei Navumau

Thank you.
I'll follow your advise. I enjoyed reading a nice allegory of kids playground you come up with. Sure, I'll take a closer look at other projects and, if not accepted, I'll try to grow to their level. I completely forgot about the opportunities of coding challenges. Thanks for reminder.

Collapse
 
phillie profile image
Philly

In additon to edA-qa mort-ora-y stunning answer, I'd still like to say, you're on the right path. 👌 The first contribution is the hardest - after that, contributing to open source is seriously addictive! 💛

If you're not using any open source libraries within your own code yet (that'd make it easier to find projects to contribute to), you might look out for repositories created by people you know or the ones that are tagged with non-technical & beginner-friendly. Some of them are really thankful when you're doing translations, documentations or other writings - plus, this way it may be easier to overcome one's inhibitions.

Also, I learned communication is kind of the key: just jump in and don't be afraid, comment on issues, aks questions, open a new issue if you got an idea that you'd like to discuss and/or pin the creator of the repository directly when being unsure where to start. A 'welcoming and accomodating' group will help you out and guide the way.

Lastly, open source is not magic. Remember that the person creating a repository is a real person, who makes mistakes, who might not write the best-optimized code, and who can’t see all the edge cases all the time. Changing ones mindset makes it much easier to spot the places where you can contribute.

Eh okay, that's now more like a general advice for first-time-contributors than an "explainlikeimfive"-answer.🙈 But I thought, it might help you anyway! 😀

Collapse
 
tyzia profile image
Andrei Navumau

Hi Rebecca,
Thank you for your time spent for this comment and for suggestions. Yes, I'll start looking for the repositories created by my friends and with "beginner-friendly" tags. Sure, I'll focus on communication first. Thanks for help!