choosing a laptop [for students by students]
Updated: Dec 31, 2019
One of the most frequent questions I get asked by makers and other engineering students is "what is the best laptop for me?" It's honestly not a trivial task knowing what the best laptop is if you're an engineering student or even simply a maker. There's a lot of factors to consider and really you only find out which the specs, cards, processors, and etc are the best by combining the experiences of 1000 different people trying a 1000 different things. This post describes the best recommendations I can give about which computer you want as an engineering students.
what do you do with your laptop?
As a student the challenge with choosing a laptop is usually they need some minimum specifications in engineering because of the software you'll need to run. Most engineering schools will try to teach you some proficiency in SolidWorks which only runs on Windows, and many teach Matlab and similar software as well. Never are you required to use only ONE software, and usually the software you're required to run is both space hungry, and processor hungry which means RAM is an issue and storage is an issue. Let's say you want to minor in CS as well, or you want to do some work in robotics and want to run Python, Windows is pretty bad at CS development because it isn't built on Unix. At least for me and many other programmers I know, the preferred platform is Mac because of the Unix base or Ubuntu for straight computer science majors.
As you can see, this gets really complicated, so what I'm going to try to do is break down what you want out of a computer based on what you think you want to do. Then I'll go through the relevant specs you might want to look for, and then recommend some models. I'll try to be as un-biased as possible, but I will mention I'm a fan of Mac for the reasons that the user experience is a lot better for me with them :) No hard feelings though.
how this article works - to make this easy on YOU, I've divided it into sections based on interest, mechanical engineering, mechatronics/robotics, electrical/cs, and pure cs. I have REPEATED MYSELF MANY TIMES across sections so you don't need to re-read sections that don't pertain to you. Just find the one you think is mostly YOU!
a recommendation for ALL Computers - GRAPHICS CARDS
So let's talk about Graphics Cards for a second before we get into the full list of recommendations. A Dedicated Graphics Card (in case you are un-aware) is an entirely separate processing unit in your computer dedicated to only graphics processing. It usually handles all the graphics from day-to-day to intense graphics applications when setup right. Many gamers use them for high quality pictures and fast refresh rates on the screen. The alternative is usually referred to as something like "Intel HD Graphics" or similar, and these are NOT graphics cards. Intel HD Graphics uses your processor (CPU like the i9 or the i7 or whatever) AS your graphics processor, no separation.
Good, now that you understand what a Graphics card is, do you need one? I ALWAYS recommend, if you CAN get a graphics card DO. Here's why. Software like Solidworks usually asks you to get an i7 with like 16GB RAM and that's a pretty hefty computer on its own. In my experience, this is really only necessary if you have NO GRAPHICS card because in these cases your CPU and RAM are being used to run the graphics of the program too! If you have one then the graphics card (which has its OWN RAM) will handle all the graphics and take that load off the CPU.
So my recommendation is ALWAYS get a graphics card supported by Solidworks, CUDA or whatever software you're trying to run.
also important: brands
The computer brand you buy is ALSO important because the hardware quality HIGHLY determines what kind of experience you're going to have. It's important to know what brands are GOOD and what you're paying for. First, I'd stay away from HP, they're computers are pretty but the internal hardware quality is much less these days than your Dell and Lenovo computers, they also aren't officially supported by Solidworks. The Dells and Lenovos are really good, and I've ran some for years on end with no issues. Lenovo's higher-end laptops will last you a decade if you take care of them well. MSI and Asus laptops are also pretty good quality wise. With all the issues Microsoft has been having, I'd probably stay away from the Surface (ANY surface) as well. This mostly pertains to Windows computers, because (let's be honest) you can't beat Apple hardware quality.
Now... let's get into the full recommendations.
i want to be a straight mechanical engineer
Let's say you're thinking about straight mechanical engineering, not that into electronics or CS, not that into anything besides making things mechanically work, the physics of things. THIS SECTION IS NOT FOR YOU IF YOU HAVE ANY INTEREST IN PRODUCT DESIGN, DESIGN, ROBOTICS, AND ETC. We're talking about STRAIGHT MechE. If you have ANY interest in electronics, computer science, OR robotics - keep scrolling.
In straight MechE the two software you'll probably see the most are Matlab and Solidworks (Fusion 360 is another one but much less common, most of the industry runs on Solidworks). Matlab is usually used for computation, solving differential equations of a system, modeling and code generation. Solidworks is used for 3D modeling, manufacturing, mechanical design, computer stress/strain simulations and etc. Both of these are widely used.
On the Solidworks website, it says you need over 20GB of free space on your computer, but this is only for the program and doesn't account for all the files you're going to end up having when you're designing things! It also recommends at least 16GB of RAM and a 3.3GHZ processor - yes, it's hefty. It RECOMMENDS a graphics card and while it isn't needed this is a good idea, as I've explained above.
Matlab is much better in its requirements needing only 4-8 GB (unless you're installing robotics packages and etc - full installations can take up to 30GB however). There are no specific memory requirements just an Intel or AMD processor, if you aren't doing anything crazy, Matlab ain't picky.
Besides this you generally require email and such, and while Macs are really good at these things, if you're straight MechE, it might not be the best investment for you.
RECCOMENDATION ONE: GET A WINDOWS COMPUTER
Yes, I can't believe I'm saying this either, but if you're straight MechE, get a PC and yes, keep the Windows Virus on it. You're going to need Windows because of the amount of work you'll be doing in Solidworks and similar software that only runs on Windows. If you buy a Mac and BootCamp it you'll find yourself ONLY on the Windows partition most of the time, so while you could I wouldn't bother.
As far as specs go, you probably want a laptop with a supported graphics card, at least an i5, and at least 8GB of RAM (you probably want 16GB). 256GB storage should be plenty if you aren't planning to partition your computer. If you also plan to get software like Ansys Fluent or Seimens NX, you may want to think about upgrading to 512GB.
base recommendation: Dell Inspiron 5482, i7/16gb/512gb 2-in-1
This is the Dell Inspiron 5000 series 13 inch 2-in-1 Laptop (5482). It has an i7, it has 16GB RAM, it does NOT have a graphics card but it's CHEAP and I know people who have run Solidworks on it JUST FINE. If you're not looking for an expensive college computer, this one will more than work for you. PLUS you get that nice touchscreen you can take notes on with a stylus! It also has a 512GB solid-state drive meaning you should have MORE than enough storage.
Price: ~$850 (cheap for i7 and 16gb RAM)
professional recommendation: Lenovo Thinkpad P1
Let's say you're looking for a more long-term, expensive computer to last you through the first few years of work AFTER college as well. The Lenovo Thinkpad P1 is a fantastic machine. The BASE P1 Gen2, comes with an i7, 16GB RAM and an Nvidia Quadra T1000 graphics card all for ~1500 from the Lenovo website. The best part? This laptop AND the graphics card that it comes with are officially supported by Solidworks.
Price: ~$1500 (not bad at all actually but twice the price of the other)
Dell does have an equivalent computer, the XPS is pretty decent and I have been using it. But the model I have (which is the i7 and 8GB RAM sometimes struggles to run Solidworks because it doesn't have a supported graphic card).
i want to be something in robotics/mechatronics, i want to do mechanical and electrical
This recommendation gets a little hairy because it really depends on what you prefer. Robotics is an incredibly complicated field as it combines MechE, EE, and CS all in one. The thing is though, in robotics, while you DO do a lot of Mechanical Engineering, usually your designs are not sustaining Forces high enough where you need to worry about yielding parts or etc. What this means is you can make do without Solidworks because Solidworks is brilliant because of the accuracy of the simulations, not so much anything else. In robotics, CAD is mostly used (for most smaller/hobby/development applications) as a communication and manufacturing tool, and for this Fusion 360 is fine. WORD OF WARNING THOUGH: in industrial robotics, and robotics where the loads are high, Solidworks will be required for proper design and simulations, all I'm saying is something like Nvidia's Jetbot doesn't really need stress simulations on it unless you plan on throwing it down a cliff. AND WHILE THIS ALL MAY BE TRUE, you should still learn and use Solidworks :)! It's in here for argument/discussion sake.
The OTHER ISSUE with robotics is you need to run A LOT of CS software, you need to be able to easily connect to embedded devices over SSH and USB. You'll need a lot of the robotics developer toolkits and Arduino will become your bestttt friendddddd everrrrrrr. In these kind of situations, not only do you WANT to get used to Unix, but you'll probably need it for certain things. Python is much less of a pain in Unix! (By Unix-based system we're talking about Macs and Linux).
I recently read an article by Liz Miller on Learn Robotics which talked about this very subject. What's the best computer for robotics engineering? She said it really depends. For research robotics, the kind of work you'll be doing as a student, she says it really doesn't matter. And that in industry you'll be stuck with Windows. All absolutely true, she also gives some solid computer recommendations in this article which you should take a look at. As a current engineering student with the times changing very slightly since she wrote that article, my recommendation is slightly different. I have used an XPS for robotics in school and frankly, I hated it. The new Windows 10 drivers and USB controllers make it very difficult to connect to any embedded micro controller, not to mention SSH key gen in windows is a PAIN. As opposed to Mac. Dual booting new Windows systems is also a pain because of the new, and completely ridiculous, secure boot on new Windows computers. Moreover, with the upcoming releases of ROS2 and the industry's motion to move towards ROS and AI-based robotics, Unix systems will be a real advantage for any student because it allows a lot more flexibility than Windows in the modern tech sphere. It's simply less of a pain.
You can go with ANY of Liz's recommendations, but my personal choice would be the following setup:
an oddly specific recommendation: MacBook Pro 2018 w/ 512gb and Boot Camp
Yes, the lovely MacBook Pro. But not just any MacBook Pro. Get the pro with whatever processor and RAM you want, but get the 512GB storage. Then you can Boot Camp you Mac so you have a 256GB Windows partition and a 256GB Mac one. For all your hard-core specific engineering software like Altium, Solidwokrs, etc, you run that on the Windows side, and leave the CS work to the Mac side. You get the added advantage here of Apple's truly beautiful design and build quality. Plus, I've just had better experiencing interfacing and connecting robots to Mac systems. Also, chances are whatever lab you work in will already have a Linux machine, because most of robotics RUNS on Linux these days, so there's not much of a need to have your own at least initially.
Price: ~1800-2700 (not cheap though :(, you're paying for quality and user experience here)
now let's say you're CS or EECS
If you're an EECS/CS or EE student. It's honestly without a question that you want a Unix/Linux system. At least that's the preferred system because Linux especially was BUILT for development and Mac (Unix-based) follows VERY close behind. Even if you don't prefer Linux, I highly recommend gaining experience in Linux because in industry, most of the most important pieces of software developed are developed for, or developed on Linux. It's the best operating system in the world if you know how to use it. But, wether you get PC and boot it with Linux (you probably want Ubuntu these days), a Mac, or a straight Windows computer, the hardware still is a question, what do you want, and on a budget, what do you prioritize? Let's break that down first. Then we'll get into operating system in more detail.
PRIORITY ONE: YOUR MEMORY
If you're in CS or EECS, your first priority is your MEMORY. You may think it's your processor, but in reality the processor just tells you how many computations per second you can achieve, so the only thing upgrading your processor does is help your programs RUN FASTER. But what usually LIMITS you in compiling and running big programs especially with a lot of data is your memory.
Having more memory will allow your system to run larger, more computationally hungry programs. I'm not saying a processor is not important so get a garbage one and 7TB of RAM. I'm saying if you have a choice between i5 to i7 upgrade vs 8GB to 16GB RAM upgrade, take the RAM. You'll need that more than the extra 1ghz. I say this because college computing is moving heavily towards Data Science and the extra memory will help ensure your programs don't crash.
PRIORITY TWO: THE CPU
The faster the processor you have, the better the processor, the faster the applications you're writing will run. CS takes A LOT of computing power and a good processor is a good step in having a really good development machine for college, or otherwise! Remember, the higher the clock speed, the faster the processor, the faster your applications/programs will run because that's more computations it can do per second.
Now the question becomes, how fast? Which processor? How many cores? These days you can likely get away with an i5, but to be honest, as an EECS student I would highly recommend and i7. The performance difference between the i5 and i7 (or AMD equivalent) is NOT TRIVIAL, it is highly noticeable. The i7 is definitely worth the upgrade if you're a CS major. The other thing to note, however, is you no longer need 650 cores on your processor. Quad-cores and dual-cores don't matter as much anymore with Intel's new multi-threading technology. This allows the processor to have more "virtual cores" on a single chip so you get better performance as tasks are divided.
Finally, let's talk about architecture. I don't think it's very common these days, but DO NOT get a laptop that has ARM architecture on it like the raspberry pi does. Building for ARM is very difficult and required different compiling libraries. Building for amd64 is much easier. NOTE: both the Intel chips and the AMD processors run amd64 architecture on their processors, so USUALLY you don't have to worry about this. I'm saying mostly, it's a bad idea to use your Nvidia Jetson or Raspberry Pi as a student laptop.
PRIORITY THREE: THE GPU (read me I'm important)
Priority number three is your GPU. And you're probably like whatttttt, why do I need a GPU I'm not a gamer. Ever since Nvidia invented CUDA the CS industry has relied heavily on GPUS for accelerated computing, network training, modeling and etc. Not to mention if you want to do game development or anything with heavy graphics, a GPU will SAVE YOUR LIFE as it will take all of the graphics load off the processor. You want a laptop with a good, CUDA supported GPU. You know what that means! No AMD Radeon Vegas, if you're in CS get an Nvidia GPU! This will allow you to do all the new buzz-words (machine learning! ai! data science!).
It turns out that ANY NVIDIA GPU produced since 2008 is CUDA-enabled, so you're probably in good hands if you get ANY computer with an Nvidia GPU.
PRIOORITY FOUR: STORAGE
Get outta here, in CS you don't need to upgrade your storage. YES, it's NICE to have a lot of storage but first make sure you have the other three before going and upgrading your storage. The reason is because CS doesn't require a lot of storage, it's about the computing more than anything. And you can always use a flash drive or an external hard drive to store files if you run out of space.
basic/medium recommendation: Lenovo Thinkpad E590
Lenovo is good at making GREAT laptops and the E590 is no exception. It isn't the most stylish device, but it has some rock-solid specs. i7, 16GB RAM and you can drop that to an i5, 16GB or i7, 8GB for less money. Really solid laptop, built for computing.
Price: ~900 (okay yes, pricy I admit, but it's good)
professional recommendation: Dell XPS 15" w/ Nvidia GeForce and UBUNTU
The Dell XPS 15 above is the perfect combo for any developer. It has an Nvidia GeForce GTX 1050Ti which IS a CUDA-enabled graphics card (the new XPS has the GTX 1650 which is ALSO supported on CUDA so you can get that too). The specific one linked also has an i7 and 32GB of RAM. The storage, while less important, is also a WHOPPING 1TB.
My recommendation? If you're SERIOUS about CS, you want this computer and dual booted with a 500GB Ubuntu 18 or 19 Partition and a 500GB Windows Partition.
~1800 (at Costco, but you'll be able to find it elsewhere too)
best computer for CS Students: MacBook Pro 13
Now it may SEEM like I'm throwing out everything I previously said about things you want out of a computer for CS, but the reality is as a student, what you really need is just something RELIABLE, something PORTABLE. You want something efficient and with A LOT of processing power. The MacBook Pro is beautiful, it's Unix-based, and it can run at full-clock all day and NEVER complain about it. It has a long battery life, it's light and portable, and let's not forget Apple support is unbeatable.
Price: ~1300-1700 (it's a Mac, what did you expect)
**AS A SIDE NOTE: You can get a I have ALSO heard good things about the Dell Inspiron 15 5000, and the Asus Vivobook S if you're looking for cheaper options! I just don't want to directly recommend these computers because I have not used them.
if you want more information
Also a good link to checkout is this: https://www.learnrobotics.org/blog/best-laptops-engineering/
things to never do and some side-notes
FIRST, never buy a Chromebook as an engineering student, or a maker. They don't do anything useful. They're great for checking email, and accessing google docs, past that they really can't run any of the software you want to use/will need.
SIDE NOTE: None of these images are NOT my own, they were all taken from google. Full credits and rights to the people who took these photos. They're here for your aesthetic pleasure.
Hope you all found this helpful!