As a rule, the programs you write at work do not satisfy your most ambitious programmer dreams. It may happen that you are developing software for a huge insurance company, but you would like to work at Google, Apple, Microsoft, or start your own startup that will bring about the next revolution. You will never reach your goal by developing software for systems that do not interest you.
Fortunately, there is a solution to your problem: open source, that is, projects with open source code. In the world, there are thousands of open-source projects, and many of them are quite active, where a programmer can gain any experience their heart desires. If you are drawn to the idea of developing an operating system systems, choose one of the ten available operating system projects for yourself. If you want to work on music programs, animation applications, cryptography, robotics, PC games, massively multiplayer online games, mobile phone applications, or doing something else, you will almost certainly find at least one active open-source project in the relevant field.
Of course, everything comes at a cost. You will have to sacrifice your personal time, as your employer is unlikely to allow you to work on an open-source video game during working hours. Moreover, participating in open projects very rarely brings income: some earn from it, but most do not. You must be prepared to give up some entertainment (it’s not fatal if you play fewer video games or watch less television). The more effort you put into an open-source project, the sooner you will realize where your true ambitions as a programmer lie. It is also necessary to consider the terms of your contract with your employer—sometimes the terms of the contract restrict participation in external projects even during personal time. Moreover, it is important to ensure that you do not violate intellectual property laws regarding copyrights, patents, trademarks, and trade secrets.
Open projects provide incredible opportunities for a motivated programmer. Firstly, you can see how someone else implements things that interest you: you can learn a lot by reading code written by others. Secondly, you can contribute your own code to the project. and your ideas; not all your brilliant ideas will be accepted, but some will make it. And just solving project tasks and writing code will allow you to learn something. new. Thirdly, you will meet wonderful people who are as passionate about the project you have chosen as you are. This friendship through open source can last a lifetime. Fourthly, if you are competent in your field, you will be able to contribute your practical experience to the technology you like.
Starting to work on open projects is quite simple. There is a huge the volume of documentation on the tools you will need (systems source code management, editors, programming languages, systems assemblies, etc.). Choose a project to start with and study the tools used in it. Documentation on the projects themselves is usually it can be meager, but that hardly matters because it is best learn by independently exploring the code. To start, you could offer your help in writing documentation. Or volunteer to write code for testing. It might not seem very appealing, but writing test code for other people’s programs allow you to learn much faster than almost all other types of programming activities. Write test code, really good test code. Look for defects, suggest fixes, make friends, work on a project you like, and satisfy your ambitious programmer desires.