Update: Apple’s latest MacBook Pros (released July 2018) include a membrane to protect the keyboard from the crumbs and dust that caused failures in the previous iterations of the butterfly key switches. Based on early testing, these keys should be more resilient than previous models.
They still don’t have the travel of the old keyboards, but, assuming this fixes the problems, I’m inclined to recommend you go with one of the newer notebooks to get the additional horsepower. For now, let’s wait and see, but this seems like a step in the right direction.
If you just want to cut to the chase, skip down to the tl;dr section.
If you had asked me this just a couple of years ago, the answer would have been really simple: buy a new MacBook Pro. Here’s why:
- Little worry about viruses and malware. Sure, they exist on Mac, but they’re not nearly as pervasive as they are on Windows.
- Easy access to the entire Unix/Linux open-source ecosystem. Software that requires lots of tinkering on Windows just works on Mac. Linux software is easier to use on Mac than it is on Linux because homebrew always has the version you need.
- Access to important proprietary software like the Adobe Creativity Suite (which, granted, is becoming less and less relevant with apps like Sketch and Affinity’s graphics apps, exclusive to and available on Mac respectively). Beats the pants off Linux in this respect. MacOS even has some closed-source software for developers that isn’t available on Windows like CodeKit and ImageOptim.
- Operating system gets out of your way better than Windows and Linux. No fiddly color schemes, frivolous settings, or compiling kernels to distract you from your work.
- Incredible build quality. Macs hold up well for a long time.
- Great resale value. When you’re ready to upgrade, your Mac will still fetch a good price on the secondary market. Most computers’ resale value falls off a cliff after a year or so.
I’m sure there are several benefits I’ve forgotten here. Most of these are still true with recent MacBook Pros, but Apple has fumbled on a very important part of their current laptops: the keyboard.
The Issue with MacBook Pro Keyboards
The keyboard is the most critical component of a computer for developers. No laptop keyboard is going to be amazing, but this new keyboard which was introduced alongside the Touch Bar is a mess. Besides having virtually no travel, the butterfly switches apparently break with greater frequency forcing the owner to replace a substantial portion of the computer.
I rarely use my MacBook Pro’s built-in keyboard, but I would still be reluctant to purchase one of the newer MacBooks because I want the built-in keyboard to be a viable option.
So, what should you do in a case like this?
As ridiculous as this sounds, your best bet right now is to buy a second-hand or refurbished MacBook Pro. Get the beefiest machine you can find pre-Touch Bar, and you’re going to be thrilled with it. Until Apple gets their act together (and, I think, with all the negative publicity swirling about the keyboard, they will fix it in newer models eventually), the earlier MacBook Pros are still the best machines for web development. They beat newer Linux and Windows systems for all the reasons I outlined at the top of the post.
You’ll need to make four decisions as you’re selecting the right computer.
Go with a 15”. More room to work with = more productivity. Get a Retina display and crank up the resolution to give you the most workspace possible. Besides that, it’s a joy to look at a monitor and not see pixels.
How much RAM?
16GB is the most you can get in a MacBook Pro at the time I’m writing this, and it has been for a while now. This will give you headroom to run Slack and your email client, have a couple of Docker containers running, Photoshop, and whatever else you might need. I’m not suggesting you keep all your apps open all the time, but it’s a great time-saver to keep the apps you’re switching between open while you’re working.
This is probably the most important component you want to look out for. Any processor will work fine, for the most part. You can get by without the Retina display or even with a 13″ monitor. I would urge you not to buy a MacBook Pro without the most RAM you can afford.
Again, the most you can afford. Not because web stuff takes up a ton of space, but because you want to spend time developing web sites and applications and billing clients, not curating the contents of your hard drive.
Make sure you get a system with an SSD. 512GB is pretty good. 1TB is better.
Just get the fastest you can find/afford.
Answering the Most Common Advice
This sounds great, but even used MacBook Pros are pretty expensive. (See my point at the top about Macs holding their resale value.) That’s what makes the following often-parroted advice really tempting to follow:
“You don’t need incredible specs for most web development.”
This is true, but incredible specs buy you the ability to not have to think about resources. You won’t have to close down applications because your computer has come to a grinding halt. You won’t have to delete old projects or your photos or music to make room for a new project. You won’t have to close Slack so you can rebuild a Vagrant machine, install dependencies for a Node project, or run several Docker containers. This lets you spend your time and brain power on things that make value for other people which, in turn, makes value for you.
Telling a web developer “web development doesn’t have crazy requirements, so buy a cheap machine” is akin to telling a carpenter that you can knock a nail into some wood with a solid rock, so find one of those instead of buying an expensive hammer. Maybe this turns out OK if you’re only ever going to drive a single nail, but, if you want to do this every day and make a living from it, you should invest in the best tools you can afford.
Let’s look at a few scenarios that could lead you to make a different choice.
I can’t afford a Mac
If you’ve tried Craigslist and still can’t find an affordable Mac, buy whatever you can afford. Don’t put off starting because you can’t get a MacBook Pro. Start picking up some freelance work with whatever computer you already have, and reinvest some of what you make into buying a better computer later.
I can’t find a good used MacBook Pro
Try the refurbished section of the Apple Store online. (They don’t sell refurbished products in-store.) Even as I write this, the selection of pre-Touch Bar machines is pretty slim as those machines are a little old at this point.
If you can’t find a refurbished system and can afford it, just buy a new MacBook Pro. Even though the keyboard isn’t as good, you’re probably going to be using it with an external keyboard 95% of the time as they’re much faster for typing and have better ergonomics.
I’ve never used a Mac
I hadn’t either until about 11 years ago. Actually, that’s not entirely true. I had used them in high school art class but not very much.
It took a couple of weeks to get comfortable enough with the differences of the operating system to be able to work effectively in it. After six months, I had “mastered” using the Mac to nearly the same level of proficiency I had on Windows. It’s an investment, both in time and money, which will pay off with less friction developing and greater productivity.
If you still can’t stomach the thought, or if you don’t have time to spin up on a new OS right now, go with whatever makes you most comfortable.
Buy a used MacBook Pro, before they changed the keyboard. Anything before the Touch Bar will do. Get the best specs you can find. If you can’t find a used one, go ahead and buy a new one. You’ll probably type on an external keyboard most of the time anyway.
Other Questions You Might Have
Here are questions other people have when they’re trying to start a career in web development:
- Which language should I learn to become a web developer?
- How do I know if I’m ready for my first web development job?
- How do I get my first freelance gig?
- Should I build my web development portfolio from scratch?
- Am I too old to become a web developer?
- I’ve gone down this road before and ended up quitting. How can I hack my brain to keep going when learning web development gets tough?
Have a question that isn’t covered? Share your email in the form below. Not only will you get new articles as I post them, but you’ll have a direct line to me to ask about your specific situation any time. Just hit “reply!”
Want to Become a Web Developer?
I've got you covered. If you're ready to use your brain and a to make from or even , share your name and email address. I'll send you resources to help make your transition from job to much easier!