A computer is programmers' most essential tool. Of the myriad models available, what kind of computer do you need for programming? Read on to find out the opinion of longtime experts in the industry.
Here is a list of essential accessories needed for programming (and for learning programming):
- a desk and a comfortable chair
- a monitor (bigger is better); two monitors are better than one
- a keyboard
- a mouse
- a computer with a connection to the Internet
Let's start at the very beginning. There is one big mistake that most people often make when attempting to learn programming. That big mistake is a laptop.
Why Not a Laptop?
For starters, they are more expensive than desktops. Some laptops are very cheap, but they are also quite inferior to their similarly priced desktop counterparts.
While it is possible to program on a laptop for a short time, this is not recommended for serious work. On a laptop, everything is wrong: the screen is too small and the keyboard is not good enough. Even worse, the screen cannot be positioned at the correct distance from user's eyes and cannot be sufficiently elevated from desk surface.
Long hours spent on a laptop will likely lead to pain in the back and in the wrists. This is because it is hard to maintain a healthy sitting position while working on a laptop.
All images of programmers working on laptops are pure propaganda; no sane programmer does this. Anyone attempting to work in such conditions is likely to give up quickly. For programming, the display needs to be as large as possible, but laptop displays are all too small.A good keyboard is very desirable for programming, while laptops have the worst and the smallest keyboards.
Another big disadvantage of laptops is that they are not easy to upgrade or repair. Also, the rechargeable battery has a limited life span. Repairing a laptop can be costly.
Therefore, a desktop computer is a much better option for programmers.
In case you already own a laptop computer, there is a way to use a laptop as a desktop. In such a case you need to buy a separate monitor for your laptop, and a separate keyboard and a mouse. This option is still inferior to the true desktop in many ways.
A Desk and a Chair
Buying a desk and a chair can be expensive; fortunately, most people already have some suitable furniture. But what kind of desks and chairs are suitable?
66-71 cm (26-28")
min 100 cm (40")
min 60 cm (24")
You can get away with a slightly higher desk than what is recommended; but be warned: siting too high for prolonged periods of time can lead to various health issues over time.
The desk should have a lot of space beneath it. Drawers and similar features are just reducing this space and therefore are not recommended.
The most important thing for a chair is to be ergonomic and to have a good lower back support. The sitting height should be around 50 cm (20") for most people; you should try out the chair to confirm that the height is right for you.
The luxuries for better sitting comfort are: a soft sitting surface, height adjustment, hand rests, hand rests adjustment, back inclination adjustment, wheels & rotation.
Doing programming is much easier if you have a big monitor or two. If you don't have two monitors, one will suffice. You should have at least one monitor of at least 19-inch size.
Since this is a guide for very small budgets, let's first explore what the cheapest options are. Possibly the cheapest option would be an old, second-hand CRT monitor, but we won't recommend this option since text can get a little blurry on CRTs and the LCD monitors are very cheap nowadays.
Of all the cheap 19" LCD monitors, many should be good enough. A second-hand 19" LCD monitor can probably be bought for as low as 40 USD. You don't need a wide screen monitor, the 4:3 aspect ratio is OK, in fact, the 4:3 aspect ratio is better for programming than the 16:9 aspect ratio.
An annoying issue on many old LCD monitors is color-shifting. It is an effect where brightness and colors on the screen change as you move your head up-and-down in front of the monitor. This can lead to wrong posture and back pain, as the user is subconsciously adjusting his posture to the best one for his eyes, which is not necessarily the best one for his back. Therefore, before buying a monitor, try to ensure it doesn't have a big color shifting issue by observing the monitor from above and below and verifying that the colors stay stable in general.
The IPS type of LCD monitor panel has the lowest color-shifting. The various VA LCD panels have medium shifts, and the TN panels usually have the greatest color shifts, although there are some exceptions to this rule.
The manufacturers and retailers commonly don't specify the panel type. Whether the monitor has a LED backlight or not is irrelevant, but they like to emphasize this mostly useless piece of information. It is not easy to find out the information on monitor's actual LCD panel type.
Second-hand monitors are much cheaper than the new ones. You can usually buy a second hand 19" LCD monitor locally for as low as 40 USD. If you are buying a second-hand monitor on the Internet, here are some recommendations for good 20" models:
1600 x 1200
approx. 50 USD on eBay
IPS or VA
1600 x 1200
approx. 60 USD on eBay
1600 x 1200
approx. 60 USD on eBay
A new monitor probably costs at least 100 USD, and that price is for the worst models.
You can start out with one monitor, and then you can buy a second one later on. A second monitor helps a lot.
A monitor resolution is not particularly important. We recommend at least 1280x720. This is satisfied by most monitors. On higher-resolution monitors the letters are somewhat sharper, but not much.
It is preferable for a monitor to have at least one DVI, HDMI or DisplayPort connector (as opposed to D-SUB / VGA connector only).
You might have noticed that programming requires a lot of typing. The logical conclusion is that you need a good keyboard.
The most important recommendation is to get a full-size keyboard with full-depth keys. This is how the original keyboard for PCs looks like:
There can be some slight modifications, depending on the region, but the important parts are:
- the main key block featuring letters, numbers etc.
- the F-key block at the top, with the Escape key
- Print Screen / Scroll Lock / Pause keys at the top right
- the 6-key block: the Insert / Delete / Home / End / PgUp / PgDn keys
- the cursor (arrow) keys
- the Numpad block (at the right)
- the indicator lights (above Numpad)
Of all the keys, only the Numpad block is optional for programmers, but it is recommended that the keyboard should have it. All the other keys are required and the recommendation is to avoid keyboards that don't have them.
Avoid keyboards with shallow or flat keys.
The so-called media keys (play, stop, e-mail etc.) are irrelevant.
The keyboards with full-depth keys usually have one of the two switch types: rubber-dome or mechanical (a more correct name would be: spring-tensioned). Mechanical keyboards are better, but the good ones are also quite expensive (80 USD). Cheap mechanical keyboards are available (30 USD), but the quality varies. Membrane keyboards start at 15 USD. The manufacturer won't specify that those are membrane keyboards. Membrane keyboards have a lifespan of about 3 years.
There are some membrane keyboards which are better than others, but they cost slightly more.
A mouse should have a left and right button for clicking. Most computer mice are OK.
As laptops are not good enough, you are going to need a desktop computer. A big advantage of desktops is that they can be easily upgraded. On a desktop, you are able to upgrade the computer at your will, which is very convenient.
If a component of a desktop computer fails, it is usually simple and relatively cheap to replace it. Laptop repairs can be costly.
While a new desktop computer costs at least 200 USD, there are many ways to cut this price down significantly. You can buy a second-hand computer, or you can piece it together from various components, either second-hand or new. It is sometimes even possible to get some components for free. This is discussed in the next section. This section provides an overview of the required components.
A desktop computer consists of
- a CPU (central processing unit)
- main memory (RAM - random access memory)
- a motherboard
- a GPU (discrete or integrated)
- hard disk drives (HDD) or solid state drives (SSD)
- a power supply unit (PSU)
- an enclosure (computer case)
For a CPU, almost any 64-bit Intel or AMD model produced since 2009 is going to work sufficiently well. You should verify that the CPU is 64-bit. You should definitively avoid Intel Atom CPUs because they are too slow.
IMPORTANT:The CPU, memory and the motherboard should fit together; check the specifications of all three components to verify that they are mutually compatible.
2 GB of random access memory (RAM) should be sufficient. More precisely, it is sufficient if you are going to run a Linux operating system. If you would like to run Windows 7, then at least 4 GB of RAM is recommended. For newer versions of Windows, at least 8 GB of RAM is recommended. One stick of RAM is sufficient for the start. You can add more RAM later if you need to.
A GPU can be discrete (meaning: standalone) or it can be integrated on the CPU or (rarely) on the motherboard. If the CPU comes with an integrated GPU, it cuts down on the total cost because then you don't need to buy a discrete GPU. You can add a discrete GPU later if you like, even if the integrated GPU is present.
An integrated Intel GPU is good enough for the start, integrated AMD GPU is better, and a discrete GPU (from AMD or nVidia) is the best, albeit the most expensive option.
For storage, you can choose between a hard disk drive (HDD) or SSD, or you can have both. New HDDs start at 40 USD. They have ample capacity (over 500 GB), but they are somewhat slow.
An SSD is a much better option than a HDD. The price for a new 120 GB SSD can be as low as 25 USD, and they are several times faster than HDDs. The downside is that SSDs have small capacities. You can get away with 60 GB capacity, but we recommend at least 120 GB. Beware of SSDs from lesser-known manufacturers. Crucial, Samsung and Sandisk are some of the better known brand names.
It is hard to recommend a power supply unit (PSU) because all quality PSUs come with significant costs. For start, find some cheap PSU, and then you can rely on data backup in case the PSU faily catastrophically.
A 400 W PSU should be quite sufficient; they start at 25 USD. PSUs have a limited lifespan. Cheaper models usually fail after 3-5 years, more expensive models have a lifespan of 6-10 years.
An enclosure must be big enough to fit the motherboard. The common motherboard formats (sizes) are: ATX, micro ATX, and mini ITX. ATX is the largest, followed by micro ATX. Mini ITX is a very small motherboard format. New enclosures start at 20 USD (for any size). An enclosure of bigger format can usually fit the smaller motherboards without any issues.
Hardware on a Tight Budget
As the hardware improves, old components are commonly sold or thrown away. However, the progress has slowed down recently, so the old components can be as good as new ones. If you know what to buy, you can get away without spending a lot.
A new CPU usually costs at least 35 USD; the same price goes for motherboards. The price of RAM varies, but it is usually at least 15 USD for 2 GB capacity. However, a second-hand CPU, motherboard and memory can be bought all together for 40 USD. And, there are ways to go even cheaper.
If you are a high school or university student, check whether your school is replacing the old computer hardware. If they are, they might be willing to sell you some or even give it for free. Many companies are also throwing away old hardware; if you know someone who works for a company on a computer, you can ask the person if it is possible to get some old hardware from his company.
You can also try to find some local computer programmers club and ask them for advice on where to get those components. Also, you can ask your parents and friends.
For a HDD or SSD, a PSU and a case, you can get them separately or together with other components. In most cases, they are compatible with everything.
If you are buying an entire second-hand computer as a whole, you shouldn't pay more than 150 USD (without a monitor). Make sure that the computer is working. The computer should have been produced after 2009.
The choice of an operating system is an important decision. You have two basic choices: Linux or Windows. Linux is free of charge, while Windows is not. The creator of Windows (Microsoft) is trying not to present this information too openly.
The Linux comes in many varieties; there are probably over 100 different free GNU/Linux distributions. The most popular distribution is Ubuntu, which is based on Debian GNU/Linux distribution. For new programmers, we recommend Ubuntu or Linux Mint. Linux Mint is based on Ubuntu, therefore almost anything that works on Ubuntu also works on Linux Mint.
If you choose Linux, you should have much less trouble. For starters, Linux requires less RAM, which brings down the price of the computer. 2 GB of RAM should be sufficient for a complete beginner. Linux distributions come preinstalled with a much greater variety of software than Windows, and installation of additional software is usually simpler and free of charge. Updating the computer is also easier. The main downside is that a much smaller number of games is available for Linux.
If you choose Windows, well, that's what everyone does so you decided to go with the pack. A much wider variety of software is available on Windows, but a lot of it comes with a price. A higher amount of RAM is required to run Windows.
You should ensure that you are getting or installing a 64-bit version of the operating system. A 64-bit version can run both the 32-bit and 64-bit applications.
The first application you need to have is a web browser. Windows 10 have Microsoft Edge as a default web browser. In any case, we recommend that you get a better browser: Mozilla Firefox or Google Chrome.
Linux distributions usually have Firefox preinstalled. If not, Firefox is available for free. If you prefer Google Chrome, then the Chromium Browser is available on Linux for free.
The last important issue is the data backup: it is recommended to have a disconnected storage device to store your most important data in case of computer malfunction. Flash USB memory sticks are a good choice; buy at least one from a reputable manufacturer (for example Kingston or SanDisk). A 16 GB flash USB stick costs around 6 USD. It is better to have two or three flash sticks than just one.