

Most of my hardware is from before I switched to Linux and I don’t see the need to switch anything that’s still working. I have a pair of Sennheiser 6xx’s that I use at my desk (my usage is occasional enough that I haven’t been able to justify buying a dedicated DAC/ Amp) and a pair of Sony WH-1000XM6’s that live in my backpack for when I’m outside the house.
For mic I usually use the mic built into my webcam (Logitech c920) at my desk, it’s nothing fancy, but it works well enough for the occasional voice/ video call. I don’t think I’ve had reason to need to use my mic while away from my desk, but I’d probably fall back to the one built into my laptop or use the XM6’s mic.
The only thing that might need software is the XM6’s, but those can always fallback to using a wired connection in a pinch. Plus, since they can be paired to both my phone and laptop at the same time, I can use the android app to handle settings tweaks (usually just adjusting the noise canceling mode).
Echoing that the best place to start is to get a handle on programming as a concept. Not because we’re trying to gatekeep the good stuff behind the scary programmer voodoo, but because otherwise you’re basically attempting to edit a book in a language you don’t speak (and the reader is very picky about grammar).
That said, you can absolutely teach yourself to code! Hell, if you figured out self hosting I’m willing to bet you’ve probably already got a handful of transferable skills.
In the interest of disclosure, I learned programming as part of my degree (took a Java class as a resume booster my first semester and ended realizing that I preferred coding to calculus and switched my major), so I’m not exactly a wealth of knowledge in the self study department. However I would recommend a course that has labs/ challenges/ projects to practice what your learning. Everyone learns differently, but I’ve personally found that I picked up programming concepts better when I got hands-on and applied them in my assignments.
The programmer’s open secret is that generally once you know one programming language, it’s pretty easy to pick up another. For example, Java and Python might write them in different ways, but at the end of the day a loop is a loop and as long as you know you need to repeat some code until some condition is met, it’s perfectly acceptable to Google “loop in Python” or “[Java concept] in Python”. In other words, it doesn’t super matter which language you start with; just pick something and stick with it (bonus points if you can turn around and tinker with an OSS app with what you’re learning).