Open Source
Through this post, I want to present my experience as a developer and how I can gain knowledge and succeed through open source.
What is open source?
Suppose, You write a piece of source code or any work. You are the author of that work. No one can use that source without your permission.(But they can recreate with the observation :-) ) You can gain benefits for yourself, and you can sell that work as a license or provide service based on that work.
Initial stages of IT Industry, Most companies earn revenue by licensing the product to users.
This approach changed through Free software movement to gain the freedom to able run, study, modify and share copies of work.
Suppose you started a career in the software development industry and are an entry-level developer, then you can gain knowledge through the following two ways.
- As a consumer of Open Source to study the work
- As a contributor to open-source projects
According to your personal goals, you can choose any option or both. Through my observations and some references, some people contributed to open source and landed to the company in key roles, starting their own company
Here are some references about contributors and ideas on the path.
- All about Open Source Project https://www.youtube.com/watch?v=Hkoml2mXDD8
- Complete Guide to Open Source https://www.youtube.com/watch?v=yzeVMecydCE
- How I got a High Paying Remote Job through Open Source Contribution - Harkirat Singh https://www.youtube.com/watch?v=Q8XaRjteZlc
- Layoffs at my last company: Did I survive? https://www.youtube.com/watch?v=bozYnewYEgs (Regarding up and down in the carrer)
- 25+ Paid Open Source Programs and Internships https://www.youtube.com/watch?v=x4hsV_q_YQc -
- Tips with Open source https://www.youtube.com/watch?v=MT6M_sqAuZo
Here are a few references to use open source to understand concept
- How to write test cases (Here is an example of react test case https://github.com/facebook/react/blob/1f7a2f577bc9e0264256d834d3daffbd7d6618f9/packages/react-dom/src/tests/ReactRenderDocument-test.js)
- How to write git commit (Example: https://www.conventionalcommits.org/en/v1.0.0-beta.4/)
- Write requirements (Example https://go.googlesource.com/proposal/+/master/design/go2draft-error-inspection.md)
- How to organize projects (Example for Golang https://github.com/golang-standards/project-layout)
If you are an entry-level software developer, consider creating one developer profile, publishing your learning, and improving existing work to gain knowledge and build the network to create career opportunities and be proud of your work.