Sign in to follow this  
SuBM1T

Specific Computers for Programmers?

Recommended Posts

The best specs depend exactly on what you want to do.
If you want to learn to program the Cell, get a ps3 with linux support.
the psp? get a psp capable of homebrew.
the ps2? same.
the xbox? get the xna development kit.

the pc? get something with the hardware you want to deal with. If you care about graphics programming, get a high end graphics card, otherwise just get something cheap.
Learn about threading? get a dual or quad core.
Learn about networking? mostly doable on one box. but consider getting something super cheap as a second box to test as a server.

There is some evidence that not all SSD drives are good for programming (small file writes aren't optimal), so be careful and make sure you spring for the right drives if you go the SSD route.

Until you really get the hang of what you are doing, there is little chance that you will really push a cheep computer. And if you ARE really pushing it, time to learn about optimizations and algorithms that can help speed things up before jumping the gun and throwing more hardware at it.

Share this post


Link to post
Share on other sites
Like KulSeran said, it really depends what you are going to do.

Assuming you are going to do PC development, the general rule is that you want something that meets your target requirements, plus the requirements of the dev tools with some room to spare.

Generally speaking there isn't such a thing as too good of a system, so for amateur development you should really look at how much you want to spend, and work backward from there.

IMO the most essential 'specs' of a good rig are:
Good quality comfortable, durable chair.
Good quality keyboard.
Good quality dual monitors, low glare, preferably identical to reduce eye strain when looking back and forth.
Comfortable desk with plenty of room.

From experience I can tell you that these are more important than the PC tower itself.


For the PC tower...

CPU -- Core 2 Quad is the biggest bang for the buck last I checked. What ever you do, don't buy a CPU with only one core.

RAM -- Never enough ram. I'm running 8GB and I wish I had more.

GFX card -- Find something that is good for the price. Don't worry about the top end, most people won't have that card anyways.

HDD -- Don't bother with SSD, the lower cost ones are slow, and the money required to build a good setup with the expensive ones is better spent elsewhere. Instead, buy a couple 750GB drives and mirror them with RAID 1, which will both give you a faster drive setup and help protect your data against drive failure.

A few months ago I built a home server and spent a couple weeks getting everything setup correctly, then a couple days later it had a drive failure. Thankfully it was running with RAID, so I pulled the drive out, put in a new one, and RMA'd the broken drive. Quick and painless, no data lost. I will never build a machine without a RAID array again, and I would highly advice anyone serious about their data to use one as well.

But again, it all comes down to your budget. You could go find an old 486 at a garage sale and accomplish plenty programming on it :)

Share this post


Link to post
Share on other sites
I would suggest some sort of backup solution for your code, like an external source control service. You could also make backups by yourself. RAID only protects against drive failure.

Share this post


Link to post
Share on other sites
A Pc with a very good qualety sound card and sound system.
As for the specs it depends on the type of programming you're doing (it has to be a fast Pc), but the 2-3 really big motors (not wide) ,good sound system and lots of Hdd Storage are essential.
also the Pc sould be very quiet so that it woulden't desrupt the music.

Share this post


Link to post
Share on other sites
I'd say the best thing is to buy each component individually. Think on each of them how much do you need.
For instance I have laptop with 2GB RAM,Core 2 Duo 2.2GHZ, 120GB HDD, and nvidia 8600GM. I'm perfectly happy with it. I also have a stronger desktop if necessity should strike but in the meanwhile I like to work sitting in bed :P

Share this post


Link to post
Share on other sites
Spend your money on the best keyboard you can afford along with a comfortable well lit environment. A large bookshelf is essential.

As for the computer itself, RAM and good quality monitors are probably the most important components.

Share this post


