All About Open Source
Tags: opensource, growth
Published: 2023-12-02 15:04:13

Ah, open source. A magical realm of tech wizards, intricate codebases, and... wait, what about the rest of us? Let me spill the beans – the first time I dipped my toes into open source, I felt like a confused penguin in a tech jungle. The code looked like a secret language, and I wondered if contributing meant signing up for a code-war I wasn't ready for.

But here's the gist; open source isn't just for the code whizzes. It's like a digital playground where everyone, no matter their skill level, can join the fun and make a splash.

Basically, **Open source** is a term that is closely associated with innovation, collaboration, and community-driven development. Open source software is software that is distributed with its source code available for use and modification.

*Open Source Opened My eyes* to a lot of things, and I am happy I was able to embrace it. Mind you, I am just starting my journey. So you can take this as advice from your younger brother lol.

- **Open source is for everyone:** Even small contributions matter. Fixing bugs, writing documentation, or suggesting ideas can help the project and the community grow.
- **Embrace learning:** The learning never stops in open source. Each contribution is a chance to level up your skills and become a better developer.
- **Join the community:** The open-source community is welcoming and supportive. Don't hesitate to ask questions, share your ideas, and connect with other contributors.
- **Start small:** Don't try to tackle too much at once. Begin with beginner-friendly tasks and gradually build your confidence and skills.
- **Have fun!:** Open source is a journey of discovery, collaboration, and innovation. Enjoy the process and celebrate your contributions.
- **Embrace the learning:** Open source is a rollercoaster of learning curves. Challenges are chances to grow, not roadblocks.
- **Join the community:** It's a friendly space. Ask questions, throw in your ideas, and vibe with other contributors.

## Getting Started with Open Sources

The first step is to find a project to contribute to. But how can you find one? Personally, my curiosity is always very high, and I tend to jump on anything that crosses my path. You don't want to be like me. My approach is good but with a lot of limitations.

- Putting unnecessary pressure on myself.
- Not being able to contribute because I don't have the required skill.
- Not excited about the project because it doesn't align with my values, etc.

Because of that, I created a structured guide to find the right project for you.

1. **Identify your Interests and skills:** Consider the programming language, and tools, as well as other technical skills like design and writing.
  
2. **Choose a project Category:** There are a lot of project categories: mobile, web, data science, machine learning, etc. Narrow down the category that matches your interest.

3. **Explore Project Repositories on Platforms like GitHub, GitLab, etc:** You can leverage the search section to search based on specific keywords that align with you.

4. **Contribute to beginner-friendly issues:** It is always advisable to contribute to projects that are beginner-friendly before you advance to projects with more complexity. The reason behind this is to avoid getting overwhelmed with a new codebase.

5. **Join Project Community:** Engage with the project community by participating in discussions and asking questions.

6. **Start with small Contributions:** It is always advisable to take smaller tasks to familiarize yourself with the project codebase.

There is no doubt that open source is something that almost everyone in the tech ecosystem has heard of at one point or the other. Why is it so popular? Why do we have a lot of open-source enthusiasts?

- **Transparency:** Because the codebase is accessible to everyone, it fosters trust and accountability. With this, users can identify potential security vulnerabilities and fix them.
- **Collaboration And Connection:** Open source is a global community of tech enthusiasts, everyone bringing their expertise, sharing ideas, and viewing things from different perspectives. In the end, you have a chance to build connections with people who share the same interests as you.
- **Community-Driven Development:** Open sources are not driven by profit margin, they are driven by the collective goals and aspirations of the community.
- **Social Impact:** open source often addresses societal challenges such as health care, education, environmental stability, etc. These problems are faced by almost everyone, and a collective solution is considered the best way to solve them.

## How to make your first contribution?

- **Familiarize Yourself with Documentation:** Before contributing, it's crucial to understand the project's documentation. This will provide insights into the coding conventions, workflow, and the overall structure of the project.
- **Version Control Basics:** Learn the basics of Git, a widely used version control system, to efficiently manage changes and collaborate with others.
- **The Contribution Process:** Most open-source projects have a contribution guide. Follow the steps outlined in the guide, which typically include forking the repository, creating a new branch, making changes, and submitting a pull request.
- **Collaboration and Feedback:** Be open to collaboration and feedback. Your initial contribution might undergo revisions. Use this as an opportunity to learn and enhance your skills through constructive criticism.
- **Celebrate Your Contribution:** Completing your first contribution is a significant achievement. Celebrate your success, share it with the community, and reflect on what you've learned throughout the process.

