While envybits.com is still incapable of recommending notebooks as of now, it doesn't change a fact that many of you have asked for recommendations regarding them. So here are my thoughts on the subject, hopefully they will help you in choosing a right laptop for your needs.
First and foremost - programming is a very broad term and what you actually need can differ greatly based on what specific field you are interested with. For instance a game developer needs a significantly beefier machine than, say, a web programmer. In this article I will focus on the following fields:
- going to college to study computer science
- web development
- desktop applications development
- mobile development
Interestingly and funnily enough bare requirements for a passable programming device are really low. This will easily do the job:
- Any 2 core CPU (as logn as it's Core i3/i5/i7 or Ryzen 3/5/7) released in the last 5 years
- 8GB RAM
- an SSD (it's optional but it greatly improves your experience, massively reducing all loading times. It also makes notebook more durable, HDDs do not like being moved)
This is all when it comes to raw performance. Don't worry about the video card (an integrated Intel/AMD chip will do the trick). I can already tell you I will be discouraging big bulky gaming notebooks. Despite the fact that in the same price you get really far better specs than options I will be presenting below.
But frankly raw specs don't matter much. It sounds weird but it's true, you don't really notice speedups because of a 20% faster CPU or because you have a dedicated video card. My aim is to showcase machines that you can bring with you to class/work everyday and this calls for very different requirements. You need screen hinges that are reliable and won't break a year or two (common problem with gaming notebooks, especially older ones), you want a reasonable battery life, you likely will want a good keyboard to type on etc. Gaming notebooks ultimately are an antithesis of what I would look for in a gaming notebook,
I have very little (sub $300) money
Don't bother with a new computer. Instead look at ebay and local pawn stores. You can pick up older Lenovo Thinkpad T and HP Elitebooks for peanuts nowadays and that's my personal recommendation.
Why these you ask? They are often old (5+ years) but at their release they were easily $1300+ machines. Their built quality is top notch. Just look at one of these bad boys:
What you can see is a heavy full aluminium chassis, plenty of USB ports, it's also very easy to open such a notebook and replace a hard drive or add more memory. In case of a zombie apocalypse you could also take one and use as a sledgehammer.
Even though they are old their performance is also generally not bad at all for programming, especially when compared to what kind of a new notebook you could get in this price segment. In general, I would recommend looking for ones with 5th gen or newer CPU (i5/i7-5xxx), you also might want to replace it's drive manually for an SSD if it comes without one.
I have around $600
Now this is a tier at which you can afford new hardware that should happily last many years with you.
My first recommentation would be an Acer Swift 3.
It's a 14" notebook with a full aluminium chassis, decent screen and quite respectable specs - a quad core processor and 256GB NVMe SSD. It's also mere 1.35kg making it a very portable device. The only caveat could be 8GB of RAM that cannot be extended.
Do note - do not bother with Core i7-8550/8565U. They are barely any faster than 8250U/8265U and can cause a massive increase in price.
Dell Inspiron 7570 is also something I can recommend.
In general, Dell has 3 series directly oriented for businesses and programmers - Vostro, Latitude and Precision. Inspiron is not one of them but their 7xxx is decent. It features a full aluminium chassis, comes with fairly good hardware (you can find ones with i5-8250U/8265U) and offers some upgradability (you can add an additional drive, RAM slots are not soldered). Just make sure not to skimp to buy Inspiron 5xxx instead. It looks identically from the outside but it's a very different machine as instead of aluminium you are getting plastic, 1Gb/s ethernet port is replaced with 100Mb/s, you get a really bad screen and so on.
I have around $1000
Funnily enough despite spending more and more money specs will remain almost the same in this notebook segment. The name of this tier is "durability" and "warranty" instead.
Lenovo Thinkpad T495
I have recommended a used Thinkpad T at the beginning, I will recommend a new one now. T495 is their current latest model equipped with an AMD Ryzen processors (Ryzen 5 3500U is essentially identical to 8265U, 3700U is comparable to 8565U. Ryzens also have 2-3x stronger iGPU chips, interesting choice if you game on your machine). You can find variants with Ryzen 3500U at around $1100 and it's definitely worth it.
Not only will you get the (arguably) best keyboard encountered in notebooks but it's also extremely durable and offers many extras. Such as camera shutter, ability to swap out the battery without turning notebook off. Plus it will retain it's value for quite a long time.
Dell XPS 9370
On the other end of the spectrum you can find a Dell XPS 9370. It's an ultrabook and fits a slightly different niche than a Thinkpad. That one was big, bulky and resistant to weather, this one on the other hand is sleek and light, the type you can see a CEO bring with them to a meeting. XPS lineup from Dell offers probably one of the best screens you can find in notebooks.
It's not strictly a programming/workstation notebook but, as stated before, fields of programming I have mentioned are not particularly compute heavy. So a high-end ultrabook will actually perform well.
Which one to choose between these two depends primarily on your personal tastes. Thinkpad is a better device if you want to "just" work on it or if you are planning to open it up for any reason (eg. if you need to replace a drive or add some RAM). XPS is superior if you are planning to watch movies on it, take it to meetings and so on.
You might also want to take a look at Dell XPS 9570. It has better specs (i7-8750H, an actual GPU, bigger screen) but it's also more expensive.
I have even more money
Good for you. No, really. Go spend that money on an external screen or keyboard or something.
You probably shouldn't spend more than ~$1500 for a notebook for general programming. Yes, it will let you spec your machine a bit better, give it more RAM and whatnot... but that's about it. If you can hit a mark of a quad core CPU, 16 GB RAM and a nice SSD you are golden.