Introduction
As a software engineer, I try not to get too attached to a single operating system. Computers are just tools we use to get the job done, and unless your work depends on platform-specific software, most modern operating systems will serve you well.
Whenever possible, I like to use more than one operating system to avoid being biased by personal preferences. In this article, I’ll share my personal experience using Linux as a daily desktop operating system, highlighting both the good and the bad.
Everything here reflects my own opinions and experiences, so keep in mind that they may be subjective.
This article is aimed at developers and technical users who are curious about Linux as a desktop operating system, especially those coming from Windows or macOS. If you’re looking for an honest, experience-based perspective rather than a sales pitch, this is for you.
My Linux Journey
If you thought I was going to talk about how Linux is the best operating system and why all the others are garbage, you’re wrong. And this is probably not the article for you. I’ve used Windows, Linux, and macOS, and I like them all. Each one shines in different situations.
I’m not the person who will tell you that Windows is evil or that you’re a superior human being if you compile the Linux kernel yourself. Windows is great, and if you don’t have a good reason to try Linux, that’s totally fine.
That said, I do have a nostalgic relationship with Linux.
When I started college, I couldn’t afford a new computer. I was using an old laptop that struggled with basic tasks like web browsing, office work, and coding. I planned to replace it by the end of the year, but in the meantime I needed a way to make it usable. I didn’t want to go into debt just to buy a computer.
While researching ways to reduce resource usage, I discovered Linux. What caught my attention were stories about how it could give old computers a second life.
As a beginner, I ran into many problems installing and configuring it, mostly because I wasn’t familiar with the terminal. After a few days of trial and error, I managed to install everything I needed for college, and the machine became usable again, at least long enough for me to save up for a new one.
Of course, I broke my system a few times along the way and dealt with the usual beginner issues: Wi-Fi problems, hardware compatibility quirks, laggy video playback, and poor battery life. I eventually fixed most of them, except for battery life, which is still a common challenge on some laptops today.
Despite the frustration, that period taught me a lot about how computers and operating systems actually work. I spent hours reading documentation and forum posts to solve these problems.
Today, I use a MacBook Air for portability, but I also have a desktop PC that I built specifically to run Linux. I don’t have enough time to experiment with new distributions as much as I used to, but I still enjoy using Linux regularly and staying connected to the ecosystem.
The good parts
The appeal of Linux
Once you’re comfortable with Linux, you start missing some features when using other operating systems. Personally, I love how easy it is to install and uninstall software using a package manager like apt or dnf. Windows has Chocolatey and macOS has Homebrew, but Linux package managers generally feel more integrated and robust.
Highly customizable
Linux gives you a high level of control over your computer. You can customize the operating system to fit your needs. Of course, this varies depending on the distribution and the desktop environment you’re using, but most distros offer extensive customization options.
You can install several desktop environments at once: GNOME, KDE, XFCE, i3, dwm, etc. Linux’s modular nature makes it easy for them to coexist.
Familiar if you use Linux at work
If you already use Linux at work, such as when connecting to remote machines or managing a VPS on a cloud provider, using Linux on your personal machine feels natural. It’s also a great way to practice and improve your skills.
The knowledge you gain often becomes useful later when dealing with servers, Docker containers, or production environments.
Docker containers run natively on Linux
Containers are a lightweight form of operating-system-level virtualization. They package applications and all their dependencies into an isolated, portable, and consistent environment.
This technology is fundamentally a Linux feature. Docker is mostly an orchestrator and convenience layer; the actual containerization is handled by the Linux kernel itself. To simplify a bit, containers are regular Linux processes that run directly on the host kernel, but inside restricted environments created using namespaces (to isolate things like filesystems, networking, and PIDs) and cgroups (to limit CPU, memory, and other resources).
Because this relies on Linux kernel features, Docker Desktop on Windows and macOS uses an additional virtualization layer to provide a Linux environment.
Scripting and automation
Linux is also great for writing scripts or automate repetitive tasks. You can write Bash, Python, or Go scripts and run them as systemd services, or add them to your PATH so they behave like regular commands.
Of course, most of this is possible on other operating systems, but I personally find it easier and more natural to do on Linux.
The trade-offs
Things can break
Especially if you’re new and don’t fully know what you’re doing, things are more likely to break or not work as expected. On Windows, things usually “just work”, and that’s probably what I like the most about it: you plug something in, and it magically works. At least that has been my experience with Windows. On Linux, be prepared to spend time reading documentation and troubleshooting issues.
And sometimes it’s not even your fault. Even though Linux itself is generally rock-solid, that doesn’t mean all software running on Linux is bug-free. In many cases, companies don’t invest much effort into fixing Linux-specific issues because their main target audience uses Windows or macOS. It is what it is. You learn to deal with it and move on.
Learning curve
Linux can be intimidating at first. You need to learn new ways of doing things that you were already comfortable with on Windows or macOS. In many cases, you’ll have to learn the “Linux way”.
New users also have to decide which Linux distribution they want to install, and the differences between them are not always clear. And Linux has many different distributions. Also, depending on the distro, you also need to choose a desktop environment from several options. All of this can be confusing at the beginning.
You’ll also find yourself using the terminal more often. On Linux, typing a command sometimes feels faster and easier than clicking through a graphical interface. I know, it sounds contradictory. Why would typing commands be faster than clicking icons and menus? But trust me, most Linux users would probably agree: typing commands somehow just feels faster.
Hardware support
This is another point in favor of Windows. On Linux, some hardware may need extra configuration or may not work perfectly. I’ve experienced issues with multi-monitor setups, headphones, and HDMI connections, not necessarily due to faulty hardware, but because of drivers, firmware, or display-server quirks. Multi-monitor setups often depend on graphics drivers and desktop environment settings, while headphones and HDMI sometimes require minor tweaks. Tasks like these can occasionally be tricky, though support has improved significantly in recent years.
If you’re building a new PC specifically to run Linux, my recommendation is to first verify that your hardware is well supported. Some components can still be problematic depending on the setup. For example, NVIDIA GPUs may require extra configuration or proprietary drivers, which can occasionally lead to issues.
Despite careful hardware selection, some minor problems can still occur.
Software compatibility
Not all software is available on Linux. Microsoft Office and Adobe applications are two common examples. While open-source alternatives exist, you may feel that they don’t fully match their proprietary counterparts.
For document and spreadsheet editing, for example, I usually rely on the web version of Office 365, which is more than enough for my needs. I also keep LibreOffice installed, just in case.
Open-source software is created and maintained by communities and companies, but these projects aren’t always driven by profit. In many cases, contributors and maintainers aren’t making any money from it, so don't blame them. I say “in many cases” because there are open-source projects that do have a business model behind, such as VS Code or Next.js.
Most contributors work on these projects simply because they want to. Remember, they also have personal lives and often full-time jobs. Depending on the project, you can contribute as well. So if you’re a developer and have some free time when you encounter a bug, consider investigating it, you might find a fix and submit a Pull Request. Even small contributions like this help improve open-source software for everyone.
That way, we can all contribute to open-source software, even in small ways. But I know, that’s much easier said than done.
Despite these downsides, most of the problems I’ve mentioned can be avoided or mitigated with some guidance. Hardware compatibility, as well as choosing a distribution and desktop environment that suit your needs, play a major role in how smooth or frustrating your Linux experience will be. The next sections focus on practical tips to help you get started on the right foot.
Choosing the right hardware for you
There’s no magic advice here; do your homework. First, determine your hardware needs and research components based on that. You can use websites like Linux Hardware to look up specific components; it was very helpful for me.
If you’re buying a PC piece by piece, try to avoid hardware that is known to be problematic on Linux, such as certain NVIDIA GPUs or very recent components that haven’t been properly tested yet.
Reddit forums are also a great resource for researching hardware compatibility issues on Linux.
Choosing the right Linux distribution for you
A Linux distribution is a complete operating system that includes the Linux kernel, usually the GNU user-space tools and libraries, a package manager, some preinstalled applications, and default configurations. A desktop environment may also be included, depending on the distribution.
There are many articles and videos about Linux distributions. Others may disagree, but if you’re just starting out, I think there are only three you need to consider: Ubuntu, Linux Mint, and Fedora.
For your first Linux distribution, I’d recommend choosing either Mint or Ubuntu. You can’t really go wrong with either. I prefer Linux Mint because it feels more familiar if you’re coming from Windows, but both are excellent choices. Linux Mint is based on Ubuntu.
For developers, Fedora can also be a solid option. It’s a more bleeding-edge distribution, which means it includes newer packages compared to Ubuntu and Mint. It also tends to ship new features earlier, which may take some time to appear in other distributions. However, this also means you might encounter occasional errors or compatibility issues that are less common in more stable distributions.
There are other distributions that I think are better suited for more advanced users, or at least users who already have strong preferences. Debian and Arch Linux fall into this category. They are great distributions, but probably not ideal as a first distro.
Personally, I use Fedora on my desktop PC today, but years ago I used Linux Mint as my main system. Both have been very good experiences.
Choosing the right desktop environment for you
This largely depends on the distribution you choose. For example, Ubuntu comes with a customized version of GNOME. Linux Mint offers three editions: Cinnamon (the default), MATE, and XFCE.
Fedora provides even more options on its website, including GNOME (default), KDE Plasma, XFCE, LXQt, and Cinnamon.
If you’re not sure which desktop environment to choose, install a few of them and try them out. On Linux, you can have multiple desktop environments installed at the same time.
If you don’t want to experiment too much, you can safely choose between GNOME or KDE. KDE is usually a solid choice if you’re coming from Windows.
Nowadays, the desktop environment I use is XFCE because it’s very lightweight and works well out of the box. There’s no particular reason beyond that. I installed it, it worked well, and I stuck with it. No reason to change.
A few common questions
Is Linux for everyone?
No. If your work depends heavily on proprietary software or specific hardware that doesn’t work well on Linux, it may not be the right choice; and that’s okay.
Should you switch to Linux full-time?
Not necessarily. Many people, including me, benefit from using Linux alongside Windows or macOS, either on a separate machine, a dual-boot setup, or a virtual machine.
Is it worth trying Linux at least once?
Definitely. Even if you don’t stick with it, the experience can teach you a lot about operating systems, tools, and how computers work.
If you are already using Linux, should you switch to another distribution?
It depends, but usually no. If you’re switching just because of FOMO, it’s probably not worth it. If you’re facing a specific issue and you’ve confirmed that it’s handled better on another distribution, then switching can make sense. That said, hardware issues are rarely fixed simply by changing distros.
Conclusion
This article reflects my personal experience with Linux, and yours may be very different. My main recommendation is to try a few distributions using VirtualBox or similar virtualization tools and see what works best for you. Once you choose one, try to stick with it for a while instead of constantly distro-hopping. If I had to recommend a single distribution to start with, I can confidently suggest Linux Mint.
Once you step into the Linux world, try not to become overly “religious” about it. Avoid distro wars and pointless debates, especially on forums and social media. Just relax, learn, explore, and enjoy the experience.
For me, learning Linux has been a very positive experience. Early in my career as a software engineer, even a basic understanding of Linux helped me work more efficiently and understand systems at a deeper level. Even if Linux never becomes your main operating system, the knowledge you gain from using it will almost certainly pay off.
I can’t promise you’ll love Linux, but you might. Either way, it’s worth trying at least once.
Bibliography
Arch Linux Wiki | 2025 | Arch compared to other distributions
Arch Linux Wiki | 2025 | Desktop environment
Hardware for Linux | 2025 | Hardware for Linux
Red Hat | 2017 | Containers are Linux
Red Hat | 2025 | What is a Linux container
Wikipedia | 2018 | List of Linux Distributions
Top comments (0)