DEV Community

Cover image for My beginner’s guide to choosing a laptop for programming

My beginner’s guide to choosing a laptop for programming

Rupert Smithers on June 19, 2017

Programming can be a lot of fun! No, seriously. That is a very creative and in many ways rewarding occupation. Under one very important condition: ...
Collapse
 
edunham profile image
E. Dunham

There are also some form factor constraints that might be less relevant to young people, but risk wrecking your body if you use your laptop for too many hours a day for too long. I am biologically predisposed to being physically weaker than the average computer scientist, so these are the factors I also consider when getting a new machine:

  • Keyboard spacing and key travel. Never buy a laptop with a keyboard that you haven't typed on -- go to the local Mac or Windows store to try out other models in the line of the laptop you're considering. Key travel is how far each key has to be pushed down to register a keystroke, and if you're used to typing hard, having key travel that's too short can get very uncomfortable.

  • Screen size. If your vision is perfect, an 11" high-res screen might let you fit 2 80-char columns of code side by side... but if not, or if you don't enjoy squinting at tiny things, err on the side of a large enough screen to hold at least 161 characters horizontally in a font that's comfortable for you.

  • Machine + charger weight. Laptops tempt you to carry them; needlessly heavy laptops will just make your life worse if you try to bring them to the local library when your home internet is on the fritz, or on a trip.

  • Number and type of ports. In my opinion, between the laptop and optionally its docking station, you need at LEAST one video out of the type that your TV or monitor at home takes as input (or an adapter), plus at least 3 USB ports. 1 for an external keyboard, 1 for an external mouse, and 1 or more for charging your phone or reading external media or whatever you happen to need. This is because sitting for many hours staring at a point right above your hands is just not something the human body is very good at -- you'll find yourself choosing between neck pain from staring downward, arm pain from awkwardly reaching up too high and typing, or perhaps both.

Collapse
 
ackvf profile image
Vítězslav Ackermann Ferko

In my opinion 16GB is a must for all dev applications running simultaneously. Not "just in case", but indeed a "must have". I use 10+ GB all the time, when running IDE, git gui, music, calendar, mail, slack, web browser(s) and all the server/build things.

Then indeed 500 GB SSD is minimum, but I have never gotten near even with everything installed, few virtual machines stored and dozen of git repos cloned. I think 1 TB "recommended" is little exaggerated.

Collapse
 
ben profile image
Ben Halpern

What's your sense of how the software used for developing software makes adequate use of multiple cores? It's easier to tell when an application is hogging memory, and my system is struggling. Where might I get a feel for the difference between cores and processing power?

Collapse
 
humzakhan profile image
Humza K.

It's cute to see you asking questions when you already know the answers Mr. Founder :)

Collapse
 
ben profile image
Ben Halpern

I don't think I really know the answer. These things are constantly moving and I'm not caught up on the current state of things. Sometimes the whole landscape can change without you noticing.

Collapse
 
igormp profile image
Igor Moura

The only part that I've found useful about this post was about RAM amount. 8gb is becoming barely enough with the oncoming JS-apps that love to suck that RAM.

Other than that, I couldn't get much useful info along all those lines. You didn't give any specific tips on which components should one look for, or even some laptops examples, and all of that without mentioning the most important thing: how much is one willing to spend.

You touch on the topic about desktops, but don't mention how much powerful one can be for the same money you'd pay for a laptop.

You forgot to mention how important a CPU is when you need to multi-task, and how laptop CPUs are pretty lame: even if you pay for a top-notch one, you won't get anything better than a quad-core CPU, something that's really common in desktops.

Storage is something really personal. Check your disk usage, try to clean some old, unnecessary stuff and check it again, that's usually how much you need (give or take a few spare GBs).

As far as graphics goes, that's only a matter if you work with CUDA or OpenCL related stuff, or if you plan on going the game dev route, as you said (but what does this have to do with programming anyway?). Although a desktop would be preferred in both cases, otherwise your workflow would be hindered heavily.

I don't think there is much to say about battery life, go for as much as you can, since a laptop is meant to be portable and you wouldn't want to look for a power outlet every 2 hours.

Collapse
 
