I'm in the market for a new workstation and as I shop around there are recommendations based on the type of work. For example, I've seen configurations for content creators, streamers, ML/AI, etc. but nothing specific for plain old software engineering. I'm also not aware of any sources that specialize in reviewing hardware within the context of software engineering.<p>Why isn't software engineering included in the list of recommended configurations?
Because hardware has already reached the level where run of the mill front-end/back-end software development can be done comfortably on just about anything. Even run of the mill NUC-style office PCs from Dell/HP/etc. have up to 8 physical cores and 32 GB of RAM and they can be found dirt cheap off-lease.<p>Sure, true workstations get up to a couple dozen cores and a few TB of RAM but what would the average developer do with it that warrants that kind of money?
If by workstation you mean desktop, then system builders that aren't gaming PC companies exist. Consulting and building for business workloads is Puget System's whole business. If you're in the United States or Canada, you should give them a call.<p>If by workstation you mean a laptop, then you have to work with in the compromises set by the form factor. Light, Powerful, Cool, Cheap. Pick two. The best you can do is look up benchmarks for certain parts, set a minimum performance requirement for your needs, and go from there. Maybe if you gave us an idea of the programs you normally use, the more power-hungry applications you might use every now and then, as well as your budget, you can get a recommendation.
Software development doesn't have <i>one</i> set of needs. Many development workflows don't require much hardware at all. You could use a raspberry pi and be fine. Some require absurd single core performance. Others absurd multi-core performance. Some demand lots of RAM, others don't. Some are very GPU-intense, others just need a display output.<p>It all depends on what you are doing.
You need a good physical environment, with control of distractions, a monitor large enough to display the things you're working on in enough detail, a few pads of paper for sketching things out, and a computer fast enough to compile in less than a second.<p>Back in 1986 this was a 10 Mhz 286 with 4 mb of RAM and 30 Mb of hard drive, running MS-DOS, and a 17" Trinitron Monitor, with a lot of floppy disks, an Epson Dot Matrix Printer, a desk, telephone, and office with a door. Your IDE of choice was probably Turbo Pascal.<p>Now it can be a laptop and headphones on a beach, or you can go more traditional. As long as your compiler still gives you sub-second feedback, you should be good.
Software engineering is too broad of a category to make specific recommendations. You've already noted that there are specific recommendations for AI/ML. Anyway, all you need is a decent processor and alot of memory for most use cases.
Most of the time it's not compute or memory intensive so any computer will do.
The most important thing then is too have a good chair, keyboard and mouse!
Not entirely sure what the question here. Because I dont see how a workstation, or a Desktop PC for software programming is any different to a "decent" computer.<p>You need lots of Core, ECC Memory ( if you need it ), and a fast / reliable SSD.<p>For example, if your software stack works on MacBook Pro, the M1 Max is currently a very capable laptop that offers near the best compute performance you can get.<p>So the simple answer is, any decent computer will do.
I made a spreadsheet of specs of what I "want.", what I "need", and what I was "looking at", and what I "already had." There are also things we DON'T WANT, ie. touchbar: no.<p>condition: new/used/very old<p>type: laptop/mini<p>*Vendor: costco/apple.com/garage sale
brand: dell/apple<p>model, id, serial #, hardware-UUID<p>price<p>RAM, type, Speed<p>boot rom: none/open<p>*OS: windows10/macos
version: Home/Pro/version<p>*Cpu: open-core/intel/amd/Power
version: i7/i9/Celeron/G4
L1d-cache,L1i,L3
speed: 1.2 GHz,2.4 GHz,1.42 GHz
base, max-turbo-freq,min-freq,lithography
bus-speed
cores, threads<p>4K-Support:
max-res-(HDMI 1.4)<p>*Graphics:
graphics-model
graphics-memory<p>*Display:
display-resolution
monitor-size
HDMI<p>*network: 10 GB Fibre/1 GB Ethernet/100 MBps
wireless<p>*Storage:
disk-type: SSD,HD
disk-size: 2 TB,74.53 GB<p>*USB3
USB2
USB-C
Thunderbolt3<p>web-camera
headset-jack
line-in-jack
keyboard<p>*Extraneous:
Built-in-microphone
SD-card-reader
DVD/CD: none
Bluetooth: no
FireWire
Dialup/Fax-Modem
touchscreen: no
touchbar: no
touch-ID: no
Just get a mid-level gaming PC and you will be ready to tackle almost any development workflow. Some basic specs to ensure:<p>1. AMD Ryzen 5 (3rd gen)<p>2. 32GB RAM<p>3. NVMe SSD from WD/Samsung<p>4. 1440p/4k monitor with 144Hz refresh rate<p>5. Decent gaming mouse/keyboard<p>6. Entry level GPU (RTX 3060ti)<p>That's all it takes. This setup will run circles around any laptop you can get, when it comes to stuff like compiling, VS code, browsing stack overflow, etc. Also you can game on it during the weekends.
There are too many developers who take a sort of perverse pride in running a potato with a 12" laptop screen for any reasonable consensus on a "software engineer" configuration to emerge.
You try developing deep learning - neural networks models on an OK consumer Desktop !!!!!!!! My PCIe3 Core I 9 based system with a NVIDIA 1080 TI with 16 GB of RAM on the GPU and with 16 GB of RAM takes Days to train models with only 180K training samples.
So I am pricing Motherboards, and GPU's that are PCIe4
When I developed Database software that computing power was not needed.
Now that I am doing deep learning with 12 bit per pixel medical images I have SSD's32 GB of MainBoard RAM, and preferably a 16 GB GPU JUST FOR THE DEEP LEARNING and use the mainboard or another GPU for the display so x570 mainboards are my goto mother boards