markdown guide

My stock answer for someone needing a spiffy new laptop:

need macOS? Find a "late model" Macbook Pro without the touch bar.
Linux? Either Thinkpad X1 Carbon for mobility or T480 for more bang-for-the-buck.
Windows? Probably go with a Dell XPS 13"

If you're on a tighter budget, finding refurbished or used versions of all those could really save money without losing out on much versus having the latests new model.


Dell XPS 13" Developer Edition with Linux on it for the last 4 years: not a single regret ever.


I've been looking at the Dell XPS 13 for a while now as a possible upgrade for me. What is your opinion on transitioning from a MacOS/Windows programming background to Ubuntu?

My opinion is that Ubuntu is not suitable for developers, gamers, or power users, it's rather suitable for offices. Try antergos instead and see how that works, it's always updated to the latest stable, and it's great for gaming, office usage, and everything else too.

Remember to switch on dark theme on tweaks software, and you'll probably be forever happy :-)


I like the look of the T-Series, but maybe would go for a T580 for the 15" display. 14 is a little too tight for my liking, and I'm not one of the external monitor types.


I was stuck between the two for ages too, and then I bought a custom one from PC Specialist and it is actually more powerful and about half the price! Worth thinking about ✌🏻


I googled "Surface Book 2" just to see what laptop that is and the second result was: My Surface Book 2 is sleek, fast, innovative — and I hate it.

Apparently there's a known issue with CPU and GPU high usage that can discharge the battery when it's connected to the power supply. From wikipedia:

When running workloads with high CPU and GPU usage on a 15-inch Surface Book 2 with the power mode set to "best performance", the notebook consumes more power than its 95-watt power supply can provide, and its battery discharges. If these workloads are run continuously, such as during gaming or video transcoding, the notebook eventually throttles its performance to decrease power consumption and prevent complete battery discharge

Don't know if it has been fixed. Despite this it seems like a good laptop.

I think the ultimate decision is OSX vs Windows and that depends mostly on what you do and what you need and how you use your laptop for programming and for everything else...

Lately Windows has gotten better for developers:


I'd avoid MacBook like the plague because of what I learned here: youtube.com/user/rossmanngroup

I wouldn't do surface because I don't do design and don't need the whole tablet thing.

You can buy a lot of power for the price of those two...

I personally have an Asus rog and love it. The prices are reasonable and you get all the power you need.

If you're doing video editing etc it may not be a good choice, not sure.

For my next laptop I'll go ThinkPad or Dell xps because I love Linux.


This question is similar (it was Surface Laptop not Surface Book) but you may still find the discussion useful for your decision making.

I answered there in more detail but to summarise:

  • Neither is a good option at the moment because they both use the 7th generation Intel chips, whereas the 8th generation offer a nice improvement and are shipping on other laptops.
  • Your mix of development/design/mobile development is important to consider - there are certain tasks which may be harder or impossible on Windows.
  • As others have mentioned Ubuntu or another Linux distribution can also be well suited to development (but again comes down to requirements).