## Beyond Code: Contributions for Non-Coders

**Designers in Open Source:** The popular saying is, "The current OSS world is too much developer-centered, and there is no support for things related to product design or icon design." But still, some designers are contributing and people really appreciate them.

Open source projects welcome designers to contribute by improving user interfaces, creating logos, or designing documentation. Platforms like GitHub have specific tags for design-related issues.

There are different ways you can contribute to open source as a designer. You can also help define a style guide to help the project have a consistent visual design. You can also help in creating logos or icons for open source projects. This is a good read to help you find your path in contributing to open source as a designer [link](https://uxdesign.cc/dear-designers-please-help-a5436907be8b).

## How can Open source impact your skill?

- **Practical Skill Development:** Open source provides real-world experience. You will be able to work with more experienced developers, tackle real-world problems, and learn from different perspectives.
- **Demonstrate Expertise:** It is a way to show how good you are. With this, potential employers can review your code and have an idea of how much of a problem solver you are.
- **Expand Portfolio:** It showcases versatility and the ability to adapt to different code bases and development environments, preparing you for the challenges you might face while working for a new company.
- **Career Advancement:** That might be where you get noticed by your next employer.
- **Networking opportunities:** It provides a platform to connect and network with people who share the same interests as you. In the process, you can connect with other devs, mentors, your next co-founder, etc.

## List of Open source projects you can contribute to
Absolutely, here's a list of beginner-friendly open-source projects along with the developer's name, tech stack, and GitHub link:

1. **Project: First contributions**
   - **Developer: first-contributions**
   - **Tech Stack: HTML, CSS, JavaScript, Documentation, Markdown**
   - **GitHub Link: [Firstcontributions/first-contributions](https://github.com/firstcontributions/first-contributions)**

2. **Project: Name Taker**
   - **Developer: OSS Guild**
   - **Tech Stack: HTML, CSS, Markdown, Documentation**
   - **GitHub Link: [ Open Source Guild/Nametaker](https://github.com/ossguild/Nametaker)**

3. **Project: StarterHive**
   - **Developer: ArslanYM**
   - **Tech Stack: React, Node.js, Expressjs**
   - **GitHub Link: [ArslanYM/StarterHive](https://github.com/ArslanYM/StarterHive)**

4. **Project: World Presidents**
   - **Developer: VectorChi**
   - **Tech Stack: HTML, CSS Javascript**
   - **GitHub Link: [VectorChi/worldpresidents](https://github.com/VectorChi/worldpresidents)**

5. **Project: Grafana**
   - **Developer: Eve Engineer**
   - **Tech Stack: Golang, mysql, postgress**
   - **GitHub Link: [Grafana/grafana](https://github.com/grafana/grafana)**

6. **Project: Open Project**
   - **Developer: OPF**
   - **Tech Stack: Angular, Ruby**
   - **GitHub Link: [opf/openproject](https://github.com/opf/openproject)**

7. **Project: ORCID-Source**
   - **Developer: ORCID**
   - **Tech Stack: Javascript, Java, Postgress**
   - **GitHub Link: [ORCID/ORCID-Source](https://github.com/ORCID/ORCID-Source)**

8. **Project: readme-template**
   - **Developer: Dbader**
   - **Tech Stack: Markdown**
   - **GitHub Link: [HankPythonista/pythonic-utilities](https://github.com/HankPythonista/pythonic-utilities)**

9. **Project: Data Science for Beginners**
   - **Developer: Iris Analyst**
   - **Tech Stack: Jupyter, Pandas**
   - **GitHub Link: [IrisAnalyst/data-science-for-beginners](https://github.com/IrisAnalyst/data-science-for-beginners)**

10. **Project: WebDev-OpenSource**
    - **Developer: rudra016**
    - **Tech Stack: web, html, css, javascript, phyton, mongodb, markdown**
    - **GitHub Link: [JakeAppDev/mobile-app-playground](https://github.com/JakeAppDev/mobile-app-playground)**


*In conclusion, open source is not just about coding; it's a collaborative journey where individuals, no matter their background, can contribute. So, take the plunge, start small, and enjoy the adventure of making a difference in the tech world!*