This is a cross post with my new blog about frustrations from the end user side (or any side tbh) of tech to help other developers and myself better gauge their focus by facing opinions other than "Gee that's wonderful" Material is intended to be somewhat off the cuff. To see the blog check out:
Somehow, we all come to a point where we just can't pretend that Windows is going to work for our needs anymore. Its not a bad product for most regular users. Even high end gamers do well enough with the Captain Clunky OS that Windows 10 remains (..maybe... next update...), which is still more reliable than most Linux distros because there is so much less you can do with Microsoft's OS even fully unlocked in an Enterprise edition. Powershell is pretty nice, though not following anyone's conventions is the Windows way making it clunky and foreign to me. And I won't even start on Edge and its creepy antics.
So this is never discussed in the typical shill fests that distro and Android reviews all seem lately, but you will still need to have Windows around until you get used to the Linux alternatives. No there will never be the same wealth of website wrappers as the Microsoft Store BUT you can use ICE to make your own web wrappers around your sites, so long as its a system that takes .deb files.
Two years in, there is nothing I need windows for, everything works better than Windows ever did (and I don't game so that's not a huge concern for me) but it hasn't been an overnight process, so I thought I would compile a series of tips for you, dear reader, compiled from my transition from irritated Windows user to Linux faithful.
Popular Today, Trash Tomorrow
I call this the curse of FOSS, the tendency is for anything that is popular with review sites and other Linux users to go to the birds within a release or two. Exhibit A) Ubuntu 18.04. At release it was broken garbage of the burning dumpster variety. While this is just speculation on my part, I am confident that this pattern relates to the not-so-secret reason Microsoft is warming up to open source which is if it is given out freely then the public will do alot of the bug catching and fixing for free, saving a company money and manpower long term. Personally, I don't mind this model at all and generally think its an economic no-brainer but in my experience it means that most distros with release schedules ( thus not rolling) who gain traction will next release broken garbage and if you are married to that distro, guess who has to do the fixing? YOU! I will contribute so loing as I have time, but as a developer trying to get my foot in the door, I don't have a surplus of time to do Canonical's work for them and so I distro op quite a bit within my favorite categories of distros: Debian and Ubuntu based.
Everyone Likes Different Distros, Including You, Spend the Time and Find What You Like Best
As the saying goes, people's favorite distros are like #$@%#@% everyone has one and they all stink. No two people, even with the same use case, approach Linx the same way due to the bounty of options available for every imaginable use case. Thus me explaining my reasoning for using PopOS as my workstation distro is useless as there will be 8 other serious opinions and 50 comments about how wonderful Arch is. Instead of going into a rage at the snide responses, let me just point out that one must spend the time with full installs (sorry live USBs offer too easy of an out to truly have the experience of a distro). When you have no choice but to try and use Fedora or OpenSUSE (bless your heart) then you will get a feeling for those approaches to Linux and if you are a dev this is an important part of distro selecting because it has profound implications for your work flow.
While Arch I find intolerable in its rolling, Windows-like tendency to break itself that it calls "updates", I otherwise like fellow-rolling-off-a-cliff distro Manjaro. I think the community is innovative, European enough not to be evangelists of their distro of choice (hey Arch users) and mature in dealing with as they do not come off as snide nor as arrogant and without reading comprehension, as is Ubuntu's community. I might use Manjaro as my daily driver but when I must work, I must work not mess around trying to revert my system back because pacman sucked in some mangled dependency. I find that to be too distracting to enable work.
I also find that if it is at all possible, avoiding NPM and Yarn is advantageous in the extreme. Not because these technologies are bad but because a quirk with Ubuntu having its "snap" alternative to developing a post-APT package manager. It is possible (as a laptop I have clearly demonstrates) for both a LTS and current version of Node to get pulled in if one by the snap and the other by CTL. Why? Don't know. Could I fix it? If I had 10 extra hours for the additional research, I could do almost anything (something Linux will teach you) but do I want to allocate my time in that way? NO I rather walk my dog and sleep than learn how exactly to fix that issue but its not usually a problem as Python-PIP handles most of the packages I would need and on my main rig, I am careful not to do that. For some of you this would be too much to enable a decent flow to your work and you might need another distro. None of the distro hoppers' advice is worth much to anyone but them at the time they give it. And definitely none of the brand faithful's advice is worth much of anything to anyone at anytime.
Most of the experience has little to do with the underlying OS but comes from the Desktop Environment
Some dissatisfied salts of the distro community would do well to learn this as well, but the overwhelming majority of how one experiences a system comes not from the few specific commands that are the ultimate difference at runtime between Linux distros, but the desktop environment that they choose. This is for two reasons and is equal in magntiude to those who are terminal first users who mock the GUI and spend 4x the amount of time doing any specific task. DEs as they are known are pretty similar across distro linezs as they are written to conform to some standard paradigm (QT, GTK2/3) or use case (LXDE, KDE ugh) and not specific distros. This is as opinionated as anything distro related and for me changes somewhat often and according to my needs. While disliking Solus as an OS, I currently am in love with the Budgie DE on my popOS ssystems because it makes the clunky parts of pop's custom GNOME 3 a distant memory and brings in functionality from standard Ubuntu I do like to use (like GNOME store's more comprehensive uninstall, ability to change and modify panels which stupidly is disabled with popOS vanilla). If you haven't settled on a DE, take a system you know or is stable (I used Debian 9 for this) and install a couple DEs on it. Then try each one of them for a day and try to conform it to what you want or think you want. This is also a decent use for Arch as it comes with none by default but allows for the wide range of DEs to be installed, including Window Managers which might for you be better than a whole DE. You won't know until you try.
When it comes to experimentation, while I discourage using VMs and Live USBs to get a true feel for an OS, I would say that figuring out if you can accomplish your basic needs in such platforms is a decent way to approach them early on and before that install. But I caution you, before using an Ansible playbook to convert your entire environment to NetRunner or RemixOS (which is really good actually) make sure to start with a device you use often but can afford to be a smouldering dumpster fire for a few days or an old computer you can work with temporarily while you discover the quirks of the OS.
If all Arch Users Jumped Off a Bridge...
One salient feature of the Linux community still is the Arch user base having a smug air of superiority because of the awful installer they are presented. Arch has uses, I use it to deepen my knowledge of the internals of machines and as a sort of mental exercise but regardless of use cases and its particular strengths, the reason so many people use it is because they read how awesome it is and believed it. Its not that magical and the community is self-righteous, smug and frankly out-of-touch (here come the death threats). AUR has packages for most things, somewhat like Debian, only instead of being relatively sure that Debian package will work, AUR might have viruses, be broken or have man_pages written by a guy paying more attention to anime than what he wrote.
Though Arch is an extreme example of any group that spends the time needed to become Linux fluent, arrogance from overcoming an extreme challenge. There are times you will probably go back to Windows or macOS, wishing to forget the whole Linux nightmare altogether (especially if you loose data from forgetting to back it up or if NextCloud WON'T LET YOU CONNECT TO OTHER DRIVES ON THE CLIENT WHATEVER THE DOCS SAY) and other times when you feel like superman because you got that sucker to work when it was mission critical. When it all comes together and you are Windows free, you might want to become one of those smug types but don't. YOu miss out on other distros and use cases if you are busy looking down your nose at non-arch systems and diversifying package managers and system architecture is a detriment if you ever want to go beyond a workstation OS with a GUI.
Being Afraid of Command Line is Stupid, Even in Windows
I was the same way, frustrated with computers the last thing I want to do is read why it doesn't work in some terminal window and try to parse something meaningful out of the word salad it spits out. But the thing is, once you experience an error the same way and correct it enough times, it becomes subconscious and your dealings with it reduce naturally. Plus using the GUI to navigate is only really useful until you remember the precise names of what you need, which is easy to remember for me if I type the word out a few dozen times. I could likely reinstall apt based OSes in my sleep at this point. Also, if you do use Windows and don't use the command line except when How-To Geek tells you to, you are loosing out on the most functional part of that OS family. Windows has wonderful command line and powershell programs that while different than the BASH/TCSH/ZSH/WHATEVERSH shells I have come to know and love, are still highly useful. Windows has command line programs for dealing with disk management that unlike the way they mount disks, is actually somewhat better than Linux in my experience. While not worth my privacy or 200 dollars, I would say that to run a DOS OS without the DOS command line is a waste of the truly only decent functions that OS offers other than general compatibility.
Terminal Emulators/Command Line isn't always a better option. Its masochistic to use commands to navigate file trees and the visual structure of the files does reveal certain patterns a simple ls command cannot. While I advise learning how and practicing often until your handle on navigating with commands is easy (makes using remote systems a much easier and less annoying experience), know using the GUI is not always a chicken &*%# way of using your system regardless what some fat dude at an independent coffee shop with his arch linux gaming laptop says.
Back Up All Data, Always
One thing that can happen to your Windows machine OR any distro regardless of how it administers updates is that the OS can become corrupted and break. For me, this is usually because I am foolishly trying out programs on my system and overload it with uneeded garbage (I don't autoremove since the last time I did and it uninstalled all my DEs, one annoyance of my beloved apt systems). Though sometimes updates break your OS and other times there is no discernable reason, almost like Windows when it breaks. This is part of life, and while macOS is less prone to this than most Linux distros (minus Debian which if not overloaded will almost never crack) that doesn't really justify the 2k price tag, antiquated hardware or seemingly obnoxious manner in which platform crossing is discourage (not impossible) with their filesystem format. In fact, macOS users should burn a recovery disk if they don't already have one because it too can crash and as the company becomes ever cheaper and lower quality, one should expect more meltdowns to arise as time goes on. So everyone should BACK UP ALL THEIR IMPORTANT DATA.
I may take this overboard but I use three levels of back ups. The first is to retain most data on a separate drive from my OS installation. I use a much bigger, enterprise HDD for this purpose on my workstation and all my laptops share a large microSD card for saving data on. I expose the HDD on my internal network via Samba and use it as a sort of repository for my servers and other desktops to grab ISOs or wallpapers or whatever from so its useful in several ways. The second layer I use is cloud storage, which is pretty much just pictures for me if its a third party cloud but in my internal network I keep a NextCloud install with everything from all my systems. If there is a crash, I don't usually just restore this data cause some of what caused the crash might be inside of the backup. Instead I comb the backup for what I need than wait a week and purge the rest (the week is in case I forgot something I need, its enough time to remember usually). The third and most important layer if long term data survival is needed is cold storage. I throw all of my backups into zip folders and put them on an external or 2 that remains power-off when not in use. I cannot afford to loose any of those pictures of my angelic dog, so I keep them safe that way even if Amazon threw me off its drive and Google had a "wrong password despite entering it perfectly" fit for eternity, I still have copies of everything. This is useful if you ever try dual booting with Windows and discover it thinks all drives not compliant with its drive header format is "corrupted" and wiped all the drives on your computer during said install.
Keep Notes of How You Fixed It
This was advice I heard, thought it was good and thus ignored completely but I must emphasize this to you at all costs. KEEP NOTES OF YOUR FIXES. Unlike the formerly useful OneNote, a lot of notes services did not steal your save key OR the backup to cloud feature really does work well with them. Notion.so is what I currently use because I like the price (free) and the feature said, even if the design is a little kitsch. It is cloud based and not on my cloud, so I can access my notes from anywhere without exposing my server to the wide world of "ethical" hackers who might poke around and ethically destroy my system. The use of the notes, that can increase the time spent on the fix, is it forces you to explain what you did, which help with memory or if you lack memory (like me) give you a blueprint to roughly follow if you are again in that position (which at first will happen ALOT and will improve with time). I slap all these bad boys together in Notion and export them as Markdown for storage, thus have a way that makes sense to me (as the tutorials are more Spartan than the dialogue in a Dirty Harry movie) which if command heavy I can make a script to just run if the issue reoccurs.
Distrowatch (a site any restless Linux user becomes very aware of) has as its tagline, "Put the Fun Back In Computing" which if you are dealing with a bundled install or trying to determine why the USB isn't booting your intended OS in Live mode seems like sneering mockery but its not. Linux is very powerful when you learn to yield that power effectively and is a lot of fun when it is all working well or you finally fix the issue that had you ready to become Amish only an hour before. Don't loose site of the fun involved, as in don't join the Arch cult sneering on Reddit/their own forum/anywhere Linux is discussed or become a defender of some technology that works well for you but no one else. Its not perfect but its rapidly developing and its free, so what would on MS be an extreme burden (because you paid for it so it should work) on Linux is an opportunity to deepen your knowledge about the software that runs your machine and the machine itself, which for me at least is the fun.