rupertsmithers profile image
Rupert Smithers • Edited

Igor, I didn't provide any concrete examples because I did not want to promote stuff (anyway, I am rather partial, what I prefer might not suit other professionals). What I wanted is to give some key points of what you should look for in a laptop and range these points by their importance.
As for desktops and their price/capacity ratio, there is a comparison laid out in the table available by the link (I did not want to go further into the topic since my post is about laptops).
I am sorry if this piece disappointed you and did not give you any new information. But as it says in the title, it is a beginner's guide, while you clearly have already seen some stuff ) Anyway, thanks for the feedback, I'll keep all that in mind working on the future posts.

Collapse
 
antonfrattaroli profile image
Anton Frattaroli

8gb ram gives me blue screen occasionally. 12gb works. I haven't noticed a difference with an SSD over platters. Both have died on me at least once. But it needs to be at least 256gb. I haven't kept up with processors, but I've found an i3 doesn't cut it, an i5 barely works, need an i7.

HPs have the best keyboard layout. My Dell doesn't have proper home/end keys. I do like that the Dell has separate click buttons from the touchpad.

Big issue for me is cooling. HP stays cool, Dell gets hot.

I usually have a browser with a dozen tabs open, 3 instances of visual studio and web server, databases running - along with the usual assortment of outlook, onenote, skype, etc.

Collapse
 
vgrovestine profile image
Vincent Grovestine • Edited

Processor, RAM and storage demands will vary from developer to developer depending on the software stack their tasks demand.

IMHO, the two most important factors to choosing a laptop aren't mentioned in the article: (1) Keyboard feel and (2) screen.

I always tell folks who ask my advice about purchasing a new laptop to /never/ buy a computer without first getting one's hands physically on the hardware unless they're already familiar with the brand and model. Try out the keyboard and touchpad. Open a few windows, then arrange them in ways that mimic one's own workflow; check the screen's viewing angle; minimum and maximum brightness; etc.

Personally, I swear by Lenovo's T-series Thinkpad because it has a pointing stick and a matte display. Meanwhile, my wife doesn't like my laptop at all, and much prefers her MacBook Pro with its multitouch gestures and glossy screen. I write code and get eyestrain headaches, and she dabbles with digital photography. Different uses. Different priorities.

Choosing a laptop is a very personal decision. Arguably, the only advice that can probably apply to everyone is to spend somewhere between $500 and $2000. ...But, of course, there are always edge cases! ;)

Collapse
 
jasonpalmer1971 profile image
.

Virtual machines on azure can be accessed via a laptop using hotel wifi, is important to note tesla lived in hotel rooms and was interested in tech.

The julia programming language is very interesting.

Collapse
 
aswathm78 profile image
Aswath KNM

Using a Pentium Dual Core Processor 2 GB RAM with Linux 17.04 LXDE gets my job done !!!

Collapse
 
miffpengi profile image
Miff

Personally I prefer to use a laptop as a dumb terminal for remoting into my desktop workstation.

This lets me get away with an older machine with sub-par specs since all it needs to do is VPN and RDP. It also means I don't have to sacrifice the infrastructure on my local network (I've got like ten TB of assorted NAS hardware, and my development VMs run on a dedicated server).

Collapse
 
lexlohr profile image
Alex Lohr

The most important things are the interfaces which connect you with said machine. On the input side, that's keyboard and touchpad or mouse, if you rather use one. The output is usually primarily the screen.

Keyboards shouldn't be under- or oversized, have mostly even keys (uneven layouts will screw with fast typing easily), have enough resistance so you can feel the key register your actuation and don't be too noisy. I consider keyboard lights a useless feature, but each to their own.

Touchpads and mice are even more a matter of choice, so I'll continue with the display. Apple's choice to deliver glare displays with all their notebooks is a problem for everyone who works in changing settings and cannot completely avoid exposure to sunlight. Otherwise, their screens are top notch. Lenovo's higher-end models now come with very nice 4k-Displays without the annoying glare. Other brands have a mix of everything.

Everything less important was already explained by this article.

Collapse
 
ripaz profile image
Ripaz

