There's two areas I never scrimp on when building a new computer: The motherboard and the case. The case can make the build and future upgrades to the machine simple, or a nightmare. When looking for a case, three things are important to me:
- Cable management. Besides the whole airflow thing, it makes it a lot easier to work inside of the case, or do simple upgrades when the cables aren't in a huge jumble in front of the motherboard. I can't count the number of times I accidentally knocked a cable loose and didn't realize it.
- Sound proofing. Maybe I've just been using laptops too long, but I'm really over having a tower that sounds like a jet taking off when I turn it on.
- Lots of space for additional drives, etc.
Since the CPU really determines the motherboard nowadays, I had to decide that next. However, since the new Intel Sandy Bridge processors came out a couple of months ago, it was a no-brainer. I went with the Core i7 Sandy Bridge 2600K. The K in this instance means the chip has an unlocked modifier, which is why all the overclockers you see tend to get either it or the i5. And while I'm not going to overclock it, there was a combo deal on my motherboard for the K version, which would normally be $20 more than the regular 2600 variant, making it the same price, so why not?
This was the most difficult spot for me. As I said above, it's probably the most important piece in the system, and completely affects how you can upgrade in the future, so it's important. The first thing I noticed when getting back into the latest hardware was how much it seems like every generation of new processors from either Intel or even AMD seems to have a completely different socket. Maybe they're more interchangeable than I think, but it at least seems pretty specific. For instance, take a look at this wikipedia page: http://en.wikipedia.org/wiki/List_of_Intel_Core_i7_microprocessors. Here's the sockets of all the different Intel i7 chips:
Bloomfield/Gulftown: LGA 1366
Obviously, I wanted to go with an LGA1155 socket motherboard, since that's the chip I got, but it's really easy to get confused. There's also a noticeable difference in the motherboards for Bloomfield processors. Most of the them are triple channel. While all the newer Sandy Bridge are all dual channel. It's a bit confusing at first, but SB represented a pretty big change in the memory controller. Namely, it's on the processor itself now and not the northbridge. That being the case, the only option for motherboards is whatever the chip has, which is dual channel. Also, from the numbers I've read, it seems that SB chipsets running 1333 DDR3 have higher memory thoroughputs than the previous generation triple channel setups, so it seems to work out.
I went with Gigabyte for my motherboard: http://www.newegg.com/Product/Product.aspx?Item=N82E16813128478
I really just wanted something that would support a lot of memory for the future, (This one goes up to 32 GB) SATA III (6.0 GBs) and USB 3.0 ports. I also tend to favor the 'enthusiast' motherboards a bit more, as their tendency to be used in overclocking setups means they have gratuitous amounts of heatsinks on all the chips. Having overheated more than one motherboard in the past, it's nice to have that even if you're not going to overclock.
I'm going to be running Ubuntu, so the video card selection is extremely important. Video cards and linux have always had a checkered past, and even in 2011 you can easily pick up a card that doesn't work right with a particular kernel or something. (It happened to me last year with a Fedora setup I had) Personally, I think the only option is an NVidia setup. I used to use Radeons exclusively, but starting with something like the Geforce 8xxx chipsets, Nvidia added this thing called PureVideo. This has support for VDPAU (Video Decode and Presentation API for Unix) Which allows *nix machines to use hardware decoding of video on the video cards themselves. With that in mind, I bought a Geforce GT 430. It was introduced last fall, is extremely cheap and focuses on being able to push video, which is all I want. I watch mlb.tv on another screen while coding sometimes, without hardware video decoding, it would take up a lot of resources.
Everything else is pretty straightforward.
Powersupply: OCZ ModXStream Pro 700W You can now get 'modular' PSUs, which means that you only have the cables you plug into the unit, and don't have a tangle of wires for all the connections you're not currently using.
SSD: Crucial RealSSD 64GB Who in their right mind would build a system today and not use an SSD? Especially if you're a programmer. I went with 64 Gb to save money. It's enough to run ubuntu on the SSD, and any code projects. For everything else, I picked up a normal platter drive for $40.
Ram: 4 x 4GB DDR3 PC1333 (I did a quantity of 2 on the setup I linked to for a total of 16 GB) Most of the nicer SandyBridge setups support faster ram, but since the sandy bridge architecture is at 1333, I'm assuming they're getting those speeds by overclocking, and it wasn't something I wanted to deal with.
Everything else is pretty normal, I picked up a new DVD drive for $20, mostly because I needed one with a SATA hookup. (All my existing ones are PATA) I also picked up a heatsink, thermal paste, etc as well. They're generally cheap and worth it to make sure you don't fry your cpu. With all of that, the total including shipping was: $1,337.62
It's not too bad for what is essentially a top of the line system. The only way to go higher is to get into server grade territory, with two CPUs and 12 ram slots. You could reduce the cost on the setup I have by going i5 and halving the ram, but that only saves you $200, and as a programmer, most of my work is CPU and Ram bound so I think it's money well spent. You can also go cheaper on the motherboard and the case, but you'll always regret it. Of course, if you also want to play games on the computer, you'll probably want to dump way more money than I did in a video card.