Hey, folks! Happy Star Wars Day, first of all!
My name is Rishabh, and I'm currently a uni student, pursuing B.Tech. in Information Science and Engineering. I got introduced to programming when I was 15, and it has been an adventure ever since. Back then, I had no clue about what open source was or how it worked. I learned things that seemed interesting and built projects that I felt like working on. But once I discovered the world of open source development, my programming journey took a turn for the better.
So if you are also a noob when it comes to open source development, this article is for you. Enough about me, let's get started.
So What is Open Source Anyway?
“In real open source, you have the right to control your own destiny.” — Linus Torvalds
We’ve all been using open source software in our daily lives one way or another, and we might not even realize it. Linux, VLC, Firefox, Android, Wordpress, NodeJS, etc. are just a few examples. Even large multinational companies make use of open source software one way or another.
Why should you care? Well, imagine that the person who created a specific programming language never had decided to open source it. Imagine if you had to buy or rent a programming language just to learn how to code. Scary, right? The world would've been so different.
Open source software is software with source code that anyone can inspect, modify, and enhance. People prefer using open source software rather than proprietary software for a number of reasons. It provides control, stability, as well as security to the users.
But if all the code is available for free for open source software, shouldn’t it be vulnerable to malicious threats? Eh, not really. Take Linux for example ;) Linux is far less likely to get a malware when compared to Windows, which isn’t open sourced. Linux is still managed by its creator, Linus Torvalds, and has contributors from all over the world trying to make it better every single day.
Why Open-Source?
Contributing to open source is a great way to get real-world software development experience even if you're a beginner and don't have a job in the industry. The open source community is very helpful and encouraging.
One gains exposure, can test their skills, gain knowledge, and bond with the community in order to produce quality code that helps people around the world. You'll even gain a lot of experience when senior programmers review your code and advise you on how to improve it.
Getting started with open source for a developer is easy. Yes, you heard that right, even though it seems challenging to many first-timers. The problem is that most people don’t know where to start, and if you’re one of those people, you’ll get your answers in this blog.
How I Bumped Into Open Source
It was around October last year when I was randomly surfing when I stumbled upon an article titled, "Get Free T-shirt delivered at your doorstep just make 4 Pull request". It seemed intriguing, so I clicked and found out it was about Hacktoberfest.
Hacktoberfest - It is a month-long celebration of open-source software. It was started by Digital Ocean in 2014. People from all over the world contributed to make it a huge success. It is now a regular event in October every year. In the end, you get a free t-shirt delivered at your doorstep.
So yeah, a free t-shirt was the driving force that started my open source journey. Since then, I have contributed to so many open source projects, and now when I look back at all my contributions and the community I am part of, it feels great and totally worth it.
Things I Learned From Open Source
Contributing to open source development has taught me a lot of lessons that have been vital in my overall growth as a developer. Here are some of the key takeaways from my by brief stint in the world of open source so far.
Be persistent
Usually while starting out, new developers often find the code base of open soure projects, especially popular ones, quite intimidating, and this was the case for me as well initially. But my first piece of advice to you as a rookie open source contributor is to not give up easily. There are many instances I can recall when I was frustrated, when I couldn't find the bugs, when I didn't yet know what I didn't know. It's a difficult time in any beginner's coding journey, but I kept on working on it and bringing my doubts to the code maintainers, and I was eventually able to solve all those bugs and write decent code. That feeling you get when you fix a bug and your Pull Request gets merged cannot be described in words, trust me. So, don't give up easily. In the end, it will be worth your while.
Never hesitate to try
If there is something you want to try, just give it a go and see what happens. It might not be for you in the end, but at least you'll have the satisfaction of knowing you tried, and you can easily go back to what you were doing previously. Even I gave open source development a shot, and now I am loving it so much that I am writing a blog on the subject.
Accept your ignorance
My advice to all developers is to accept your ignorance when starting out, because it is not a bad thing at all, it is natural. If you aren't an expert in a domain, you need not pretend to be one for whatever reason. It's okay to say, "I don't know, I'll have to look into that." In fact, it's the mature and sensible thing to do. And no sensible person will reprimand you for it.
Don't count the number of hours
Generally, there are two type of bugs you will encounter. First is the Good first issue labeled ones which are basically typo fixes, small bug fixes, or some documentation changes. And the second one includes things like feature enhancements or some important integrations in the application, which will require serious effort and time of yours. You should never shy away from these issues even though they're time-consuming and require a lot of work. These are the issues that help you level-up in the long run. If you worry about why you're putting in so many hours into the work product of an organization that doesn't even pay you, you won't get much benefit out of open-source. Real knowledge and depth come from solving complex issues. So be generous with your time.
Always provide value
"Leave things better than you found them."
You must aspire to live by this mantra, especially when it comes to open-source development. When you provide value, the universe has a funny way of returning value back to you. And if you trust in that, your open-source efforts will reward you, often in ways you didn't even imagine.
Conclusion
Open-source development is something that every dev must try, especially beginners. It can help you find your footing in the infinite world of programming, and you also learn a ton of things. And you're pretty much sure to make some amazing friends who will support you in your endeavors.
That's the power of open-source.
P.S.
If you're passionate about open-source development and looking to contribute to exciting open-source projects, Team XenoX might just be your calling. We're always working on something cool. So I'd love for you to join us! Check out our work at XenoX Multiverse! 🔥
Write for XenoX!
Team XenoX is also looking to add more authors to our publication. If you like writing and have some creative ideas you'd like to share, we'd love to have you! 💯 Your blog posts will gain a lot more eyeballs. 👀 You'll get a chance to win some cool swag. And hey, you also get expert consultation and free proofing/editing from our best. 😉😎
If you want to apply, just go here and enter your details:
https://forms.clickup.com/f/1rz92-3351/VMFE0Q81LI7E0A92Z0
Join our Telegram Channel!
We share the best resources, articles, and other cool stuff for devs from across the internet on our Telegram channel! Join the party! 👉🏼 Link
Top comments (7)
If anyone is looking for a project to contribute to, we are a small approachable team over at supabase.io
And we are working on some very cool stuff like realtime Postgres + auto-generated APIs.
We have plenty of opensource tasks, so if you want to help but don't know how to get started, reach out to me directly - copple@supabase.io
Or see here for a list of small tasks that we are compiling: github.com/orgs/supabase/projects/3
My 2 cents: I've learned A LOT my open sourcing a tiny library of mine. And even 20 people per week use is and that is cool. :)
Hey motivating article! How much do you feel you've improved as a developer by contributing to open-source projects?
A lot means A LOT!!
I will give a big chunk of credit to Open Source for me being a decent developer.
by
Benjamin Franklin