Linux updates happen through the global collaboration of developers. Bugs are documented and resolved much quicker with this type of support. Also, since the developers are also the end-users they have a motivation to make sure it meets user’s needs and that it is designed to run well.
Software is only as good as the support is given. Imagine a piece of software was created by ABC company and they go bankrupt or get bought by another company that decides to cut support. The software would never see improvements or fixes and therefore its usefulness would inevitably erode and die. Linux is owned and operated by no single entity or company, so this situation cannot happen. More than that anyone is free to pick it up and contribute as well. The risk of losing support for Linux is very unlikely due to its overwhelming popularity and use.
Linux’s requirements for running on a system are much lower than that of Windows or Mac. With the right Linux distribution a user can have a modest setup and Linux will give the system value. Disk space and memory footprint can also be lower too. Some distributions are suitable for CPUs dating back to the Pentium family, others have a requirement of as little as 128MB of RAM and around the same amount for disk space!
Linux has an active community of those willing to share their knowledge and help (much like FreeCodeCamp!). There are command line utilities built into Linux that provide documentation on commands, libraries, standards, etc. (Man pages and Info pages, and there is documentation available on the Internet in a variety of formats (The Linux Documentation Project, LinuxQuestions, ServerFault. There are self-paced certifications that can be taken that are recognized in the IT industry (CompTIA’s Linux+ and LPI’s LPIC tests). Although not required, learning C gives the ability for a user to review the Linux code to see what they are running.
The world depends on Linux supporting critical systems so the demand is not going away. This is important not only to those that help contribute to Linux, but also to those who support it (Jobs!). Linux support becomes more critical in IT, but also having that knowledge as a developer will make them more rounded and useful (i.e. Full stack developers).
Linux has driver support for NTFS and HFS+ filesystems (used by Windows and Macs) and also Samba for file/print service support on Windows machines.
For other OSs, usually a user would have to go to the manufacturer’s website to get driver support for different types of hardware. The Linux kernel supports a majority of hardware automatically via plug-and-play (largely in part because of the open source community).
Linux has a rich set of applications that are available. It has office applications, web browsers (Google Chrome and Mozilla Firefox), media players, image/video processing, etc. For video gaming, Steam runs on Linux which has many supported games. Windows applications can also run within Linux (see Wine for details).
As Linux was originally made for developers by developers, they have spent much time and effort perfecting the tools that they would come to use. It has a powerful shells that can be used for a variety of both programming and administrative tasks (Bash is the most popular and default choice for Linux). While Linux has a “notepad” equivalent in gedit, it also provides more powerful and customizable text-based editors such as Vim and Emacs (It is recommended Linux users know at least one of these editors). There are also IDEs available for web-development such as Atom, Aptana/Eclipse, Sublime, KomodoIDE, to name a few. Linux also can utilize software such as Apache to setup a local web server for testing, Git for version control, and other tools/languages such as Node.js/Ruby/SaSS/Heroku all have support on Linux and have command line tools that can be used in lieu of a GUI.
Hard to beat that!