How to Join the #100daysofOSS Challenge and Embrace the Power of Open Source

Open source icons

In 2016, Alexander Kallaway launched the #100daysofcode challenge, a simple but powerful idea: commit to coding for at least an hour each day for 100 days straight, and publicly share your progress. Since then, thousands of aspiring developers have taken on the challenge, using it as a structure to rapidly build their programming skills through consistent practice.

The impact has been massive. Across social media, you can find countless stories of people who transformed their lives through #100daysofcode, landing their first developer jobs, launching their own apps, or finally bringing their passion projects to life. The hashtag has garnered over 5.3 million tweets and over 1.1 million Instagram posts to date. It‘s clear that this format of public accountability, community support and commitment to daily habits produces real results.

Now, as we approach the end of Hacktoberfest in October, a new challenge is launching to bring that same energy and focus to the world of open source software: #100daysofOSS.

The Rise of Open Source

Before diving into the challenge details, let‘s step back and look at just how vital open source software has become. Over the past few decades, open source has grown from a niche philosophy to a mainstream movement that underpins much of the technology we rely on every day.

Consider these statistics:

Some of the most impactful innovations started as or rely heavily on open source, including:

  • Linux, which powers the majority of the world‘s servers and supercomputers
  • Android, which runs on over 3 billion active devices
  • Kubernetes, the gold standard for container orchestration
  • TensorFlow, a leading machine learning framework
  • React, the popular JavaScript library for building user interfaces
  • Bitcoin and many other cryptocurrencies

The open source model has proven that great software can be built transparently and collaboratively, with all code freely shared and improved by the community. Proprietary software still has its place, but it‘s clear that the future belongs to open source.

Why Contribute to Open Source?

As a full-stack developer, I‘ve seen firsthand how contributing to open source has turbocharged my skills and career. Here are some of the biggest benefits I‘ve gained:

Learn From the Best in the Field

One of the beautiful things about open source is that you get to see "under the hood" and learn directly from the work of exceptional developers. When you explore the codebases of mature open source projects, you‘ll find clean, well-structured, and efficient implementations of complex systems.

You can trace through the logic and design patterns used by seasoned engineers and expose yourself to new languages, frameworks and tools. In many cases, you can even interact directly with the creators and maintainers of influential software and learn from their wisdom and experience. It‘s like a free masterclass in development best practices.

Gain Practical Experience

Hands-on experience is the best teacher in programming. Contributing to open source gives you the chance to move beyond tutorials and toy apps and grapple with real, production-scale code. You‘ll get practice in essential skills like:

  • Reading and understanding large, unfamiliar codebases
  • Debugging complex systems
  • Navigating developer tools and processes like version control with Git, code reviews, continuous integration and deployment pipelines
  • Collaborating asynchronously with other developers around the world
  • Communicating about technical topics in discussions and documentation

The skills you pick up from open source translate directly to professional development work. I was able to impress interviewers and land my first full-stack role largely based on the practical knowledge I gained from open source contributions.

Build Your Reputation and Network

Getting involved in open source helps you establish your public reputation as a developer. Each contribution you make, whether it‘s a bug fix, feature, or documentation improvement, is forever attached to your name in a public repository. Over time, you‘ll build up a portfolio that concretely demonstrates your abilities.

Potential employers and clients can look through your open source track record to get a sense of your coding style, expertise and interests. I‘ve personally gotten reached out to with job opportunities based on the strength of my open source work.

Contributing to an open source project also plugs you into a community of like-minded developers around the shared goal of improving the software. The connections you make through comments, pull requests and project discussions can grow into a valuable professional network that opens doors throughout your career.

Work on Inspiring Missions

Many open source projects are created to further meaningful causes and solve real-world problems. You can find open source tools powering:

  • Scientific research and climate change mitigation
  • Non-profit and humanitarian efforts
  • Educational resources and accessibility
  • Government and civic engagement platforms
  • Creative and artistic expression

When you contribute to projects in areas you‘re passionate about, you get the fulfillment of knowing your code is being used to make a positive difference. That deeper sense of purpose is a powerful motivator to keep sharpening your skills.

How the #100DaysOfOSS Challenge Works

