This post is the first in a series (possibly just two or three posts). It'll be a short list of tips to follow when faced with the task of building a machine to run Linux.
You probably already know this, but, just in case, do yourself a favor and check the Linux Hardware List - just like Mac people have to check for Mac compatibility - you need to get used to checking whether Linux is compatible and whether the specific hardware works easily, hard or not at all. By picking full Linux compatible hardware, your life will be much easier - much easier.
Printers and scanners - don't buy Canon they have ZERO support for Linux. Brand new models may not be supported from any manufacturer. OTOH, some printers are literally plug-n-play and they work, completely just by connecting with USB.
This goes towards disk controllers, RAID controllers, WiFi adapters, network chips and cards, graphics cards, almost everything. WiFi chips are especially important if you have a laptop. Don't blame Linux, blame the hardware vendors for not releasing their proprietary MS-Windows-only drivers.
Binary driver releases for Linux will probably cause problems when you migrate to a new kernel thru normal patching processes too. In a few years, those binary drivers may not be maintained on the current kernel. You really want FLOSS drivers. As an example, I purchases a RAID card that was "linux compatible" and fairly popular. I thought I'd done my homework. The vendor had only provided binary drivers for a 2 yr old kernel, nothing for the current kernels. Fortunately, the Linux kernel recognized the RAID card as a JBOD, but not for any RAID capabilities. I ended up using that card, but had to use software RAID. All the disks were just presented as individual disks. Live and learn.