How to start your open source journey?
This newsletter will talk about the value of open source, its motivations, and the community behind it.
If you are new to programming and looking to start an open source journey, here we will explain a few concepts to consider while working on open source. We will cover three topics:
- The value of motivation while working on open source.
- Healthy communities as an indicator of a great and promising project.
- Finding your first open source project.
- Thing to remember as open source contributor.
The Value of Motivation in Open Source
Motivations for contributing to open source projects can vary significantly among individuals, making it challenging to cover all of them comprehensively. However, we can categorize the main motivations into passion, needs, and show-off.
Some people engage in open source out of **passion** for a particular technical concept. They enjoy working on it and may even have ideas they want to bring to life. On the other hand, some are those who join open source to find a job. But is that sufficient? What drives someone to create significant open source contributions or develop entire libraries?
From my perspective, motivations centered solely around personal gain tend to diminish over time. On the other hand, causes rooted in community and selflessness have greater staying power. In a previous newsletter, we discussed how individuals who possess goals beyond themselves become great thinkers and innovators. This observation is evident in the larger context of innovation and the open source world.
Consider the scenario where someone contributes to a project solely to secure a job. Once the contributors find employment with a fair salary, their engagement with the project may cease. Similarly, those driven by a specific technical concept may eventually become bored or discover other ideas that capture their interest. However, if individuals contribute to a project because they believe in its mission and goals, their commitment remains steadfast. They may explore other projects but will return to contribute when possible. This sustained involvement brings value to the project and enriches its knowledge base. It's akin to having a home base while exploring the world—a foundation from which they can help others.
Acknowledging that not everyone shares the same values or motivations is essential. This diversity is inherent in life itself. The key idea here is to highlight the different types of causes and cultivate awareness of them. Understanding these motivations can help us build a more inclusive and thriving open source community.
Healthy Community
A healthy community plays a vital role in open source projects, extending beyond coding and bringing value to contributors. It is something that all open source contributors have to experience—an empathetic and supportive community where they can freely communicate, share ideas, and express themselves. In my personal journey contributing to OpenSauced and Cal.com, I discovered that both projects' founders prioritize and strive to enhance this aspect. Cal.com, for instance, initiated roundtable discussions to engage contributors directly. On the other hand, OpenSauced's founder, Brian, whom we previously hosted at Hadith Tech, brings valuable experience from his work at GitHub, profoundly understanding the significance of open source. At OpenSauced, they organized weekly office hours and calls for open-source contributors and maintainers to connect. This initiative will make the project more valuable for people.
Here are several indicators come that can show a healthy community:
The presence of relevant and comprehensive documentation for the project you are involved in is crucial.
Observing the respect shown among individuals with diverse engineering or coding backgrounds is a positive sign.
Having a space where non-technical contributors can actively participate further strengthens the community.
As you engage with the community, you may witness its growth and collaborative nature through the small steps open source contributors take. It's important to note that initially, these dynamics might be challenging for first-time maintainers to grasp, but with time, they will become more apparent.
However, it's essential to acknowledge that not all projects will adhere to the same indicators of a healthy community, especially those in their early stages or focusing on cutting-edge technology. Nevertheless, being aware of these factors and understanding the differences between projects will provide you with valuable insights to navigate and comprehend the community behind an open source project effectively.
Contributing to your first project:
When embarking on your journey to contribute to your first project, it is essential to consider your needs and motivations. A clear goal and a supportive community can significantly accelerate your growth and provide a fulfilling experience. Let's explore three potential paths you can take:
1. Skills-based path: This approach involves identifying the specific skills you wish to develop and finding a suitable project that aligns with those skills. To discover such projects, you can explore repositories on platforms like GitHub, filtering by the skills you want to enhance. Alternatively, you can initiate your own project, which will allow you to sharpen your skills and demonstrate your abilities to others.
2. Call-based path: In this path, you seek out projects that genuinely inspire and motivate you. Using open-source projects and immersing yourself in their functionalities, you can identify those that resonate with your interests. Once you find such a project that captivates you, contributing to its development becomes an organic process. You can start by adding features or implementing improvements that you find valuable and exciting.
3. Guided path: Opting for the guided path involves joining an open-source project where the maintainers actively provide guidance and support to newcomers. This kind of project can be an excellent choice for beginners, as you'll have experienced mentors to help you navigate the contribution process, understand the project's codebase, and provide feedback on your work. Their assistance can ensure a smoother learning curve and foster a positive experience as you make your initial contributions. You can find projects that provide support through programs like Octernship, MLH, Hacktoberfest, and Google Summer of Code. Alternatively, you can find them by searching projects that have suitable first-issue labels in their issues.
Remember, joining a supportive and inclusive community is crucial no matter which path you choose. Engaging with like-minded individuals who share your passion for the project will facilitate your growth, provide valuable insights, and help you establish meaningful connections.
By contributing to open source projects, you gain practical experience, learn from others, and positively impact the broader community. It is an enriching journey that allows you to hone your skills, collaborate with talented individuals, and create something truly remarkable together.
Things to Remember When Contributing to Open Source
Contributing to open source projects can be a rewarding experience. To cultivate the best experience and make a positive impact, consider the following:
Community and Communication
Open source is not just about coding; it's about building a community and engaging in communication. Take the opportunity to connect with others, build friendships, and discuss topics that are still in development. Remember these important points:
- Give back and avoid being greedy. Open source thrives on collaboration and mutual support.
- Be polite and empathetic when interacting with maintainers. Remember that they have lives outside of the project, so be patient if there are delays in responses or PR reviews. Approach your contributions with humility.
- Understand and respect differences in time zones and cultures. Others could perceive what may seem polite in your culture as rude. Be mindful of these differences when communicating within the open source community.
Be Clear
When contributing to open source, clarity is critical. Clearly communicate your work, the reasons behind your decisions, and the technical aspects of your contributions. This clarity helps maintainers understand your work and facilitates the merging process, especially if you are contributing to a project for the first time. Keep these points in mind:
- Avoid making assumptions. Clearly state your intentions and deliver your contributions without assuming prior knowledge from the maintainers.
- Provide estimated timeframes for completing tasks. Providing estimations helps you to manage your commitments and allows maintainers to set realistic expectations. Additionally, it enables them to plan accordingly and make informed decisions regarding the project's progress.
Follow the Conversation
Being an active open source community member means considering and being thoughtful about others and the project as a whole. When selecting an issue to work on, it is important to follow the ongoing conversation and respect the contributions of others. Consider the following:
- Before requesting to work on an issue, check if someone else has already expressed interest or claimed it. Additionally, ensure that the issue is open for contributions. These checks save time for maintainers and demonstrate your respect for others' involvement.
- Avoid requesting to be assigned an issue that someone else has already claimed. This behavior is considered rude and disruptive. Instead, focus on collaborative discussions and providing value in meaningful ways.
- Embrace the concept of "brutal honesty" as Khosla Ventures advocates. Brutal honesty helps to foster a healthy community where feedback is candid but respectful, establishing boundaries for constructive communication.
Be Vulnerable
If you are a beginner in programming and wish to contribute to open source, do not hesitate to do so. In general, many maintainers of projects with beginner-friendly issues or open source projects are understanding and supportive.
Remember the following when you contribute to a new project:
- Embrace your vulnerability and openly acknowledge your skill level. Maintainers often appreciate and accommodate beginners who are willing to learn and contribute.
- If you encounter challenges or have questions, research independently before seeking assistance. Demonstrating a proactive attitude in finding solutions shows your dedication and helps you learn and grow.
- Don't be afraid to open a pull request based on an issue and work on it. However, ensure you understand the project clearly and familiarize yourself with relevant documentation and resources.
By keeping these principles in mind, you can have a fulfilling and productive experience contributing to open source projects.
In conclusion, starting your open source journey can be exciting and fulfilling. You can make a positive impact by understanding the value of motivation, seeking healthy communities, finding the right project, and remembering key principles as a contributor. Embrace passion, community, and selflessness as motivations. Look for supportive communities and indicators of a healthy project. Choose a path that suits your goals. Communicate effectively, respect others, and be open to feedback. Embrace vulnerability as a beginner. Enjoy the journey of contributing to open source and making a difference.
Awesome guide, thanks for sharing. This will be really helpful for beginners 👍