To me I go by this list:

  1. Ergonomics
  2. SSD, ram and CPU
  3. Screen size and GPU
  4. Battery life and other stuff

An SSD is a must in this day and age, but going for 1tb is nuts. Usually I have 256gb SSD and get rid of CDROM and put 1tb HDD. 16gb ram is standard for this age. For CPU I usually recommend upper tier i5 and above, depending on your usage. Screen size and GPU depend on what you do. I noticed that I have better posture on bigger screens but that might just be in my case.

Battery life is another thing and depends on how much drives you have, how big is your screen, etc.

As a developer, graphic designer, 3d designer and occasional video editor, an i7 and good GPU is a must have in my case. But since this is my job and I make money from it I don't mind spending money on something that will help me get job done quicker.

Laptop will never replace desktop PC. Big difference are performance and thermals. After only 10-15 mins of rendering video and 3d models, my CPU/GPU get to hot for little fan to cool and thermal throttling happens that drastically decrises performance. Also price and upgrades are another issue laptop flops over desktop.

Every person has its own preference/needs and it will not match my opinion. I'm just here to give some hints to others that are in dillema and have similar needs as I have.

Collapse
 
tisek profile image
tisek⚓

I had 24 GB of RAM at some point in my laptop ...
That, plus a i7 CPU (though not extremely high-end one) and three drives: one full SSD, fairly large (128 GB), one hybrid (part 7200rpm HDD, part SSD) - 750 GB and one fat HDD (5400rpm .. for for pure storage, who cares?) - 2 TB.

As far as operating is concerned, this was a dream machine, and not extremely expensive (~1500 EUR).

You did not mention screens much : size and resolution and extendability (one extra monitor? two? 4k ?)

Collapse
 
mborus profile image
mborus

There's a lot of things to consider.

Personally I prefer a desktop setup with two monitors and a proper ergonomic keyboard, but I also do a lot of work on mini laptops.

Here's my checklist:

If your laptop has a fan, make sure it's not noisy. If you're going to work on a noisy startup, that's fine. If you're programming on your own, the fan noise of a laptop will really annoy you. And get worse over time.

The laptop keyboard quality and keyboard layout are super important. If you don't have dedicated page-up/down keys, your programming performance is going to take a hit. (Hint: if you buy a laptop with Japanese keyboard you get 3 extra keys you can re-purpose)

Your laptop screen should not double as a mirror.

Your laptop should have screws, so you can open it. Before you buy, check youtube videos of other people opening this laptop. In those you can check if the ram and SSD are user replacable. If they are, you can get started with a cheaper, smaller SSD and buy that larger one when you need it.

If you plan on carrying around your laptop a lot, you need to consider weight and stability. Consider buying a used quality model over a new cheaper one.
I swear on Panasonic Toughbooks, other people love Lenovo Thinkpads.

Lastly, if you're buying a Windows laptop, check if it runs Linux as well. More and more programming is moving to Linux, so if you're beginning now, I'd install both systems on the laptop.

Collapse
 
aghost7 profile image
Jonathan Boudreau

Just a nitpick - VIM 8 and Neovim can use multiple cores using some new features. There are plugins which run tasks in the background for linting, auto-completion, etc.

Collapse
 
mhabibi profile image
Mohammad Mehdi Habibi

In one word, buy the best laptop you find :)

Collapse
 
rupertsmithers profile image
Rupert Smithers • Edited

That is if you need all that stuff and your budget allows you - why not? However, if you are not going to work with graphics, you could cut the costs by going for an integrated card and not-so-fancy screen. Alternatively, you might go for a smaller SSD capacity, if you know you aren't doing to use too many software titles.
Best is best, but it's up to you to decide what is redundant depending on what you are going to do with your machine. That was my point (at least, as I tried to deliver it).
Thanks for the comment!)

Collapse
 
jpcorry profile image
John Corry • Edited

MacBook Pro 15"

I don't see why anyone would "need" 1TB of disk though.

Collapse
 
sandrodz profile image
Sandro Dzneladze

Your advice in nutshell: "get top of the line everything" ;)

Collapse
 
jo profile image
Jo

Examples with comparisons would have been great here.