Now that we‘ve covered the "why", let‘s get into the details of how to participate in the #100daysofOSS challenge:

  1. Learn the Basics of Open Source: If you‘re new to open source, start by reading up on the basic concepts and terminology. Resources like Open Source Guides, FirstTimersOnly and the GitHub Docs provide overviews of how open source contributions work and finding projects to join.

  2. Find a Project: Browse repositories that align with your interests and skill level. Look for well-maintained projects with clear contribution guidelines, active development, and friendly communities. Websites like Up For Grabs, CodeTriage and First Contributions curate beginner-friendly issues. The "Awesome for Beginners" repo also lists welcoming projects by language and tech stack.

  3. Pick an Issue: Once you‘ve found a project you like, look through its issue tracker for a bug fix or feature you can take on. Many projects label starter issues with tags like "good first issue", "beginner-friendly" or "mentor available". If you‘re not sure where to start, ask for guidance in the project‘s chat room or discussion forum.

  4. Set Up Your Environment: Fork the project‘s repository to your own GitHub account and clone it to your local machine. Follow the project‘s documentation to set up your development environment with the necessary dependencies and tooling. Run the test suite and make sure you can reproduce the issue you‘re tackling.

  5. Make Your Changes: Create a new branch for your changes and get hacking! Write clean, concise, well-commented code that conforms to the project‘s style guide. Focus on making a singular change that fixes the issue or implements the feature as described.

  6. Test and Document: Run the test suite again to make sure your changes don‘t break existing functionality. Write new tests if needed to cover the code you added. Update the project‘s documentation if your changes impact how it‘s used.

  7. Submit a Pull Request: Push your branch to your forked repository and open a pull request to the main project. In your PR description, clearly explain the problem you‘re solving, how you approached it, and any key design decisions. Expect to get feedback and requests for changes – this is a normal part of the process. Keep an open mind and respond graciously to critique.

  8. Iterate and Collaborate: Update your code based on the maintainers‘ feedback and suggestions. You may need to go through several rounds of review before your changes are accepted. Stay responsive and patient. If you get stuck, ask for help and clarification.

  9. Celebrate and Reflect: Once your pull request is merged, take a moment to celebrate your successful contribution! Share your achievement with the #100daysofOSS community. Reflect on what you learned through the process and what skills you want to develop further.

  10. Keep Going: Move on to your next contribution and repeat the process. You can choose a different project or issue or dive deeper into the one you started with. The key is to maintain your momentum and make steady progress every day of the challenge.

Sustaining Your Open Source Contributions

Contributing to open source for 100 days straight is a serious undertaking that will test your commitment. Here are some tips to stay on track:

  • Block Out Time: Set aside a specific time block each day for your open source work, even if it‘s just 30 minutes. Defend this time fiercely and make it a non-negotiable part of your routine.

  • Start Small: Your contributions don‘t need to be massive, especially when you‘re getting started. Look for small bugs and documentation tweaks to get some quick wins under your belt. Gradually take on meatier issues as you build confidence.

  • Track Your Progress: Hold yourself accountable by recording your daily contributions in a public log. This could be a Twitter thread, blog, or GitHub repo. Seeing the unbroken streak will motivate you to keep going.

  • Enlist Cheerleaders: Surround yourself with supportive friends, family and community members who will encourage you and celebrate your wins. Find an accountability partner who‘s also taking on the challenge and check in with each other regularly.

  • Embrace the Struggle: There will undoubtedly be days when you get stuck on a nasty bug or get harsh feedback on your code. Remember that this is all part of the growth process. Don‘t let your inner critic convince you to quit. Reach out to fellow developers for moral support and advice.

  • Have Fun: Open source contribution should ultimately be rewarding and enjoyable. If you find yourself dreading your daily commitment, reflect on what‘s blocking your motivation. It‘s okay to take breaks or pivot to a different project that sparks your interest.

Accelerate Your Growth with #100DaysOfOSS

As a full-stack developer, I know firsthand how overwhelming it can feel to keep up with the constantly evolving tech landscape. There‘s always a new language, framework or tool to learn, and it‘s tough to know where to focus your energy.

The #100daysofOSS challenge provides a clear path to accelerate your growth by diving deep into the open source ecosystem. You‘ll build in-demand technical skills, gain a reputation in the developer community, and create a body of work that proves your abilities.

When you make open source contribution a daily habit, you‘ll be amazed at how quickly your skills and confidence grow. What starts as a trickle of small fixes can snowball into substantial features and even your own projects over time.

So what are you waiting for? Join the #100daysofOSS movement and unlock the power of open source to fast-track your development career. Start exploring projects, pick an issue, and make your first contribution today.

Together, let‘s embrace the open source ethos of collaboration, transparency and continuous improvement. The world‘s code is waiting for you!

To get started:

  1. Sign up at the official #100DaysofOSS website
  2. Explore the #100DaysofOSS resources to plan your challenge
  3. Connect with fellow participants and get support in the OpenSauced Discord community
  4. Start contributing and publicly log your daily progress to build momentum

The open source adventure awaits. Happy coding!

Similar Posts