Here’s everything you need to know when it comes to picking a laptop for programming in 2022!
These are the different things that a programmer needs to consider when buying a new laptop for software development:
- Processor (CPU)
- Graphics (GPU)
- Memory (RAM)
- Camera & Microphone
- Operating System
- Upgrade Options
- Best Laptop For Programming?
All content in this article comes from this video where I interviewed programmer and laptop reviewer Just Josh:
The CPU is one of the most important pieces of hardware in a laptop as it will determine how fast your code compiles. Generally speaking, you can write code on pretty much any laptop, a basic i5 processor is plenty. When you’re sitting there thinking and typing you don’t need a whole lot of power. This changes when you’re actually running applications and compiling code though.
How long compilation takes depends on a number of factors, such as the application you’re developing. It could complete in half a second, or it might need longer. The processor is primarily responsible for getting this work done.
Core and thread count are important to consider. Last year, Intel 11th gen performed better in single threaded performance while multi threaded performance was quite close to AMD Ryzen processors. This year, Intel 12th gen processors shake things up and offer many more threads compared to AMD. If you’re working with multi threaded applications and can save time or money with more processing threads, then an Intel 12th gen CPU may be the way to go.
AMD’s Ryzen 6000 laptop CPUs this year max out at 8 cores & 16 threads, while Intel 12th gen maxes out at 14 cores & 20 threads, quite a difference. Even if compile time only takes a few seconds, if you’re doing it countless times a day then it’s going to add up over time. If you’re a professional on a job then you may end up in a situation where it’s worth spending more money for a faster machine as it will end up saving you more time long term.
Ultimately it depends on the workload you’re running and how much time you want to save. The general rule of thumb is more CPU power is better for a programmer. More cores can help speed up certain tasks and will also give you more resources for things such as virtualizaiton.
Intel aside, the Ryzen 7 6800U offers good performance per watt and doesn’t get as hot in a thinner machine, while on the Apple side the new M1 chips are great if you’re dealing with ARM. Of course x86 is still available through emulation, but we’ll cover that more in the operating system section.
The GPU may be less important for many developers, however it of course depends entirely on what you’re working with. If you’re a programmer who wants to do some gaming on the side, then of course you’ll want a laptop with decent graphical horsepower. Another exception would be if you’re doing game development and actually making games!
Some applications may use CUDA acceleration or Ray Tracing in Nvidia RTX GPUs for machine learning (ML)/deep learning (DL). Tensorflow is an example of a library for machine learning that benefits greatly from Nvidia’s CUDA and Tensor cores, the latter of which is only available from their RTX series of graphics. Older GTX series GPUs still have CUDA cores, but no Tensor cores.
This may be a non-issue soon, as Nvidia will be introducing the lower end RTX 2050 to replace the GTX 1650 on the entry level side.
Today, RTX 3060 graphics are a great mid range option, however if you know you’ll need more than 6 gigs of VRAM then the RTX 3070 or higher may be worth considering. While AMD Radeon options can compete with Nvidia in games, for professional applications Nvidia seems to have the edge today.
Compared to a normal laptop user, a software developer will need to run a number of additional applications in memory such as the IDE (Integrated Developer Environment) and the actual code they’re testing.
8 gigs of RAM is probably enough to survive with a basic machine and basic coding tasks, but ideally you should be looking for at least 16gb of dual channel memory with the option of upgrading in future.
32gb will offer more flexibility, more is always better but it of course costs money. As a programmer hopefully you have an understanding of how much data your code needs to bring into memory! Of course keep in mind that things change over time, and what you’re working on today may be entirely different to your workload 1-2 years from now.
For storage, in 2022 a SSD (Solid State Drive) is basically the only way to go. Very few laptops actually have 2.5″ drive bays for an older HDD (Hard Disk Drive) as they take up too much space and are far slower. Combined with the fact that SSD price has lowered substantially over the last 5+ years and the speed boosts on offer, I think using an SSD is a no-brainer.
In terms of total storage size, you’ll want at least 512gb as a minimum, but ideally 1TB with the option of adding more later if needed. At the end of the day, it really depends on the environment you’re working in and if you need to bring data with you on your machine.
Some workloads may require more disk space, for example deep learning if you have a lot of sample set images. Alternatively, perhaps a lot of the data lives server side and you can get by with the bare minimum. The point is just be aware of what you need.
You’ll be staring at the screen for hours when programming, which is why it’s one of the most important things to consider when buying a laptop. You will want a display that can show a lot of text clearly and is easy to read.
While larger displays like 17 inches will be better for this compared to say a smaller 14 inch laptop, don’t forget that a bigger screen means a larger laptop, reducing portability. A good compromise is a smaller laptop that you connect to a dock/larger external screen when at home or in the office.
A bright display, ideally 400+ nits with a resolution above 1080p is a good starting point. Many laptops are now coming with taller 16:10 screens, allowing you to fit more lines of code in the viewable area.
Unfortunately a number of OLED screens use PWM (Pulse Width Modulation) to adjust screen brightness, which introduces screen flicker and is known to give some people headaches after prolonged usage. Most programmers will therefore want to stay away from PWM based screens, though this does not affect everyone the same.
The keyboard is also important to consider, as it’s the primary way for entering code – at least until we have machines that can read our thoughts!
A keyboard with good travel distance that doesn’t have important keys in abnormal spots is critical. For example a smaller gaming laptop like the ASUS Zephyrus G14 doesn’t have many popular symbol keys. These aren’t critical for gaming, so they had no problem removing them to make a smaller laptop, but obviously this would be more of an issue for a programmer.
Personally, I enjoy typing on mechanical keyboards, and while some laptops do have mechanical keyboards they’re no where near as good as connecting a larger USB keyboard. Laptops are of course designed with portability in mind, so you probably don’t want to carry a keyboard around with you. The way I worked around this was just leaving my keyboard in the office and connecting to it with a dock while there.
With that in mind, there are of course still times where the laptop keyboard needs to be used. It’s worth getting a good keyboard built into the laptop as well and not only relying on an external keyboard. The feel of a key press can be subjective, so if possible trying out a laptop in a store before buying is the way to go here. You’re better off getting a feel for something that works for you than listening to a reviewer online.
Camera & Microphone
For the last few years, working from home and online Zoom meetings have increased for obvious reasons. Some laptops simply do not include a camera in order to cut down costs. If you’re working as part of a team you may need to show your face during those meetings, so keep this in mind! Also check microphone quality too, even if you’re not using the camera you still at least want to sound clear and not muffled.
Of course an external camera and microphone can give you a big quality upgrade, but this reduces portability. In many cases the built in options should be usable with the right laptop.
Port selection isn’t an area that’s too important for programmers. Compared to say a video editor who may need to connect a lot of accessories and SD cards for instance, most programmers just need a few USB ports. Type-C charging is a nice bonus as you can get away with traveling with a smaller lighter weight power brick.
HDMI is a useful port if you need to connect up to a projector during a business meeting for example. If your laptop only has USB Type-C ports, carrying an adapter or dongle in your bag for this reason alone will be a life saver.
Laptops are designed to be portable, so depending on where you’re coding you might not have access to power. Most people probably have power readily available, but maybe you just want to move to the couch or a co-workers desk!
Having a larger battery helps you work for longer without being connected to cables or carrying around a heavy power brick, especially if you’re traveling, say on a plane for example.
There’s more to it than just total run time on battery, but also performance on battery.
From my own testing, generally speaking AMD Ryzen 5000 laptops both perform better on battery and last longer compared to Intel 11th gen laptops. The Apple M1 chip takes things further and basically offers full performance on battery in addition to long run time, so you don’t need to be as concerned about slowing down while unplugged and compiling code.
Operating System For Programming
If you’re a software developer coding for native applications in Apple’s ecosystem (iPhone/iPad etc) then you’ve got to go for a Mac. Fortunately with the latest M1 laptops on offer from Apple, there are a lot of excellent choices out there right now.
Unfortunately, the current generation no longer support dual booting into another OS like Windows, however virtualization may be an option. With the move to M1 you’ll want to make sure any specific software suites you use have been optimized for ARM. Using x86 emulation through Rosetta 2 can work, but you may not want to rely on this for builds/tests yet.
If you’re not doing Apple/iOS specific dev work then there are a lot more options available to you, as pretty much every other x86 laptop can run either Windows or Linux.
Linux is great for those that want more control over their system. A lot of software run in the cloud ends up running on Linux based operating systems, so programming within a similar environment may be the way to go depending on what you’re doing. Again, virtualization and docker containers exist so this isn’t strictly necessary. A number of people have suggested an AMD based GPU for Linux due to better driver support, however this would also depend on what you need the GPU for, as covered earlier.
Windows is popular and has a lot of software support, plus virtualization and dual booting are possible here too. For laptops, most companies only offer software control panels to modify things like fan speed via Windows. For this reason alone it may be easier to use Windows as the primary OS and run a Linux VM (Virtual Machine) if needed. Perhaps this by itself isn’t a good enough reason to justify OS choice, but it’s worth keeping in mind as Linux support on a number of Windows based laptops is hit or miss.
Almost all laptops these days have the CPU and GPU soldered to the motherboard, the exception being massive desktop replacement “laptops” that are way too thick and heavy for most people. With that in mind, the storage and memory are the most common components that you can actually upgrade.
Unfortunately, a number of thinner ultrabook style options have the memory or storage soldered to the motherboard to save space which reduces upgrade options. It’s important to be aware of this, as having flexibility to add more SSD space or RAM a year or two from now if you need it may be a big benefit!
The gold standard is two SODIMM slots for memory and two M.2 slots for storage. With the new Intel 12th gen and AMD Ryzen 6000 processors coming in 2022, faster PCIe Gen 4 SSDs are now available from either side.
Best Laptop For Programming?
The goal of this article was to help you understand which aspects are important when selecting a laptop for programming, however also Josh recommended the following laptops at different price points:
The MacBook Air is a little more expensive at around $900 and at the lower end only has 8gb of RAM, however generally it’s a good little machine for coders. Apple’s OS works well with lower amounts of system memory, you can fit a lot of code on screen, and it’s got excellent battery life.
On the Windows side, the Acer Swift X is a decent option at the lower end of the price spectrum. Of course when you’re spending less money nothing is going to be perfect! The keys can be hard to see in certain lighting conditions but you’re getting a lot of hardware for the money.
The Lenovo IdeaPad 5 Pro is another option, again a lot of bang for the buck. Certainly not perfect, the keyboard for instance isn’t amazing but again at the lower price range you’ve got to make some sacrifices.
The HP Pavilion Aero also offers some nice performance at the lower price point.
The Framework laptop ticks a lot of boxes for a software developer. It’s got great Linux support, it’s fully upgradeable, the screen clarity and aspect ratio is great but the only downside right now is it has an Intel 11th gen CPU. In future there will be different options (hopefully AMD Ryzen or Intel 12th gen with more cores/threads), but at least you can upgrade the processor by swapping the mainboard – something almost no other laptop offers.
The MacBook Pro 13 is better than the lower priced MacBook Air, mainly because it has a fan. The models with no fan can get a warm to the touch when under load and you can really feel it as the solid metal chassis conducts heat.
The Lenovo IdeaPad Slim 7 Pro / Yoga 14S is a good quality Windows option, a level above the IdeaPad 5 Pro covered in the low-end section. It’s got a great screen and is a good all round laptop for a programmer. The keyboard is unfortunately lower travel though, so you might want to use an external USB option.
The MacBook Pro 14 with the M1 chip is a great option. Unfortunately you can’t get 32gb of RAM with the M1 Pro chip you need to spend more money for the Max chip.
If you do need 32gb of RAM then the MacBook Pro 16 is the way to go on the Apple side. It has much better cooling and a battery inside compared to the smaller 14, not to mention larger screen.
On the Windows side, the Gigabyte Aero 17 is a great choice. It’s got a large 4K screen that gets bright and looks nice. Performance is great, at least while plugged into wall power, unfortunately performance on battery isn’t spectacular and the keyboard lighting does not illuminate all secondary keys (at least with the late 2021 model, this should be fixed in 2022).
Check out the Just Josh YouTube channel for more laptop recommendations for programmers!
We are a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for us to earn fees by linking to Amazon.com and affiliated sites.