People can quibble either way on some, but generally in 2018 these rules still apply:

  • If you do any mobile development (including React Native/Flutter) then macOS makes most sense for access to the iOS simulator.
  • If you do some design or work closely with designers and require Mac specific tools (like Sketch) then macOS also makes most sense.
  • If you use a predominantly Microsoft stack (C#/.Net) then Windows is the way to go.
  • If you primarily develop with a non-Microsoft stack (Python/Java/Ruby/Go/Rust etc. etc.) then Linux is the best option.

WWDC has come and gone without any new hardware and to my knowledge there are no reliable rumours of Surface updates either (aside from a budget model). I suspect both will get updated around September/October but they may come sooner.

The MacBook has well documented keyboard issues and the Surface Book is bizarrely missing Thunderbolt and has some quality issues of its own (like an unreliable power button). It is a frustrating game of waiting as the next round of updates will very likely address these issues and be “the time to buy” for MacBook and Surface Book.

If you need to buy now then I would pick either the Thinkpad X1 Carbon or Thinkpad T480s. The reason I would pick the Thinkpad models over the Dell XPS 13 is because they both have slightly larger screens (14"), more comfortable spill-proof keyboards, higher build standards and include a webcam in the right position.


Depends on what you use it for.

I modified a chromebook to run Linux natively on it and am very happy with it as a portable computing device.

It's not what I use full time (I have a desktop workstation) but I still do a lot of programming on it.

It easily runs large Dockerized rails apps + VSCode + streaming music + lots of browser tabs without breaking a sweat.

IMO it's the best set up you can get for $350, that's for sure.

It ticks all the right boxes:

[x] It has a 1080p IPS monitor that rivals $1,000+ laptops
[x] It has a real SSD and an SD card
[x] The keyboard feels really really nice
[x] It weighs under 3 pounds and looks sleek

Details on which model I have and how I set it all up can be found at nickjanetakis.com/blog/transform-a....


I use a Lenovo T450S with Windows 10. No complaints, and I have not run into anything I cannot do. The surface pro 2 looks awesome. I am not a Mac guy, but I have heard a lot of complaints about them lately.


I don't think the choice here is a very big one. It largely depends on whether you prefer the fit and finish of one or the other. Stats/price/capability are largely the same.

To me, the keyboard on the Surface Book 2 is nicer than the current generation MBP, but I prefer MacOS to Windows. The tablet feature is nice, but depends powerfully on whether you would actually use it or not. WSL is at a point where it does almost anything you'd want to do on on a Bash shell, so if you don't mind Windows then go for it.

Otherwise, MBP.

Personally, I switch between a 2014 MBP and a Thinkpad X220 on a daily basis.


I'm just repeating what's already been said, but a Thinkpad T-series is the way to go, IMHO--I'm 6 years into a T520 and it still has plenty of life left. Alternatively, the X-series for portability or the newest generation A-series (AMD Ryzen) for a slightly less expensive option.


I've been a mac user for 8 years. Last year I bought most powerful MBP 15" 2017 and won't recommend it. After a few months, some of the keys have stopped working, battery life is awful it lasts 3-4 hours. I consider building a hackintosh for 1/4 of the price. Another good option for Linux/Windows machine is Lenovo X1 Carbon.


This completely depends on the stack you are building and the target deployment machine.

For most development on Web, iOS, macOS, Java, JS, and allied, I would prefer MacBook Pro even if the deployment target is on Linux.

If you are developing on a predominantly Windows stack like SQL Server, Visual Studio, .NET, it may help to code on a Windows laptop. I would prefer a laptop to a Surface any day.


Me personally suits most Lenovo ThinkPad series bussines laptops with keyboard containing trackpoint (aka clitoris :D) i love that layout so much i have at my hi-end desktop thinkpad external keyboard (two to be precise, another as failsafe in drawer). i have that notebook for 5 years and is good as new! (ok, bettery is a litte weak), but i love it


Running on a 4 year old i3 Lenovo laptop. Recently upgraded ram form 4GB to 8GB. Does the job for me. It is FHD, light weight and fast enough to get my day today work done (PHP, React, React Native..etc)


I say anything with 8GB of RAM or more that can run LINUX OS on would do. But it all depends on type of devs you wanna do. If you have money for Mac then sure they are solid piece of equipment but if you do not want to drop big kind of cash then anything will do as long it has decent specs.


Thanks for all the help, has anyone used the surface book 2 yet and has any feedback on it?

I was also thinking a ThinkPad but was liking the fact that the surface can be used as a tablet which is good for mockups etc.


Go for the MBA with Linux (use the stock bootloader).

I've got a dual booted Mac OS / Linux MBA and it's the best of both worlds.

Currently, my Windows has been stored into a virtual image and the only way I run it is on my Linux PC with QEMU-KVM.

In terms of build quality and robustness, the MBA is by far the best I've ever seen - and you can configure it on Linux by adding gestures, fine-tuning the trackpad etc. since it's been around for some time already.

MacBook Pros are cool as well if u plan on installing Linux on it. ;)


The ones that you look on the shelf, touch it's shiny 13inch aluminium body, opening and closing the perfectly functional hinge, praise it's good bright, high resolution screen, taking into your hands to see the slim side of it, putting it back aaaaand walking over, because usually they are the most expensive in the entire store...

...and before you exiting, you see and old design Macbook Air which still looks great in real world...


I'll suggest you go for mbp. I have used linux and windows for coding earlier in my college days but in both of them, things could break if you got into customization or tweaking and as a dev you dont want to be fixing os issues in your valuable time so macos is very stable and controls your access to certain parts of the os unless you really really intend to. This gives you the benifit of focusing on your work and not the os. UI and UX are the best in macos eg touchpad gestures etc and slick UI. Last but not the least hombrew which is the best package manager I believe which manages all packages you need especially coding related tools. Go for mac and I promise you wont look back ever again.


I have never used a ThinkPad. It does look like a good laptop. Have you used it?


Not specifically this one, but I have owned several models and from customer reviews on the thinkpads forum, I guess it is an improvement over older series.


MacBook Pro any day. Just look at your budget on how fancy you can go ahead with it.

I regret buying the new MacBook pro with touchbar though.


If you're looking for Windows, I can second on the Thinkpad, as well as HP and Acer have some great models


Macbook Pro or System76 Lemur. ☺ But Lemur is not available now... (ノД`)


Definitely not the new MacBook Pro. It has so many complains regarding keyboard reliability it's not even funny anymore.

I'm more in the boat that's good to have a 17in laptop for development :)


In my opinion, XPS are winners. Their laptop is compatible with Linux and have nice drivers.
My XPS 2013 is still running perfectly, except with big VM.

That's a real must !


I know there's a lot of hype towards surface book but from what I read it's not worth the price


Lenovo Ideapad 700 (8go, SSD) and Ubuntu 16, two years now and no regret


As a developer I would only sugget you MacBook Pro but if you have limited budget then you can check other options. thecrazybuyers.com/best-laptop-for...


Man, you read my mind. I was literally looking for answers to this same question on YouTube last night.


I wouldn't change my surface pro 2. Surface is goooood


Zero regrets about Dell XPS 15. With all the drama colleagues are having with port connectivity I'm still baffled people still even consider Apple products.


I would say, Thinkpads are one of the best choices if you're not tied to OS-specific tasks/solutions.

Classic DEV Post from Aug 31 '17

How to be an awesome programmer.

Do you want to be an awesome programmer? Read this

Nikita Armstrong profile image
Full stack developer