Part 1: Winter or Summer, Take your baby steps into OpenSource Now !!

If you are a developer or are a student, you might have heard the word Open Source thrown at some point in your journey. It might have left you wondering about the world of Open Source the fact that you are here tells me that you are curious to know !!. Well, congrats you have already taken your first step into the world of open source!
In this article, I will be sharing information about Open source software (OSS) and how you can keep your baby steps and get started. The Article Series will cover details on :
- How you can start contributing to opensource ( You are here )
- What to know before you attend your first Open Source hackathon
- How you can become a creator and a maintainer of an Opensource Project
- How to attract Contributors to your Project
- How to build your community and get sponsors.
- Automating the boring stuff through Github Actions
- Useful Tools and Resources
Before we jump into the article here is something about me
- Microsoft Learn student Ambassador | Winner hack for Africa: A Microsoft challenge! |Winner Philly Codfest 2020
- I am the Lead Organiser of DevScript Winter of Code a 2-month long student-led Open Source hackathon.
- I maintain Opensource projects, got a few of my own. I help student communities set up their own projects, I am also actively contributing to projects.
Now let's get started for real :
Pro tip: This can get pretty lengthy grab yourself a cup of coffee.
What is OSS?
If you ask Google it will show you: Open-source software is a type of computer software in which source code is released under a license in which the copyright holder grants users the right to use, study, change, and distribute the software to anyone and for any purpose. Open-source software may be developed in a collaborative public manner.
If you ask me :
- OSS can be anything from an Application to a browser extension to an ML model that is developed by a bunch of amazing geeks who wants to share their work with the world.
- It is usually released under a license that allows users to use their code, modify the code, distribute it and a lot more different licenses have different T&C so read about them in my next article before you start using the code.
- An OSS can be created and maintained by anyone with a passion to build amazing technology. Even you !!
So basically a software developed and maintained by a group of do-gooders
Fun Facts: Some popular Open source project are:
- Blazor
- .Net
- Apache Cassandra
- TensorFlow
- Firefox
- LibreOffice
- more …. (I can have an entire article for a list of amazing tools and it still won't be enough)
But I think you get the big picture, Open source helps us use and enjoy top quality tools for free of cost, are you motivated?
Let's see how you can jump into opensource and build tools and language you will be using in your day to day life
OpenSource Contributor as a Student
Let’s first see why you should contribute to opensource?
- Show your amazing coding, content writing skills (obviously)
- Unlimited Learning: Instead of learning tools and languages you can start building them. Most of the Open source Projects have excellent and passionate developers who will be happy to guide and mentor you if you ask them nicely.
- Professional skills: When you work, interact and learn with a group of developers of various age groups and experiences you often end up learning many important soft skills like professional communication, networking, teamwork, time management. Working amongst these brilliant developers would be a humbling experience at the same time will give you valuable lessons and insights about the industry.
- Outside opportunities: Being involved in Opensource helps you grow yourself technically and professionally. There are tons of Opensource Summits where you can talk and interact with top tech companies and developers. (If you are a Python fan like me Pycon is something to watch out for)
- Strong Resume: Well Contributing to open-source projects would be a great way to show your mastery of a particular technology. You might have been a part of building tools and technologies that your company might be using. Every contribution you make is publicly visible so flaunt it.
- Get Paid: Although your primary reason for getting into open source must be to learn and develop yourself. If you are a valuable contributor on a project with real clients you can help solve issues or train their employees and bill them for your time. The chances are slim.
- Don’t forget to enjoy the process and remember that you are a part of making the world a better place. Give yourself a pat on the shoulder for that.
Now that I have shared a few good reasons why you need to start your journey into opensource. Let's move on to
What Do I need to know?
- To be frank you don't have to know much to get started but having a knowledge of at least one programming knowledge is very helpful
- Have a Github Account: Are you a student? Fantastic apply for the Free Github Student developer pack here share about it with your friends too.
- Git: Git is your best friend. Learn the Git Basics and keep learning Git and related tools. (It is a best practice to familiarise yourself with basic commands and use CLI to use Git ). I publish articles on how to resolve common problems faced by a beginner contributor give them a read !!
- Programming skills: There are a lot of ways you can contribute to open source software development and growth. But contributing code would be a great way to directly get involved with the development of the project. Different project uses different languages and frameworks selecting OSS as per your skill set is Important. From my experience, I have seen a lot of projects use C, C++, Python, Java.
- Follow Best practices: one pro tip I can give you is to start knowing about the coding best practices followed in a particular language. These practices differ from language to language. Use an effective linter while you code so that you can learn the common practices followed. Always give the codebase of a particular project. Space Vs Tabs is something to be noted(if not you will be starting a war in the issues tab).
- Start Small: A common mistake a lot of newcomers do is that they aim for big projects that often have very little issues for a newcomer to implement or no mentor support and are highly competitive. One guidance I would like to give is to start with a small project and try to be a constant contributor to it and learn how the whole open source ecosystem works. Familiarize yourself with the codebase, git commands used, managing workflows, code quality, and best practices used. This helps you in the long run and when you see a chance to contribute to big projects like TensorFlow or .Net you can grab and the issue and solve it with ease
I got the basic alright. How do I get started?
- GitHub Explore
- Open Source Friday
- First Timers Only
- CodeTriage
- 24 Pull Requests
- Up For Grabs
- Contributor-ninja
- First Contributions
- SourceSort
- Open Source Hackathons
Did you find a project you can contribute to? Awesome !!!
Let's Understand the Project and its attributes
A typical open source project has the following types of people:
- Author: The person/s or organization that created the project
- Owner: The person/s who has administrative ownership over the organization or repository (not always the same as the original author)
- Maintainers: Contributors who are responsible for driving the vision and managing the organizational aspects of the project (They may also be authors or owners of the project.)
- Contributors: Everyone who has contributed something back to the project
- Community Members: People who use the project. They might be active in conversations or express their opinion on the project’s direction
A project also has documentation. These files are usually listed at the top level of a repository.
- LICENSE: By definition, every open source project must have an open-source license. If the project does not have a license, it is not open source.
- README: The README is the instruction manual that welcomes new community members to the project. It explains why the project is useful and how to get started.
- CONTRIBUTING: Whereas READMEs help people use the project, contributing docs help people contribute to the project. It explains what types of contributions are needed and how the process works. While not every project has a CONTRIBUTING file, its presence signals that this is a welcoming project to contribute to.
- CODE_OF_CONDUCT: The code of conduct sets ground rules for participants’ behavior associated and helps to facilitate a friendly, welcoming environment. While not every project has a CODE_OF_CONDUCT file, its presence signals that this is a welcoming project to contribute to.
- Other documentation: There might be additional documentation, such as tutorials, walkthroughs, or governance policies, especially on bigger projects.
Things to know:
- Issue tracker: Where people discuss issues related to the project.
- Pull requests: Where people discuss and review changes that are in progress.
- Discussion forums or mailing lists: Some projects may use these channels for conversational topics (for example, “How do I…“ or “What do you think about…“ instead of bug reports or feature requests). Others use the issue tracker for all conversations.
- Synchronous chat channel: Some projects use chat channels (such as Slack or IRC or Discord) for casual conversation, collaboration, and quick exchanges.
Now that you have some Idea on OpenSource you are all geared up to start exploring this amazing world.
Congrats and thanks for reading it to the end !!
If you like it leave a clap and if you want to share your thought or contact with me visit here
Check out Github Guides to know more about GitHub and the way it operates, TBH its one of my favorite platforms ever
Stay tuned for Part-2 !! Register for DevScript Winter of code to start your journey today !!