DEV Community

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

Posted on

My beginner’s guide to choosing a laptop for programming

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: that is if you using top-notch tools. Lagging, glitches and other stuff like this can kill the mood and make your coding an extremely frustrating activity. I, for now, will leave out the software details and save coding editors for the next post. Today I am going to concentrate on the hard stuff, namely a laptop. Here is my advice on what to consider when choosing one. I will list the issues by importance, starting from the crucial and going down to optional.

First things first

Why laptop? Plain and simple – for mobility. Modern laptops are very powerful machines and they can deliver everything you need and even more all in a compact slick case. You do not have to be at your desk to work and that is awesome. Not only for freelancers but for all of us as well it is a great advantage.

Some programmers have a preconception about laptops that they are inferior to desktops. They were – in the early years of their existence, but now the niche of the light and compact toys for web-browsing and media entertainment is taken by tablets and smartphones, while laptops keep building up muscles and taking up the desktops living space.

There are only two reasons why you might want a big box under your desk, namely: the affordable price and the relatively easy hardware upgrades. Well, you can’t have it all at the same time and there is bound to be a trade-off.

The core issue

You do not really need the high-end CPU to do your programming. However, I would not recommend low-end processor either. The thing is, today software becomes greedier and greedier for resources. You will want to manage heavy programming works all the time, even with other stuff running. Whether you are developing an app, a website, or something else, you will have to deal with graphic and sound editors and all the additional applications. Therefore, it never hurts to have a top-notch CPU.

Enough room

You definitely must have a zippy and spacious SSD – 1 TB is recommended. I often hear people saying that 256 GB is enough today. After all, you can store and access your media via a cloud service of choice or your own NAS. That is all fine for media, however, our bulky files are not limited to tracks and clips. Again, you will never know what software you might need, and today, when a simple thing like antivirus program demands over 2 GB just to install itself, 1TB does not seem like a waste of money. Of course, a smaller SSD can also be manageable, but you will have to jump through the hoops to avoid issues with performance. Check out makemacfast for the complete list of speed problems you may encounter.

Back to our muttons

Did I say muttons? I meant RAM, really. Although many say that 8GB of RAM is a plenty, I would go for 16GB, just in case. For instance, I often have 2 or 3 virtual machines running, so it is always good to know there will be no lagging. Plus, as a hardcore gamer, I prefer to be ready for any upgrades and smashing new titles that might be released in a year or two (I know, I know, it’s not about programming, but still it is huge for most of us, right?) Games become greedier, just as well.

Furthermore, if you are going to multitask, work with big data, large images, vectors and such, you'll be kicking yourself for not getting 16GB. FYI, 8GB might be fine for Photoshop, but not nearly enough for Illustrator.

Getting pretty graphic

Luckily, integrated cards are getting better and better with each generation, so strictly speaking, you do not need that for coding per se. However (my favorite world), if you work with game development or do 3D modeling, you will need something superior, so consider a dedicated graphic card. It goes without saying for gamers, but that is another story, so do not get me started on this one.

Juicy bits

By which I mean battery, of course. Long battery life is not crucial, but it is recommendable. Remember why we opted for the laptop in the first place? That’s right, for mobility. With the limited battery capacity, your mobility is pretty limited as well. Of course, you can always set camp next to the power socket in Starbuck, but that is not always available. Plus, say goodbye to working and having fun out in the open and during the road trips.

All in all, you might think that you are saving, when you settle for smaller SSDs, integrated graphic card, and less RAM, but in fact, you may rob yourself in the long run. If you pack your machine with all the best today, you will survive without an upgrade much longer. As I already mentioned, upgrading laptops is not as trouble-free as messing with a big box. Therefore, for a mobile computer, it makes sense to stuff it full with the high-end components for a bigger lifespan.

Latest comments (22)

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
 
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
 
jpcorry profile image
John Corry • Edited

MacBook Pro 15"

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

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
 
sandrodz profile image
Sandro Dzneladze

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

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
 
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
 
ackvf profile image
Qwerty

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
 
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
 
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 ?)