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
Arch Linux Wiki | 2025 |
Red Hat | 2017 |
Wikipedia | 2018 | List of Linux Distributions
SOCIAL SHARE CARD GENERATOR