As a programmer I can tell you that looking for advice on how to buy the best laptop for programming around the web it’s like asking a dog to start meowing, you’re just not gonna get answer you want unless they do a fair bit of programming themselves. I don’t mean a single sheet of code to optimize a few web pages, I mean long week sessions of debugging around 5000 lines of code to the point of dreaming of a few workarounds and waking up right in the middle of the night to implement them.
I’m not the best programmer in the world nor I tend to be it but I did do a lot of programming during my school years especially in my projects as an engineer and a few mobile applications as a freelancer. As of today, as a graduate student, I have to deal with programming software again.
For me having a laptop especially designed and build for coding is crucial to make those long overnight sessions of coding less painful, more productive and actually enjoyable (at least sometimes).
What will you find from this article?
I’m here to tell you everything you need to know to choose the best laptop for programming. As you’ll see in this article, you don’t necessarily need the best top notch laptop (as a matter fact even a potato will do for basic programming ) but you still need to be careful when picking the right laptop based on what kind of programming you are dealing with and to make your work space area as comfortable as possible.
This article is divided into two parts:
A review of the 5 best laptops for programming I’ve found as of 2017 and a how to find or buy the best laptop for programming yourself.
- Top 5 Best Laptops for Programming
- How to Buy a The Best Laptop For Programming
Top 5 Best Laptops for Programming
This is a shortlist but you should find a suitable laptop for your budget and the type of programming you are doing within it. If you are just a beginner and do not know exactly what features to look out for the type of programming you are doing, you should definitely jump to the guide I have written below first.
Best Lightweight Laptop For Programming
CPU: Intel Dual Core Core i5 1.6-2.7 GHz | RAM: 8GB 2133MHz DDR4 | Storage: 256 PCIe SSD | GPU: Intel Iris Graphics 6000 | Display: 13.3-Inch (diagonal) LED-backlit Glossy Widescreen Display, 1440 x 900 resolution
When it comes to programming and portability as well as build quality, you can’t really get better than the MacBook Air. You get pretty much anything someone starting with programming or even what advanced programmers look for in a laptop.
Despite being small, ultra thin and ultra lightweight it has plenty of performance for just about any type of programming that doesn’t require a graphics card. It can be configured all the way up to an i7 processor and even 512GB for storage but as a programmer those are probably not good investments since the version with an i7 processor is still dual core and 256GB is plenty for programming already.
I recommend this configuration: i5 dual core 8GB and 256GB which includes the fastest SSD technology as of today. You can pretty much blaze through IDEs, VMs, run your own Apache Svr (I did) and anything related to programming with it.
Many laptops offer better or the same configuration, so what really makes it the top choice (in my opinion) is the portability.
It’s only 3lb and thin enough to fit in your backpack like a piece of paper with the longest battery life (I’ve ever heard of) as of today (+13 hours).
The ultra crazy battery lifetime is not just because it’s an Apple Machine but mostly due to fact that the display doesn’t have too many bells and whistles. It’s just 13” and 1440×900 for resolution which isn’t bad at all for programming (just don’t go lower than that).
On top of all that you get one of the best quality keyboards on the market which is one of the reasons why the Air has been so popular among programmers.
As a programmer myself, I can vouch this is one of the best laptops for programming even as of 2017 doesn’t matter if the model goes back a few years.
Also don’t forget the fact that with a Mac machine you can run pretty run any open source software or code out there regardless of Operating System.
The Best Laptop for Programming
CPU: Intel Dual Core Core i5 2.9-3.3 GHz | RAM: 8GB 2133MHz DDR4 | Storage: 512 PCIe SSD | GPU:Intel Iris Graphics 6100 |
Display: 13.3-inch IPS Retina Display, 2560-by-1600 resolution
Just like the Air, The Pro has everything the Air has: portability, performance, battery life and build quality.
Performance wise the Pro always has an edge over the Air, despite having the same core technology: i5 or i7, the Pro here offers you with more clock speed than the air. The RAM can be upgraded to 16GB, but 8GB is really plenty unless you are running several VMs.
You get far more storage with the Pro for other non programming files: videos, images and any editing you may come across.
The Pro would be more useful for programmers who need to run editing software, those running several VMs and many heavy IDEs simultaneously if they choose to max out on the specs.
Another main difference is the resolution: retina display. For most programmers the advantage of the higher resolution is the fact that you can much more easily fit it two screens next to each other one for your documentation and another one for your code or two different coding files of the same project side by side. You can’t really pull this off with lower resolution displays, at least comfortably.
Other than that, if you are an android, iOS programmer or dealing with web design. A Retina Display will allow you to edit your multimedia files at the retina display level which is a must if your target audience resolution may not entirely be using low resolution displays.
This comes with the caveat of a decrease of battery life (The air has 13 while the pro 10) but it’s still more than sufficient for an entire day of programming on the go.
One bonus from the New Pro is the fact it supports thunderbolt 3 connectivity, you get ultrafast data transfer plus you are able to connect to two different external displays for your docking station back home.
The top quality keyboard, touchPad and general build quality remain the same since it’s an Apple Machine. The 13” is quite portable too, only 3.5lb. If you wish enjoy most of the perks of the Air plus the addition of one of the best displays there are today or just need a more boost in performance for really advanced programming, the MacBook Pro is your best bet.
Best Windows Laptop for Programming
CPU: Intel Dual Core Core i5 3.5 GHz | RAM: 8GB 2133MHz DDR4 | Storage: 256 PCIe SSD | GPU:Intel HD Graphics 620 |
Display: 13.3″ Full HD
If you got tired of Mac machines, you’d be happy to know that the DELL XPS 13 is the windows machine that can actually surpass the Pro in terms of performance and portability.
The XPS specs vary from i3 core processor all the way to an i7 processor, 8-16GB RAM, 128 GB-256GB but I feel this configuration is plenty for most programming tasks.
If you are running a lot of Virtualization machines or doing heavy development then you can always increase the RAM to 16GB to be on the safe side (do so before purchase the new Dell XPS 13 is not upgradeable after).
This configuration is far lighter than the Pro at 2.7lb and a bit ligther than the Air, offering similar performance and as long as you stick with full HD resolution, you also get plenty of battery life at 10 hours.
As a bonus the thunderbolt 3 port will allow you to connect your laptop to two external displays for a more productive programming environment. Without a doubt, the best laptop for programming coming from a Windows Machine.
Best Lenovo Laptop For Programming
CPU: Intel Core i5-6300U Dual-Core 2.4GHz | RAM: 8GB-16GB DDR3 memory | Storage: 256GB Solid State Drive | GPU:Intel HD Graphics 6000 | Display: 14″ LED-backlit Full-HD widescreen display with 1920 x 1080
Lenovo has a high reputation among the programming community as you are probably aware of. The model shown here has plenty of performance for programming: i5 dual core, 8GB RAM and it’s actually upgradeable to 16GB plus it has an SSD with 256GB.
The Solid State Driver isn’t the same technology as the Dell XPS 13 and the MacBooks but it’ still an SSD and should be enough to give you a boost in performance with IDEs and virtual machines as well. As mentioned before, RAM and SSD are far more useful for programming since most CPUs these days have more than enough power for compiling, coding and most software used for programming.
Just upgrade it to 16GB of RAM and it should be future proof for the most intensive programming tasks you may encounter in the future.
Best Budget Laptop For Programming
CPU: Intel i5-7200U 2.5 GHz Processor (Turbo to 3.1 GHz) | RAM: 8GB DDR3 RAM |Storage: 256GB SSD | GPU: Intel HD | Display: 13.3-Inch Full-HD
We can’t leave those programmers on a budget still looking for a high quality laptop like the Pro, Air or the Dell XPS 13. The ZenBook in particular has pretty much everything the Air offers: portability and a decent performance for most programmers with the exception of those into game development.
It only weights 2.6lb and has a relatively long battery life: 8 hours. Heavy IDEs such as Eclipse, Visual Studio and Android Emulators should run smoothly with 8GB RAM, the dual core intel based processor(i5 core 2.5GHZ) and the SSD for storage it comes with.
Unlike the Air, it actually has a better resolution : 1080p . That along with having a 13.3 inch display is the sweet spot for programming.
As a bonus you get a matte finish, which the Air and The Pro do not have, to protect your eyes from long sessions of programming and highly illuminated areas.
The only downside is the keyboard and touchpad quality. They aren’t the best but they’re not the worst either, it has actually improved over the past versions but it’s not the same quality as the laptops shown above. However unless you aren’t nitty picky about keyboard/touchpad quality, you should be fine when using it.
How to Buy a The Best Laptop For Programming
Most people will tell you that you can program on any laptop build within the past ten years and that is certainly true. However, there are exceptions to this rule based on what kind of programming you are dealing with. We’ll quickly go over them before going through each specification, if you fall into any of these categories you can safely use this article to buy a suitable laptop for the kind of work you are doing and the kind of software you are using it for.
Types of Programming
Regular and basic programming with Java, C++, Python or any language of your choice is the least demanding type there is. This is the case for most programmers and beginners out there who just need to write down and compile some code. Any laptop would do as most will tell you. Since most laptops (modern) have more than enough power for all of that , your focus should be on the human aspects and ergonomics. Since you’ll be staring at the monitor the whole time and typing on the keyboard for several hours focus on : screen size, resolution, keyboard quality, trackpad, etc. Don’t worry too much about performance.
if you are working with datasets that are in the g_igabytes range, graphics or far too complex algorithms then you may need a little boost in performance, iotherwise just focus on RAM. You can never have enough RAM no matter what kind of work you do with a laptop.
If you need to run several virtual machines for testing purposes on different platforms, setting up severs, networking, etc. Then not just any laptop will do but you don’t necessarily need a high end and expensive laptop just focus on a CPU and RAM.
However if you plan on running several dozens of VMs each having a heavy application within it then get the highest number of cores in your CPU. Quadcores are fine but use a Xeon if you are really throwing a dozen and heavy VMs.
Don’t forget RAM: at least 8GB RAM and more if you plan on running a dozen & heavy VMs. If possible get an SSD to make all those VMs and IDEs start up and run in no time.
If you are gonna be dealing with IDEs for app development, they are memory hogs, especially Visual Studio. Focus on having plenty of RAM. 8GB should be your minimum, the more the better.
The addition of an SSD is a huge bonus for a speedy workflow. No matter what kind of applications and how huge they are, you don’t really need a top notch laptop for it. If you don’t plan on developing graphic intensive apps or play games on it, then you also don’t have to worry about graphics card either. Integrated will be just fine.
If you’ll be using XAMP for your Apache Sever, mySQL database, etc, as well as an IDE or a code editor plus a browser to check your work, then obviously you’re gonna need a lot of RAM. 8GB RAM should be plenty but more is always better.
Recommended Specs For Programming
Programming doesn’t need an IPS, 4k Resolution, retina displays , infinity edge Displays, touchScreen, virtual reality screens or whatever they have on laptop these days. There are only two things you should worry about: size and resolution.
If you want to have multiple windows open regardless of what type of programming you do, aim for at least 1080p and maybe a bit less is fine. However don’t settle for 1366 x 768, it’s gonna be more difficult to have guides, documentation,etc, next to your code editor.
If you are starting with programming, you’re definitely not gonna be able to write algorithms or code from scratch, so you’ll have to rely on documentation, the web for references and other’s work to write your own code, in which case a 1080p is also recommended.
Plus it’s always useful to see more of your code on the same screen as it’l be easier to follow code logic and debug.
As long as you stick with 1080p resolution, size shouldn’t be a problem. Just don’t get a 17” laptop or a 11” notebook, the former is far too bulky and heavy while the latter will feel too cramped for any productive work to be done. You want enough screen area to take advantage of the resolution and have multiple windows up (guides,manuals,tutorials,IDE,a testing area,etc) so 13-15” will be fine.
Matte vs. Glossy
I almost left this one out. A huge bonus is having a matte display, it’ll keep your eyes from deteriorating if you work on high reflective areas with huge lights, the sun, or anything else that may shine on your screen. A Matte display also reduces the intensity of your display , making your glasses thicken far less over the years.
Keyboard & TouchPad
A good keyboard will help with fatigue and cramping if you are an avid programmer, if you are a beginner it may not cause much issues since you’ll be coding at a snail pace. For a few lines of codes a day it won’t matter much.
You don’t necessarily want the best keyboard in the world but you definitely want to avoid low quality keyboards with huge flaws on it.
How do you avoid them?
By not going cheap on your laptop, laptops on a very tight budget (usually but not all the time) have terrible and cheap keyboards. Manufacturers try to cut on their budget by lowering the build quality of their laptops as a whole and that includes keyboards.
If you do want to the best keyboards then avoid small screen size laptops (too small and cramped for coding) and aim for brands known for their build quality and design (think Apple and Lenovo).
We don’t really need touchPad or TrackPads but believe or not they can be an issue when you accidentally touch them, highlight your code and delete it by accident (you can always undo but it’s annoying to deal with).
If you can get a laptop with the proper drivers to disable them, that’s fine but you can always duck tape it if not. I myself deal with this on a constant basis and not just for coding and I am still looking for a solution (I don’t want to duck tape it).
On the other hand, if you care about TouchPad quality then it’s the same as keyboard aim for high quality laptops and brands(Ex: Macbooks followed by Lenovo/Dell and high end HP laptops).
If you are just dealing with simple programming languages such C++, any CPU will just do. They’re so fast they don’t really need a boost from a CPU.
But if you’re more into IDEs with Java or xCode with C# and the like, then you are going to need a decent CPU.
What’s a decent CPU?
Anything that uses top tier microarchitecture (Skylake, Broadwell, Kaby Lake) which may include Intel Celeron Processors (some of them do not have these architectures so watch out). However, to be on the safe side aim for i3 or i5 processors.
Why not an i7 processor? If the processor ends up with a U or M, then it’s just a dual core processor with slightly more cache and clock speed which doesn’t really benefit programming that much. An i5 dual core processor is much cost effective.
Do Virtual Machines benefit from multiple cores?
For advanced programming , it never hurts to get a quad core processor if you have the cash but that’s only beneficial if you plan to run several intensive applications “inside” your virtual machines. If your stuck with testing one application on a single virtual machine, then a dual core is sufficient.
For basic programming and those not running several Virtual Machines or heavy IDEs (Visual Studio, Xcode, Android Dev) with tons of tabs within it, then you might be fine with simply 4GB.
Otherwise settle with no less than 8GB. As a matter of fact everyone should settle with 8GB and if possible 16GB. RAM is cheap to upgrade anyways and you never know when you are gonna make the jump into other areas of programming that will need it.
RAM is also the limiting factor when it comes to any type of programming, more so than CPU than anything else. So try to get as much as you can afford.
Programming in general, no matter what you do, doesn’t require huge amounts of capacity. So you are likely to be just fine with any capacity size that modern computers offer today.
SSD vs HDD
However, once you maxed out on CPU & RAM (which are far more important) and if you have the budget then you can invest on storage to boost your performance with the type of storage.
If you use virtualization machines, IDEs for app development and any other heavy software for programing, you can always benefit from an SSD. It will make a huge difference in your workflow. So try to get one even if the storage capacity is low . It’s far more useful loading those apps and running them fast than having more and unused storage capacity.
The latest and fastest SSD today is PCie Based flash storage, you’ll find these on the highest quality and more expensive laptops. This is not a requirement but always a huge bonus to have.
Basic programming and beginners can safely discard an SSD, any type of hard drive will do just fine.
We don’t have to worry about thunderbolt 3 ports or the latest USB type C for connectivity or even for SD Card Readers.
Just make sure yours has plenty of ports if you plan on using a docking station with yours: one for external display, a USB port for a mouse and another one for an external keyboard.
Beware that some ultrabooks (The New MacBook) and cheap laptops do not have enough.
This is totally irrelevant for programming unless you are into game development or plan on doing parallel computing with it and even then you don’t need a workstation graphics card. A decent dedicated graphics (NVIDIA) card will suffice.
Who doesn’t like to code on the bus, on the train, anywhere on campus or anywhere within your workplace. I do, if you do then as a programmer you always have the choice to choose a portable machine. We don’t really require big, bulky, extremely powerful and heavy workstations. An ideal weight for portability is around 3lb but that may come with a huge price tag .
What’s the point of having an expensive portable and powerful machine if it can’t turn on? Obviously we should all aim for the best battery life we can get. 8 hours is plenty for an entire workday coding depending on how intensive your “coding” is. If you are doing iOS, Android apps and running emulators or running servers on it along with virtual machines then expect yours to be less, hence you can never have enough.
Luckily, we don’t need fancy CPUs, Graphics card or many bells and whistles for the display, so it shouldn’t be hard to get a laptop with a long battery life.
There’s no really better OS for programming, it really depends on what software , IDE or applications you are dealing with.
Windows should be your choice if you are .NET programmer, you’re accustumed with Visual Studio, do video game development or C# development. If you’re going to use Windows for iOS app development then that may be possible too with a few tweaks and guides shown here. But then who wants to deal with all of that?
One downside of using Windows that I can think of is the fact that you’d be pretty much downloading and using IDEs for most programming purposes, nothing works natively on it or right out of the box.
Most programmers use it hence open source code and software is mostly supported with it. So sooner or later you’ll have to do the jump, no matter what kind of programmer you are. Luckily, you can install it on pretty much any machine these days.
I believe this might be the best OS for those interested in programming as a whole. You can do pretty much anything with OSX. This is why you will see CS professors and top notch programmers using Macs (unless they do Window dev ).
The major and most re-known sites out there use all Macs and google actually banned the use of Windows in their facilities. Unless you are .NET programmer, you can safely roll with Macs, it has far more benefits than Windows Machines but it’s not really required.
Here’s a quick overview of the benefits:
- Triple Boot: You can roll with Windows, Ubuntu and OSX all in the same machine.
- Native Bash.
- Better navigating buttons (ok this is perfonal preference but on Windows keyboards you have to hit home/end and you may end up hitting up, delete and page up/down).
- You can run pretty much any software on it regardless of the OS its compatible with. After all OSX is a variant of UNIX and you can dual boot into Windows as well.
- You can do both iOS and Android apps on it.
Where is a Mac a problem? Again .NET development and game development, the latter may benefit from NVIDIA graphics card and better graphics card which OSX laptops may not have.
If you have any more tips, questions or any suggestions whatsoever, let us know in the comments below. It would benefit all programmers out there.