Choosing the right gears of war (laptop in this case ;) ) for programming can be a tough choice to make.
It’s easy to get confused while researching the various options. There are many different laptop models out there from renowned brands like Apple, Dell, HP, Lenovo, Samsung are the few to name of, each models with multiple set of variants and different set of trade-offs.
You can write code on most laptops irrespective of the price or ultra cool features (like keyboard backlight, NVMe SSD, GTX 1080 etc.) . Yet, your productivity will improve if you use a machine suited to the type of tasks that you perform.
There are different types of development, and various tools are required with each specialization. So, there is no one-size-fits-all approach to buying a development machine.
When I wrote this I made the following assumptions in this article:
- You are a web developer
- Your laptop is your primary development machine
Here are some considerations before purchasing your next laptop.
Mobility
Laptops come in all shapes and sizes, ultra portables to bulkier ones. You need to decide how portable you want your laptop to be. If you do not need to carry your laptop around often, you might want to consider a 15-inch laptop. These will usually have better specs and more screen estate for multitasking. If you work in different locations or travel a lot, a 13 or 14-inch laptop may be best for you. They are lighter and provide longer battery life, which is extremely important because you may not always have the access to the power outlet to charge up your laptop so the extra juice goes a long way. Unless you’re buying a 2-in-1 laptop, a touchscreen does not provide enough benefits to justify the extra cost. I’d suggest you avoid the touchscreen, but it's an excellent option for designers and creative developers on the front end area of expertise.
Display
A laptop’s screen one of its most important features, especially for programmers. Developing applications involves staring at the screen for long periods, this might sore our eyes but who cares anyway (on a serious note please don't take eye problems lightly, take some break during your long coding jams to give your eyes some rest)! You need to pay close attention to the details. Most budget laptops ship with a 1366 x 768 display, which I consider to be mediocre at best. The display doesn’t have enough screen estate for multitasking. Also, the text isn’t sharp enough for you to have a comfortable reading experience, even with clear text. A 4k display is overkill for a laptop but a viable choice if you have the extra bucks lying around to spend, although the overall battery life might suffer a little for this fancy add on. Whatever you do, try to buy a laptop with at least Full HD 1920 x 1080 (1080p) display. If you have to pay a little extra to get 1080p, spend it, this will add immense value to your productivity in the long run. Also make sure the display has good viewing angles; your laptop’s screen should not double as a mirror!
Processing Power (CPU)
Your laptop’s CPU is the heart of the system and has a huge influence on performance so you can’t afford to skimp on this one. There are many different types of processors with different specifications with variety of generations and multiple cores and threads. Please take this facts into your consideration of these specs of the CPU. Some of the most important are cache size, number of cores, frequency, and thermal design power. In general, a nice Intel core i5 or i7 processor with a frequency of 3GHz or more should suffice for most people.
Memory (RAM)
I don’t think any serious programming can be done on a laptop with less than 4GB of RAM. My smallest RAM recommendation is 8GB, because you know Google chrome!
Even that is becoming barely enough with the advent of Electron apps, which love to consume large amounts of RAM as it's literally a portable standalone version of the whole Chrome application. If you have extra cash lying around, invest that into 16GB of RAM.
Even that is becoming barely enough with the advent of Electron apps, which love to consume large amounts of RAM as it's literally a portable standalone version of the whole Chrome application. If you have extra cash lying around, invest that into 16GB of RAM.
Storage type and capacity
Getting an SSD (Solid State Drive) should be near the top of your priorities, as this gives you less headache while loading large applications. This will give you significant performance improvements over a standard hard drive. Every operation will be a lot faster with an SSD: including booting up the OS, compiling code, launching apps, and loading projects. A 256GB SSD should be the baseline. If you have more money, a 512GB or 1TB SSD is better. If cost is a factor, opt for a smaller SSD usually 128GB, where your Operating System will live alongside your apps and frequently accessed documents (such as project files). Your remaining stuff, such as music or videos, can rest in a larger internal 1TB hard drive or you can opt for an External USB hard drives, but make sure it's USB 3.0 or else the data transfer speed will be significantly slower.
Keyboard
You can’t afford to compromise on your laptop’s keyboard quality since it is what you’ll use to bang out code all day. I tend to go for laptops with a more compact keyboard layout.
The most important thing is to try out a laptop’s keyboard thoroughly before you buy. Make sure the keys are comfortable and easy to reach with good travel. A back-lit keyboard is useful if you intend to work in low-light conditions often.
Juice
Good battery life may not be all that important to you if you spend most of your time near a power outlet probably in your office but if you need to travel a lot this is going to be very crucial as the extra juice will save you a lot of trouble and you can focus more on coding than searching for the power outlet. Go for at least 6 hours of battery life. Don’t rely on the expected battery life as stated by the manufacturer as those are tested in environments with unrealistic conditions which are not even close to day to day real life usage. Read third-party appraisals from reliable websites, and see what real users are saying about the product in forums and reviews.
Operating System
Your choice of operating system will determine which laptop to buy to a large extent. Windows users have lots of options but if you prefer macOS, you’re limited to one of the Macbook offerings.
Linux will run on most hardware but it is better to buy laptops which have official Linux support. Some vendors, such as Dell and System 76, provide top quality machines with Linux pre-installed. You might want to look into those first. Otherwise, do your research to make sure the laptop you intend to buy plays well with your preferred Linux distributions. If it does not support Linux right away don't get disheartened you will always have the option for VMware or Vagrant based software solutions to emulate the environment.
Dedicated or Integrated Graphics?
A dedicated (also known as discrete) graphics card isn’t very important for coding purposes. Save money by going with an integrated graphics card unless you are into machine learning or AI which requires you to run tensorflow or keras then a discrete GPU is a decent investment as that will reduce your execution time for sampling and training models. If machine learning is not area of your interest then feel free to invest the money you save in an SSD or a better processor which will provide more value for the money. I’d love to know what factors you consider to be most important for a development machine and how it affects your work on a day to day basis, let me know in the comments below.
No comments:
Post a Comment