Hey everyone! I am starting my first year of Computer Science this fall and I am honestly a bit overwhelmed trying to pick the right laptop. I have been using an old family desktop for basic stuff, but I definitely need something reliable and portable for lectures, hackathons, and long coding sessions in the library.
I have heard a lot of conflicting advice about what specs actually matter for a student. Some people say a MacBook is the gold standard because of the Unix-based system, while others swear by Windows machines or ThinkPads for their durability and Linux compatibility. Since I am planning to dive into web development and maybe some mobile app dev later on, I am curious about a few specific things:
I want something that will last me all four years without becoming obsolete by junior year. What do you guys think is the best overall laptop for a CS student and software development right now?
Saw this earlier but just getting back to it now... basically I went through three laptops during my undergrad because I kept underestimating my workload. If you are gonna do Docker or run a few VMs simultaneously, 16GB is the bare minimum and it feels cramped fast. I remember trying to run a local microservices environment on 16GB and my system literally ground to a halt. Regarding the GPU, unless you are planning on doing really heavy local model training, you probably dont need a beefy dedicated chip. Most ML projects in school are small or you will just offload them anyway. To answer your battery question, it really depends on the architecture of the chip. Heres how a few options usually stack up for us:
Stumbled on this thread and wanted to jump in with a more budget-conscious perspective. Tbh, a lot of CS students overspend on their first machine thinking they need a powerhouse, but you can get way more value if you look at the right Windows or Linux-friendly hardware. Regarding RAM, 16GB is definitely the baseline now. If you are planning on running multiple Docker containers or heavy VMs, 32GB is nice to have, but here is a tip: look for a laptop with SODIMM slots so you can upgrade it yourself later for cheap. Buying a machine with 32GB pre-installed often comes with a massive manufacturer markup. For the GPU, unless you are doing heavy local model training, you probably dont need a dedicated card. Most ML coursework uses cloud resources like Google Colab or school clusters anyway. You are usually better off saving that money or putting it toward a better screen or more storage. If I were starting today on a budget, I would grab something like the Lenovo ThinkPad E14 Gen 5 AMD Ryzen 7 16GB RAM or even look for a refurbished HP EliteBook 845 G9 AMD Ryzen 7 32GB RAM. These are absolute workhorses, have great Linux support, and are built to survive being shoved in a backpack every day. Plus, the keyboards are way better for long coding sessions than most thin-and-light laptops. Save your cash for extra monitors or coffee... trust me, you will need the coffee more than a high-end GPU.
Quick reply while I have a sec... honestly I have gone through so many laptops over the years and the one thing that always kills the vibe is when a small part breaks and the whole machine becomes a paperweight. For a four-year degree you want something that isnt just fast but actually stays in one piece. I switched to machines that are a bit more rugged or at least user-serviceable because having your only dev environment die during finals week is a nightmare I wouldnt wish on anyone. Personally I found that reliability matters way more than having the flashiest chassis.
I totally agree with the advice you mentioned about Unix-based systems being the gold standard for software development. Having that native terminal experience is a massive time-saver when you are setting up dev environments or managing remote servers. Honestly, I spent way too many years troubleshooting OS-specific path issues before making the switch, and I really wish I had done it sooner. To add one small point that often gets overlooked: really look at the screen and keyboard quality. You are going to be staring at code for hours on end, so a high-resolution display with good brightness is worth every penny to avoid eye strain. On your specific questions:
> Is 16GB of RAM really enough, or should I push for 32GB if I plan on running multiple Docker containers or virtual machines? This situation definitely reminds me of a specific case involving a colleague who was choosing between the Dell and Apple ecosystems. He approached the decision with extreme precision, basically spending a month conducting a methodical comparison of chassis rigidity and key travel distance to ensure he selected the optimal development environment. After he finally settled on a high-end unit, he ran into an unexpected issue where the specific chemical finish on the palm rest caused a persistent allergic reaction on his wrists. He spent the next two weeks researching specialized vinyl skins and ergonomics kits just so he could operate the machine for more than ten minutes at a time. It turned into a massive ordeal with the manufacturers technical support department since they had no documented cases of that specific material interaction. Its pretty wild how you can plan for every technical specification like RAM or storage, but then something completely random like that happens and renders the entire hardware debate irrelevant.