When I was in college I saw a lot of Computer Science majors with fancy gaming laptops running Windows. Not only were the laptops likely overkill for their applications, but Windows is a horrible environment for programming. For example, you can quickly get C/C++ support in Fedora Linux because GNU support is native on Linux. Whereas on Windows you need software such as MingW, and proper installation to use it with Visual Studio can include several extra steps. Whereas the ease of getting GCC running on Linux combined with the power of BASH make being productive super easy with or without a user interface. As far as technology goes the largest shortcoming of Linux is proprietary software such as Tableau or MS Word. Sometimes open source alternatives are just not as good as their proprietary alternatives. Operating systems aside, choosing the right hardware can save you a ton of money.
Unless you are working in video games or deep learning you can probably get by with an embedded Graphics Card in your laptop. An embedded graphics card is one that is built into your computer’s motherboard. These graphic cards typically exist to provide bare bone rendering functionality such as displaying information on your screen. Smaller chip sizes have allowed manufacturers to pack more power into laptop graphic cards, but that does not mean the power is always necessary. As a general rule of thumb if you are not working with images, video, or Deep Learning Artificial Neural Networks an embedded GPU is probably enough for you.
If you do need to purchase a good graphics card then you need to keep a few things in mind. Insufficient Random Access Memory or a weak Central Processing Unit can cause bottlenecking. RAM is basically just temporary memory that relies on essentially randomly assigning memory addresses in order to speed up its operation. On the other hand, the central processing unit or CPU is the brains of the computer. Generally speaking, the easiest way to pick a GPU is to consider your needs and find some benchmarks from tech sources. Last time I knew Tom’s Hardware and Ars Technica were both considered pretty solid in this regard. Computer hardware can be tricky, and sometimes you can get great hardware for less than you would expect.
Picking out a good CPU can be a little tricky, but more straightforward than a good GPU. CPUs are typically marketed by their clock speed, which is how quickly the CPU handles information. The first time I bought a multicore CPU I thought I got a steal because I multiplied the clock speed assuming that was the speed for each individual core. I got the math wrong because each “core” is essentially a CPU on the CPU itself. When you harness the power of all the cores you get that clock speed. You may also see “threads,” which are basically just virtual cores; Threads allow cores to multiply themselves virtually without actually changing physically. If not that is not confusing enough you’ve got the wonderful branding schemes.
If you’re familiar with Intel then you have seen “i3”, “i5”, and “i7.” In general, the higher the number the better the CPU from Intel. However, a high-end i5 can be cheaper and better than a low-end i7. On the other hand, AMD seems to do whatever they please. You can compare clock speeds to help nail down your options, but I would strongly consider looking at benchmarks for CPUs too. Whether or not you’re on a budget it does not make sense to pay more than necessary for a CPU. At the end of the day though, as long as you’ve got a decent CPU, enough RAM to keep up, and enough memory to get by you should be all set. I once bought a cheap refurbished Toshiba, installed a 256GB SSD, Ubuntu 20.04, and it ran perfectly fine for a programming machine.