I'm kinda disappointed to myself as I found out I didn't like too much trouble so I'll probably never be a good/great programmer.
I'm kinda disappointed to myself as I found out I didn't like too much trouble so I'll probably never be a good/great programmer.
I know people who have written kernel-level Linux drivers who have difficulty upgrading macOS. They're separate skillsets.
I think I'm split between career growth and hobby. My career is much closer to a sys admin/devops than a low level programmer, but my hobby probably is closer to the later. Of course it could be just my fancy about low level programming that fascinates me as after all I have never done any low level programming except some entry level MCU programming.
I started out my career on the sysadmin side of things before becoming a developer and that doesn't surprise me at all. Most devs I work with have little to no understanding of things like file permissions, how networking works beyond making HTTP calls with $SomeRequestLibrary in their programming language of choice, or how services/daemons work in Windows/Linux.
Arch teaches you about the most boring parts of how linux works: the specific idiosyncrasies and configuration minutiae of a ton of libraries and programs (GNU coreutils, systemd, udev, mesa, glib, X11, Xlib, xdg, dbus, etc.)
Arch will usually not teach you the really interesting "low level" things about Linux: How the kernel works, how threads are created, etc.
A lot of what seem low-level in Linux are implementation-specific things. For example, how you set up wifi or how you manage your firewall. Knowledge of these things gives you less long-lived and less transferable skills than knowledge of protocols like TCP/IP which is shared by everything that is plugged to the internet. It doesn't make you a better programmer, unless these daemons and tools are what you want to write software for.
Also, your options are not only Arch Linux and Windows/Mac. There are more desktop-ready distributions, too, like Ubuntu or Fedora. Linux lets you still inspect the plumbing if you install one of those.
To be honest, I've dabbed in a lot of low level stuffs but never went deep enough to make any impact, career-wise at least. For example I completed a full course on MCU programming, completed the first half of nand2tetris, read the first few hundreds of pages of "Beginner Reverse Engineering" (basically the part that teaches one to recognize C from decompiled assembly code), and many others. My most recent low level adventure was the book "Practical Binary Analysis" which I planned to use the whole holiday to push maybe a few chapters.
But I never drilled deep enough into any of the topics. I believe I have the brain to drill at least a few more chapters deeper for any of them, but I don't have the mental power to do it. I secretly want someone to put me into some sort of prison and keep me from getting out until I completed all previous projects and learnings. But of course I need to figure out a way to deal with the problem.
Anyway, really appreciate your answer, and probably I'll still install Archlinux, play with it a few days and then lose interest -- just another failed project to spend time.