We, computer developers, have to develop our knowledge ourselves every day. This practice allows developers to keep ourselves informed about new technologies, new solutions and security issues. For the majority of developers, this “update” is not a pain. We have choosen to work with computers due to our passion with these awesome machines, and this “update” thing is just the best thing to do to maintaining this passion.
You can, every day, consult some great tech news like HackerNews, TechCrunch, The Verge, Wired or Korben (for French guys) - and that’s already a good step. But these news not allows you to practice and to test these technologies. To do that, you have to program some things, to practice to a new programming language, or to maintain your system!
This thing can be exausted and really painfull, because, maybe, you don’t have the time to create and maintain an entire powerfull software, or the knowledge to program this one alone! So, let me introduce you the advantages in contributing to free and open source projects, for you knowledge!
This is the principle objective of this post: to update you in computer science! As an inquisitive person, I’m still looking for to learn new things: an usefull technique or programming language, to continue to explore a computer science sub-domain (machine learning, software optimizations), to improve myself in coding, etc… Free and open source projects are great places to learn new things, because developers try some innovative things to build the best project as they can. Most free and open source are just some developed ideas from a single person or a small community of developers, banded together to create a new awesome computer thing. By learning new things, you can contribute for example by fixing some bugs, improving or refactoring the code, or building some new awesome features! Don’t forget that you’re free to read the code if you canno’t or don’t want to contribute, that is often a big step in improving your knowledge!
Developers are developing new usefull technologies to improve the life of developers or common-users, and a small new feature can be the “plus” of the software that can change the story. I try to use new technologies each day, out of curiosity or pleasure. If the software embedded some awesome features, I star the repository from the version control repository (Github,Gitlab,BitBucket…) and I have some knowledge about used technologies for this project. B2GOS, Firefox, Chromium, VLC, GNOME, Go, Rust,… all these free-to-clone amazing technologies, using by thousand/million/billion of persons each day and you can contribute to!
Do you want to learn a new programming language? Check a simple project on Github to learn some efficient skills using this one! You have just found a great project and want to contribute in his development? Clone the repository, check the issues list and give yourself the objective to solve an issue per day/week/month,… A free and open source project is the perfect thing to improve yourself!
Just imagine: you want to list all git local repositories in your systems and to pull remote branches for them, automatically at 08:00AM each day. You found a great project on Github that list your git local repositories, make some things with but, unfortunately, canno’t pull remote branches… Are you trying to make the software from scatch for this single feature and lost your time to do a simple thing, or are you clone the project, try your best to understand the software architecture and add this single feature to this awesome project? (Actually, this is not a question…)
My experience in contributing on free and open source projects permits me to meet some great people in some amazing communities (Mozilla, RedoxOS,…), to discuss with them, share some knowledge and meet them IRL at meeting, conferences, etc… These people are my companions, my project colleagues, and now my friends.
With this post, I don’t talk only to developers! You don’t code but you are interesting in contributing to free and open source projects?!
AWESOME!
Just put your core skills in practice: translation, project management, talk about the project, etc… There’s plenty of opportunity for everyone, and I am sure that you can find something interesting.