DEV Community

Cover image for How to Become an Open Source Developer ?
Michael
Michael

Posted on

How to Become an Open Source Developer ?

#DISCUSSION

This question goes out to experienced devs who've worked on sizeable/non+trivial opensource code.

What actionable steps can someone who wants to learn programming intimately to the point that they could contribute code to/ maintain their own open source project. (stuff like clean code, design patterns, project management, domain knowledge)

ie how to get from noob -> [Evan Yoú, TJ Holowaychuk, Dan Abramov, Hakim El Hattab, Anthony Fu, Chris Harris etc] my open source heroes

🥲 please no vague/"it depends" kinda answers

Discussion (11)

Collapse
paratron profile image
Christian Engel

Opensourcing some code is simple. You create a public repository, upload your code and give it a proper license.

The tricky part is: how do you actually create an opensource project others can trust in and contribute?

Three points from the top of my head, I am sure the list can be extended.

Documentation!

You need to clearly describe what your project does - in short and clear language.

You need to write clear documentation about how it is used, with examples.

Documentation is the most important part and hard to get right.

Tests

The project should be toroughly tested so others can trust it works reliably.

This will give you peace of mind as well. The fear of breaking something for potentially tens of tousands other projects by issuing an update can be paralyzing.

Contribution guidelines

Explain the rules for participating in an open source project. Give constraints of which technologies and/or dependencies are okay to use. How should code be formatted.

Collapse
free_one profile image
Michael Author

it's good to know that they're are options, I've always been particular about just code

Collapse
sainig profile image
Gaurav Saini

The key is start small. I’m still not a regular open source developer, but I’ve started with some small contributions like docs and other very trivial stuff.
I also created a react component of my own and put it on npm, and it was much well received than I anticipated.

Fast forward to today, I feel much more confident knowing that there will always be someone to help (this is the case for most open source projects) if I get stuck.

There are also many helpful websites like codetriage.com/ and firsttimersonly.com/ which are built specifically to help people enter the world of open source. The “Explore” tab in GitHub is also a great place to scout for projects. Almost every well maintained project will have helpful tags on the GitHub issues like “good first issue” to help new developers.

So the best advice that I can give is to just start small and don’t lose confidence, trust me , it’s all downhill from there. All the fancy stuff you mentioned will come automatically with time.

Collapse
lexlohr profile image
Alex Lohr

First of all, you don't even need to start your own project. Joining an established project is going to help your experience a lot more.

There is always stuff that even a beginner can do, like checking the docs for errors or parts that are difficult to understand or translate them to a new language, add or improve tests, check if open issues can be reproduced or comment that they're not reproducible.

Do that and before long, you know more about the organization of open source projects, both technically and from a management viewpoint. At this point, you can decide to start your own project if you so wish – from your contributions, you now should know a few experienced developers who can help you.

Collapse
errorgamer2000 profile image
ErrorGamer2000 • Edited on

It depends... Jk
Know GitHub by heart. GitHub is very important. Specifically pull requests, issues, and issue/pr templates. Get into the practice of making relatively small git commits that group similar changes. Document like the life of the project depen on it. If you have bad docs, nobody will use the codebase because they have no cpue what ot is capable of, and less people will want to contribute. I also suggest using a code formatter (I suggest Prettier) and a linter (ESlint) regularly. This will make it much easier for others to read and understand your code. I suggest using the extensions for each of those in your editor. Use comments to document code that is not self-explanatory. Probably should get the "better comments" extension for vscode if that is what you use, so that you can have comments that stand out. Try to break your code into smaller modules, instead of having files with 2-3 thousand lines, try to keep it under 1k.

I can't give you any advice on advertising, sorry. This should be a decent start though. Keep in mind that these are just my preferences, so not necessarily all the right ideas for your specific projects

Happy coding 🙂

Collapse
brianburton profile image
Brian Burton

If you want to create open source software that people actually use, what worked for me was to choose an active project and participate in the forums. You'll discover real-world needs that you can solve with your efforts by creating open source plugins/addons/modules. You'll also find people willing to pay you to solve their problems so it can turn into full time work.

Additionally as you become well known in that community it will be easier to contribute to the main project.

Collapse
prahladyeri profile image
Prahlad Yeri

As someone else rightly said, the key is to start with something small and manageable. Coding is one of those activities that feels quite easy to start after getting motivated but soon gets so monotonous and frustrating sometimes that you feel like giving everything up and running away!

Most open source projects start with great intentions but end up as side projects in someone's GitHub or museum! Most people simply lack the motivation to carry on once it gets too complicated.

What might help in those situations is your adherence to an open source ideology. There is a reason that people like Richard Stallman, Linus Torvalds, etc. achieved what they started. It was because open source wasn't just a side project for them, it was almost like a faith or ideology or way of life. If you have that kind of attitude, only then you can hope to stick around in FOSS development.

Collapse
free_one profile image
Michael Author

thank you alot. I'm starting small & I need the right mindset

Collapse
jeoxs profile image
José Aponte

You simply create and work on public repositories. That's all.

Collapse
amineheroual profile image
Am1n3 H3r0

yes i'm interesting with this subject i'm a beginner developer and i want to contribute to the opensource

Collapse
nigelrex profile image
Nigelrex

Write code, put it on a public repo on github, repeat