Link to post
Share on other sites
If, for example, you have a budget of say 500 for a system and 500 to make it "go", I'd spend the entire second 500 on the fastest pair of HDD's money can buy. Put windows and apps on one, and your dev stuff on the other (don't raid them).

I did this with our works machines and it made a tremendous difference to compile times, batch tool execution, etc.

Share this post


Link to post
Share on other sites
Quote:

If, for example, you have a budget of say 500 for a system and 500 to make it "go", I'd spend the entire second 500 on the fastest pair of HDD's money can buy. Put windows and apps on one, and your dev stuff on the other (don't raid them).

I did this with our works machines and it made a tremendous difference to compile times, batch tool execution, etc.


Seconded. We also have setups like that at work. It does make a difference. BUT at that point I also suggest you look into source control, like GIT or Perforce, and keep your code on a more stable drive. We've had more than a few HDD failures at work. (bound to happen, there are lots of computers there and lots of HDDs, most constantly building and rebuilding assets throughout the day as people change things. My home HDDs don't get nearly that amount of throughput, but I still think better safe than sorry.)

Share this post


Link to post
Share on other sites
Quote:
Original post by Drakonite
HDD -- Don't bother with SSD, the lower cost ones are slow, and the money required to build a good setup with the expensive ones is better spent elsewhere. Instead, buy a couple 750GB drives and mirror them with RAID 1, which will both give you a faster drive setup and help protect your data against drive failure.
The opposite is true. RAID-1 does not make anything faster, but slower (although hardly noticeable in the normal case).
RAID-0 is what makes both access time and throughput faster, but not in relation to price and risk. Failure of one disk on a RAID-0 means greatest imaginable desaster.
RAID-5 is kind of a compromise (somewhat faster, and more security), but still more expensive. I've tried pretty much all RAID configurations from 2 to 5 disks, and all of them suck compared to a single hard drive and an accessory SSD. Especially if one day you decide that you want to do something different (such as install dual-boot Linux) and find that it just happens that it doesn't work because <insert some stupid chipset/driver or whatever reason>. Let's not get started about noise and heat. Also, if you are serious about RAID, you need a controller which costs as much as a SSD in the first place. Onboard RAID controllers are nightmare paired with software emulation.
I'm still running my fileserver on RAID-1, but only because I'm disinclined to do a new install as long as it works -- would never do it again.

The extra security of RAID with the burden it comes with is silly compared to just buying an USB hard disks and making backups. The possible speed gain is not really that significant, unless you have 4 or more disks, at which point it starts to become rather expensive.

SSD on the other hand, even a really cheap one, is just stunningly fast for access and read transfers. While it is true that SSDs don't quite cut it for write operations yet (except the really, really expensive ones), that isn't a valid argument against them. If used wisely, for example by storing system headers and libraries on them, even a small (32 or 64 GB), cheap SSD can easily cut your total compile/link time in half on a multi-core machine, as your many CPU cores will now actually be used.

More RAM helps, but unluckily not nearly as much as it should, because (at least under Windows) the buffer cache does not work as well as it should.

More CPU cores help, but only if the disk system can keep up feeding data, otherwise you have mostly idle cores waiting for input.

Share this post


Link to post
Share on other sites
A bit of topic: buy a good chair and table, learn how to sit en type. Wreaking your back and wrists is worse than losing a backup. Your back and wrists have no backup.

Share this post


Link to post
Share on other sites
Quote:
Original post by samoth
The opposite is true. RAID-1 does not make anything faster, but slower (although hardly noticeable in the normal case).
RAID-0 is what makes both access time and throughput faster, but not in relation to price and risk.


Actually you're wrong there.
RAID 1 ensures data is duplicated onto both drives. This means when you come to read from your raid array (with a decent controller, which if you're using raid at all yuo should have) you can read from both drives simultaneously, effectively doubling your read speed. Also your access times may be reduced as you can just use which ever drive gets to the data first.

RAID 0, because it splits your data across two drives, can actually increase your access times, as you will need to query both drives if your data runs across more than one stripe.

RAID 0 is only good for joining two or more drives together to appear as one, I wouldn't use it otherwise, even then I wouldn't recommend using RAID 0 at all.

Share this post


Link to post
Share on other sites
A very important lesson regarding backups - it doesn't matter if you have them. It is much more important, crucial even - to be able to restore data.

While it may seem that backups imply data can be restored, they are too often completely different issues. Ask yourself this: how often do you back up data? How often do you restore it? When was the last time you tried to do full restore?

So your source is safely on github. Cool. How do you restore it if github shuts down or goes offline? How do you restore it if your network goes down, or you have no signal to connect to internet, or your network connector or antennae breaks? And you need it *right now*.

Your OS and applications are easily restored - just use apt. Or is it? Which repository do you depend on? What if you need an older version? What if you need a specific version? What if project gets obsoleted? Will you be notified it has been removed, or not ported to new version, or renamed, or had its dependencies changed?

Or perhaps you are on Windows, and restore is just a format away. But what about malware - fresh installation might be vulnerable out of box. Try installing XP on a system that is connected directly to internet. There is a surprisingly high chance that before first patch is downloaded from windowsupdate, your computer will get infected and break.

Perhaps you keep backups local. What about floods, fire, theft, falling objects, cats, dogs and insects, power surges....

Or if you keep it on CDs/DVDs, do you verify they are still readable after 2, 3, 5 years? I'm sitting on a bunch of CDs burned 9 years ago - all unreadable. Everything on them is permanently lost.

USB keys? They break, in more then one way.

Or perhaps you need to turn in a very important paper, or document, or have a presentation. Do you keep data on disk, USB and a CD, as well as in printed form?

Not much is said about backups in practice, since catastrophic data loss, at least right now, is still rare enough. But having data safely backed up is very different thing from doing a backup.

And how much of your work depends on transient services? Perhaps web pages, applications that can be downloaded and you don't have physical copy of? How much software no longer runs directly on hardware available? Or is written in obscure formats?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this