Last updated: 2020-07-01
If you're an aspiring programmer, you need to have a good laptop to do your work on. You might be looking at a laptop with the best specs and the best performance of 2020. However this is not the most important thing to look for.What you need the most is a good environment to be productive on. That productiveness starts with the keyboard you'll be typing on. The problem with a lot of modern laptops however is that they often don't have a good keyboard. Despite being often seen on tech conferences, I think that MacBooks in particular do not satisfy this need. There aren't many laptops with good keyboards anymore. The good thing is, there are still a lot of ThinkPads available, business laptops that were made specifically for productivity. They are also extremely hackable, like the Nexus line of laptops almost. And there are a lot of them around still.
Something that you may want to consider is what you'll be doing with it, and how large it has to be. The X220 for example is quite small and is good for traveling purposes. Despite that it can still hold 2 disks (SATA and mSATA) and has a respectable i5-2520M. It is however not removable. Some ThinkPads still do have socketed CPU's. Usually most of them are available for around $100, though this depends on where you are located.
Media playback where the display and speakers come in may also be an important factor though. I don't feel like ThinkPads are very good here. The display looks washed out and a lot of the backlight bleeds through. Looking at a black background when editing text or working on a terminal feels more like looking at a blackboard. May have its charms I guess.. But colors and contrast is not something the ThinkPad is good for. And the sound of the internal speakers is very thin, and lacks any bass. Headphones or external speakers are pretty much necessary.
All in all it depends on what you want from your laptop of course. For programming, the keyboard alone might be worth it. And the laptops are cheap but business-grade good. That makes picking up programming actually pretty accessible. Whichever laptop you choose to go with, don't look at specs alone. Being a programmer is kind of like being a writer. They don't call programmers "software authors" for no reason :)