My Open Source Journey
I think the first time I heard the term “Open Source” was when we were taught about different kinds of software in 12th grade. I still remember how we had so many defintions to remember, for terms like - proprietary, freeware, shareware, open source software. I’m able to recall only these terms. Also, the definitions had some similarities and I also remember getting confused about the differences and similarities between the terms. We were also told about the term FLOSS and how free means freedom. I don’t recall really understanding what that means.
And then I went to college, and learned about Linux OS, and almost all of my course labs used Linux OS for teaching. Sometimes Mac OS was used. Later I also installed Ubuntu and many other Linux distributions in my laptop, alongside Windows. I slowly understood some things about open source software. I didn’t understand it completely though. Like, licenses confused me - I still don’t get them 😛. But I came across a lot of terms in Open Source when I was in college. I then learned that there’s also Open Source Art and even Open Source Hardware! It was pretty interesting! Later on, I started learning small things online apart from college subjects. Actually, sometimes, I was never learning college subjects, no wonder why I got some low grades during college 🙈. When learning things online, I found that there are so many blogs, paid courses, and then found freecodecamp.org and started learning html, css, js, and then node, npm in nodeschool.io. All of the tutorials were free and open source. I then checked out the tons of npm packages available online. I think that was the first time I was checking out a package registry. I understood that there are so many people contributing to open source. I remember using so many packages and doing magic in my applications with just a require()
. I also created a npm package and published it to learn how to do things. I was pretty proud to see some increase in downloads in npm. I also contributed to freecodecamp site a few times.
And then after college, I waited for my company’s offer. During the wait, I planned to continue freelancing which I started around the end of my last semester. I actually didn’t believe I will be able to make any money online. But I was able to. Guess how? All those js tutorials I learned in freecodecamp, the Open php tutorials I saw on YouTube, all of them helped me with some gigs in Fiverr and Upwork. And then I offered people to install Open Source Software. I got some gigs starting from server side software to client only software. I got paid! That was the first time I was earning!
And then I got my offer letter from my company. At this point, I started thinking about the ways in which Open Source has helped me. Like, I had thoughts like “hey, you got the open source software for free, and then you hosted it for someone else and then earned money. you wouldn’t be able to do that if that software didn’t exist! you should actually donate to them!”. But I didn’t donate, I had already spent a lot of money. I did contribute some code to one of the softwares which helped me earn money. I didn’t feel very great though. But then I eventually forgot about all that. Later I got thoughts like “How do the people contributing to open source earn money? through donations? but that’s not always a sure thing!” and then I started checking out how open source softwares sustain. I saw different models - Open core with enterprise edition, paid support, donations, dual licenses. I didn’t understand all of them though. But I did see the real world Open Source softwares that earn money in different ways. And then I also saw that many companies support open source, through money and by also allowing their employees to contribute to Open Source.
Today when I think of it, I don’t know how my life and career, and even others lives would have turned out if Open Source didn’t exist. Let me try to guess what would be missing …
- Educational institutions (including non-profits) wouldn’t be able to use open source operating systems and open source softwares in their computers to teach students
- Many wouldn’t have been able to learn from great open resources like youtube tutorials, freecodecamp, nodeschool etc
- Many wouldn’t have been able to earn by freelancing - a lot of gigs are based out of open source software
- Decrease in job opportunities for people - many jobs are based on open source software. If it was all proprietary, not all would be able to get hold of them and learn them and hence not all would be able to be good at the software.
- No open source programming languages, no open source tools, no open source libraries, no open source art, no open source hardware, no open anything - leads to - you find any issue in the proprietary thing you use, you will not able to debug it or fix it so that you can continue your work, you will just have to report the issue. Remind you of any bad proprietary software experience?
- You wouldn’t be reading this blog which is written using Visual Studio Code, hugo static site generator, tested using Firefox browser, with version control in git, and the terminal being used is Alacritty. My Os is Mac OS though, which is proprietary.
- I wouldn’t have my job - which needs lots of knowledge and hands on experience which I wouldn’t have obtained as there’s no open source. And I might have had to go to highly paid classes offline and online. Also my job is kind of completely based on open source software. git, react, js, golang, docker, kubernetes, helm and if they didn’t exist, I probably would be working on something else, proprietary.
- I wouldn’t be able to do my job easily - I use tons of tools and softwares in my job to make my life easier to offload tough things to libraries, frameworks and tools, and also do automation with open source tools. It’s not easy for me to count the number of open source tools I use and have used. It’s very easy for me count the number of proprietary softwares I use!
Do you see where this is going? It kind of looks like I have benefited a lot and still benefit from Open Source, right?
Well, let me make it clear for you, yes, I have benefited a lot from Open Source. A LOT!
So, am I going to continue benefitting and taking from open source but never give back? That would be too much. So how do I give back to those projects that I have benefited from? By contributing. Contributing what? Anything I can - code, checking issues and debugging, docs, money. I can’t think of more now, but I think there are many ways I can help.
Now, do you know anyone else who is benefiting from Open Source? 😉Ask them if they want to contribute to Open Source and tell them they can contribute in the smallest of ways 😄