I’m planning to build a computer primarily for programming and want to ensure it’s upgradeable for the future. and Hardware with opensource drivers support.
U looking for portable or wanna go full desktop? Wjat about gaming? If u plan on messing with ai then a fat gpu is nessasary. Id go with amd and try get a lot a threads over single thread performance.
As a rule of thumb i buy high-end to last me for ages.
I prefer Asus motherboards, the last one lasted 10 years and i only replaced it 'cos of bad diagnostics on my end.
I prefer AMD CPUs because, so far, AMD has stuck to socket upgradeability - that board came with an AM+ Athlon which i replaced with a Phenom. Current one’s Ryzen 5 and i can upgrade to Ruzen 9 if so desired. I’d say Threadripper is overkill, stay on Ryzen.
32 GiB RAM is nice, more is nicer, especially if you play with virtualization. You may want to remount your /tmp as an in RAM tmpfs (otherwise you won’t be able to compile firefox on gentoo).
I don’t care about graphics cards (beware some CPUs don’t support your mobo’s on-board graphics) but you mentioned LLMs… so… go gamer on that, can’t help you there.
Storage… really depends on your projects… 1TB HDD is more than enough for most stuff, find good brands within your budget/needs. I prefer SSDs because they’re quiet and curently have 3 Crucial MX500s on a ZRAID6 2 TB pool.
Same for fans: Noctua or be Quiet.
PSU’s probably… 400W? Dunno, always buy more than you need and you’re gonna need to feed that external GPU…
I feel you always want to spend at least the best price per value for power supply and maybe a bit more or even the pricey high end. Overall its a cheap part and so important to quality.
I used to think a lot about up-gradability before but often find that when a cpu is too slow then it is also so old that I have to change the motherboard and ram too for compatibility reasons.
Same thing with the motherboard, if it fails I’ve never had it be new enough that I can bring my cpu and ram with me to my next motherboard (unless buying an older motherboard second hand).
And many of my disks will be old enough that I want to replace them too, at least if they have anything important on them.Only things I’ve brought with me when upgrading desktops have been my case (including fans), psu, gpu and (some) disks.
Having a quiet and dust proof case that is easy to build in and a good psu that https://cultists.network/140/psu-tier-list/ endorses has become higher priority to me since then, as I know they might last me more than one build.I tend to recommend a 3 year cycle. Year 1 upgrade peripherals (speakers, monitors, maybe chair, keyboard, mouse etc) year 2. Upgrade video card and hard drives. year 3. Upgrade motherboard, ram and cpu. Year 4 repeat year 1
With this you can you can do 95% of the latest stuff with “good” stuff (think XX70 cards rather then 80 or 90 series) since you are never that outdated on any portion.
I bought an expensive chair 8 years ago and it’s as good as the day I bought it. I’ll easily get another 8 out of it and it will likely last 30+ years of heavy use.
Which makes it cheaper than buying a $120 chair every 3 years.
You upgrade your chair, keyboard, mouse, and speakers every 3-4 years? You might as well be flushing your money down the toilet. You’re giving pretty terrible advice imo.
It depends highly on what you will be programming.
Low level programming C, rust and Machine Learning programming with Python. No need of huge graphics card.
Low level programming C
Could be pretty much any computer
rust
Need a lot of memory (8-16 GB) if you are planning on dissecting any existing projects
Machine Learning programming with Python
Start with colab / huggingface and get a feel for what level of hardware you need for the stuff you’re doing before you start buying stuff
If you want just a general high quality system with upgradability etc, frame.work or System76 are supposed to be good high end providers.
ML means you need a beefy GPU. That could always be a secondary addition though - add it in later as an external GPU and call it good.
I’m not sure that serious ML doesn’t need a huge graphics card.
VFIO/SR-IOV
I mean you can program on a potato, so what would be your programming need? Something specific you want to get into?
Yes Hardware Firewalls exist, but those are primarily infrastructure and not part of a computer.
If all you want to do is program on that rig, then maybe consider an integrated GPU solution so you don’t have to invest in a overpriced Graphics card.
When you care about security and privacy you probably want to run a Linux distribution/BSD instead of Windows? Or do you want Apple (as then this discussion would be superfluous anyway)
I currently have a HP laptop with decent hardware with void linux. The problem is i cannot repair or upgrade that laptop apart of ram and HDD. I want to upgrade or repair on my own.
Okay, so you want a laptop or a desktop?
Desktop
as a senior developer my advice is: buy parts and learn to assemble, the exchangeable parts are (at least for me):
- CPU/Mainboard/RAM : always bought as a bundle (RAM at least 32GB), because dependencies are too high, I prefer AMD, but ymmv
- GPU : Easy to switch, easy to spend a fortune, i always prefer mid range cards or older ones like the AMD RX 6600
- Storage: Always the fastest possible, if you need to go cheap, then make it smaller, linux does need no significant space, and i run my system on a 240GB M.2
- Case/PSU: Buy it only once, i still use a case from the 90`s, the PSU will only be upgraded if connectors change, 750W are enough for most of the work
- HID: Dont go cheap on Monitors and Mouse/Keyboard, IPS displays are a must, if you have multiple screens (angular view is distorted otherwise), Most gaming input devices work very good for programmers, i prefer logitech (with ratbag), but corsair has very goot support under linux too (ckb-next)