After been working in Linux for so long, I thought none in today's technology oriented market would be untouched by Linux in someway or the other. With companies embracing open soure technologies with wide open arms and making huge investments in open source development Linux has become the poster child for all tech companies.
Interesting read: Celebrating 25 Years of Linux Kernel Development]
So it was a surprise for me when I recently visited one of the prestigeous collge for a Linux workshop and found that Linux usage is negligible or very limited. Brief interaction with the students confirmed my reasons for the same. Today all technologies we have especially cloud oreinted are cross platform and easily work on other systems like Windows or MAC OSX. Then what is the need for Linux. I thought it was time to pen down my thoughts on why we need to learn Linux and what is its importance in todays world. Let me just start by giving some data on what kind of companies are focussing on Linux and Opensource in general -
Source: LinuxFoundation Kernel Development Report
Be it companies producing low power sensor devices to complex SoCs or Web services, everybody is hooked to using open source tech. Its not only the cost advantage that everybody sees. After all you need engineers to enhance, maintain and bring out best in your chips. So then why embrace Linux ? Its the quick time to market and quality that attracts tech companies. Just to give an example of Linux kernel on how Linux kernel has grown over the years, refer to figure below -
And following fugure gives details about all the contribution for one kernel version 4.13 -
Source: LinuxFoundation Kernel Development Report
So why more and more companies are moving towards OpenSource and Linux ?
The main reasons can be listed as below -
- Highly Flexible and Scalable
- Being used in small smartwatches to huge media transcode servers today
- Fit for simple home usage to complex and huge Data centers
- Highly scalable distributed computing architecture and software availability
- Freedom to customize as per your business needs
- Very Portable
- Works on ARM, MIPS, Intel, AMD and varied kind of hardware architecture
- Can achieve small footprint for real resource scarce environment
- Secure, Reliable and Fast
- Open source philosophy provides a mature software tested by thousands of engineers and companies
- Time to market is very fast
- High Quality Code and Design,
- The only project where Tech Giants working together and not against each other
- Highly scalable and robust design is the common goal
- Longevity and Maintainability
- Continuously maintained by a community of people not a company
- Be seeders and the community will maintain your software
- Newer upgrades bring in all your changes along with improved features and bug fixes
- Freedom from Vendor Lock in
- And of course its Free
Today open source and Linux has become so pervasive that companies working in Big Data, Cloud Computing, Databases, Machine Learning, etc. all use one or the other variant of Linux OS and rely heavily on the Development Tools from the Linux/Open Source eco-system. All open source tools are developed for Linux first and then made available on other platforms. For example Apache Web Server which drives more that 70% of the web servers in the market was first developed for Linux. And there is no doubt that we should always develop in the same environment as where we would deploy our production solutions. Further to underline the importnace of Linux and Open Source in the industry, if we look at how companies are engaging with open source we find that -
- 65 % of the companies are contributing to Open Source
- 67% of the companies encourage developers to participate
- Only 1 in 3 companies have full time dedicated resource
- Lack of skills to participate in open source projects
- Not yet truly understood that they need to be seeders than lechers to reap the benefit of Open source
- 67 % participate to fix bugs or enhance
- 59 % do it to get competitive advantage
- 34 % of companies have 50% of their developers contributing to 1 or more open source project
- 50% of the companies have no formal policy for selecting and approving open source code
- One of the tool - GIT is the overwhelming choice for SCM - 73 %
From students perspective if we look at what managers are looking while hiring, we find -
If we look at what motivates the professional developers out there in the market we find -
So to answer the question if we should learn Linux and Open Source devlopment tools, technologies and environment, I can give a very emphatic !!YES!!. It is absolutely important for anybody in Software/IT career to focus on Linux. My recommendation to engineering students is to make Linux as their primary Learning and Development tool, because its everywhere and is so versatile that it can be used in mutiple learning contexts. There is a rich community of experts and beginners alike which forms an excellent learning platform.
Industry is looking to hire Linux talent and honing ones' skills at college level is the best way to be job ready. Running Linux and working in Linux and solving problems in Linux, you will not only learn computer and software architecture but problem solving skills that are invaluable in ones' career.
So I would encourage every body who had read this far to embark on their journey of learning and take it up as a challenge which you are willing to accept and unwilling to postpone and determined to win.
1. All references has been taken from The Linux Foundation reports on Kernel Dev and Job Market in Open Source 2017
2. This is first part of the series on exlaining why we need to dive into Linux. Please stay tuned for upcomming short tutorials on setting up and starting learning on Linux. Please put in your interest in comments below and topics you would like to learn.