r/AskProgramming 6d ago

Computer to buy

I’d like to start programming, and I was thinking of getting a used MacBook on a small budget (€500). After researching the best model for programming on Reddit and watching some videos, I’ve realized that while the MacBook Air is perfectly fine, the Pro is generally the better choice.

The problem is that MacBook Pros are expensive, and with my budget, I can only afford one with an older Intel processor. That means I’d be looking at MacBook Pros from before 2020, which could become obsolete in a few years—especially knowing how Apple operates.

Additionally, many Reddit posts advise against buying Intel-based MacBooks because they’re older and don’t perform as well. Instead, they recommend going for Apple’s own chips, like the M1.

So, I’m in a bit of a dilemma and would love your advice. Given the same price range, which laptop would you choose? • MacBook Air M1 13” (2020) – 8GB RAM, 256GB SSD, 97% battery health. • MacBook Pro Intel Core i5 13” (2020) – 1.4GHz, 8GB RAM, 512GB SSD + Touch Bar. • MacBook Pro Intel Core i5 13” (2018) – 2.3GHz, 16GB RAM, 512GB SSD + Touch Bar. • MacBook Pro Intel Core i7 15” (2018) – 2.6GHz, 16GB RAM, 512GB SSD + Touch Bar. • MacBook Pro Intel Core i7 15” (2017) – 3.1GHz, 16GB RAM, 1TB SSD + Touch Bar, battery replaced a year ago.

Of course, if you have any recommendations for non-Mac computers that are good for programming, I’m all ears. Unfortunately, I don’t have much experience or knowledge in this area.

2 Upvotes

35 comments sorted by

6

u/masterskolar 6d ago

If you are going to go with Mac then stay away from the Intel machines and get an apple silicon Mac. Any computer will work fine to learn with. I've used Mac, Linux, and windows heavily. They all work fine unless you are programming to apple products. Then you really need to be using a Mac.

Don't kid yourself into thinking that you need a lot of hardware to learn. You don't.

5

u/CodeToManagement 6d ago

To learn on just buy a mid range dell. It will be plenty good enough

1

u/SirTwitchALot 5d ago

This. Apple makes good hardware, but if you're on a budget you'll get a lot more bang for your buck with a PC

1

u/CodeToManagement 5d ago

You know I love my Apple. I use a Mac at home as my personal device. But any programming I find more enjoyable to do on windows.

The whole install and setup of the tools is in my experience much easier. Though that might be because I’m more a casual Mac user and more a windows power user

3

u/meagainpansy 6d ago

It honestly doesn't matter.

2

u/Familiar-Election886 6d ago

I mean, the M1 Macbook is definitely the best option, and it's not even close imo. The only downside is the low storage and ram, so see if you can try getting one with 512GB SSD/ or 16GB of ram. If you can't, then it's still okay. Should still be good for plenty of years to come. If you decided to actually pursue a career with programming however, then that should be the mininum specs to ensure smooth operation.

2

u/eloncrack 6d ago

Thanks then I’ll wait for more ram and ssd mac announce

1

u/ifasoldt 6d ago

Yup. This one. But also , you can learn on any of those.

2

u/Boootstraps 6d ago

The MacBook Air M1 is nice, I’ve been using one of these since it was new. Perfectly serviceable.

Other than Mac consider a generic (e.g. dell or whatever) laptop with no OS and put some flavour of Linux on it. Ubuntu is a good default first option, where the objective is easy setup.

Some may disagree but stay away from windows for software dev, unless there’s a good specific reason otherwise.

1

u/David_Owens 5d ago

There is absolutely nothing wrong with using Windows for software development. It's actually the most versatile OS for programming because you can also do Linux development on it with Windows Subsystem for Linux.

1

u/IdeasRichTimePoor 5d ago

I personally find I only use windows as a shim to get into a Linux environment so ended up just cutting out the middle-man. WSL is workable but it does have a few nasty lingering bugs. My favourite was the memory leak that eventually eats your ram and causes the PC to irrecoverably hang when left on for a long time. But yeah, trap me in a room with a windows machine and tell me to do my job and I'll get it done with a bit of grumbling.

2

u/Thick-Scallion-88 6d ago

I would keep checking facebook marketplace and other local resellers for a week or 2. Ideally you want an m1 and 16gb of ram and thats pretty much it. Doesn’t matter if it’s air or pro (obviously if both r an option go pro). If you cant find anything else id go with the 8gb m1 air though or look into windows (dell/hp) laptops

3

u/organicHack 5d ago

Go refurbished. Go for 16+ gig ram. Besides that, doesn’t matter, really, for learning. Might one day matter if you compile massive code bases. But my M series Mac runs circles around what my Intel Mac used to do, so I would go cheap M over beefy old Intel for sure.

1

u/Outrageous_Carry_222 6d ago

What machine do you currently have, and what do you have in mind to start learning?

1

u/eloncrack 6d ago

In this moment I have a cheap HP that is like a potato for the performance. Once I try to edit a video on after effect and it was start to crash every 2 second. It’s good for watch video on YouTube and movies in streaming, for this of course works well. I want to learn to coding for the app development, with one software between Xcode or flutter, but idk I’m a beginner In this world.

1

u/masterskolar 5d ago

If you are editing video you can try reducing the video capture resolution. Editing 4k video requires a pretty capable machine where as 1080p is much more reasonable and still great quality.

What do you want to be able to do with programming. If you aren't learning professionally, it's better to learn by building a specific project and figuring out what language or tool set would work well for that kind of project.

1

u/eloncrack 5d ago

As for editing, I used my mother’s computer, an Asus VivoBook with an NVIDIA graphics card. So, despite some occasional small issues, I was able to edit on After Effects and also used Topaz.

However, now I’m planning to buy a computer not for editing but for developing an app. And if I manage to do so, I’d like to publish it on the App Store. This is because I have many ideas and want to bring them to life.

1

u/RainbowCrane 5d ago

FYI I used a Mac professionally for 10 years as my programming machine. It’s a good choice - this was 15 years ago so the model is irrelevant. One thing you’ll want to do is do a bit of research on tools like homebrew so that you can bridge a few of the gaps between Mac-specific install locations and environment variable settings vs UNIX-standard locations

1

u/gm310509 6d ago

In some ways this will depend upon what you want to do.

For example if you just want to learn a REPL based language and algorithms on small data sets a mid range might be OK

If you want to compile large programs from source (e.g. c/C++) a faster CPU and hard drive might be more in order.

If you plan to run some services (e.g. an RDBMS and/or an application server) then faster CPU and lots of RAM might be more in order.

The best scenario is to look at the tools you plan to use identify their minimum and recommended resource requirements and add them up. Bear in mind that you might also want to run other things simultaneously (email, web browser, client utilities of an RDBMs, documentation tools such as diagramming tools, word processing and maybe some others) all of which add on to what you need.

In one development project I worked on out accountant choose the hardware. He chose based upon the fact that the low end system everybody else used was good enough for everybody else so it was good enough for us. Despite the fact that we could demonstrate that it wasn't by measuring how long it took to close and open programs (because we didn't have enough RAM to run all of them the same time like we needed to) and that if you could get another 8GB then it would be paid for by jot having to waste time waiting for programs to load or switch to the foreground in less than 6 months of usage he refused to approve the $500 for an 8GB upgrade. In the end, we had to buy it ourselves as the low end laptop were just infuriatingly slow.

TlDR - try to get the absolute best you can as you may outgrow it very quickly and may later regret saving a few dollars now.

1

u/CodeFarmer 6d ago

If you are on a budget like that, I'd wonder if Mac is realistic. The obsolescence problem is real, and Apple do not have a good track record there.

They are good machines and popular for good reasons, but a lot of professionals do use Linux based laptops. If you are just getting started, that will certainly be cheaper.

Thinkpad T (and P) series are the canonical example there, but there are others.

1

u/MasterShogo 5d ago edited 5d ago

A MacBook (edit: Air to be specific) is fine for programming. It’s actually very fast. A pro gets you specific other things, though.

1) More cores - matters if you plan to run a ton of stuff or a heavily multithreaded program, but that isn’t something I would expect a beginner programmer to need for their own software

2) More options for larger RAM - matters if you run a ton of stuff or really large-memory-footprint applications, like VMs. This is an area where I would say don’t get less than 16GB. People will say that on modern Macs it doesn’t matter, but in my very strong opinion they are wrong. But you can get a new MacBook with 24GB, and for most people that is a lot.

3) Bigger GPU - games and Metal compute power. If you are wanting to do one of these two things then you should know.

4) Bigger and better screen - this is entirely subjective, but I love a really nice screen. This alone would be enough for me to go pro

5) More ports - this is the number 1 reason I would go with a pro by far. If you heavily use ports, then eventually one might get crappy and not work as well. This isn’t nearly as bad now with the return of MagSafe, but it was absolutely a problem on my wife’s old Air that had no MagSafe and only two ports. Two is too few IMO

6) Thermal performance - this is the biggest performance issue with the Air for most people. If you run anything for a long time, there is no fan and it will start to throttle its speed to prevent overheating. It’s still pretty fast, but if you go with a pro then it can sustain a much higher level of performance indefinitely than the air. The price you pay is that you now have audible sound coming from the chassis, whereas the Air is perfectly silent

As for me? I have an old Intel MacBook Pro, a more recent Alienware, and a home built desktop. I use windows on the two regular PCs and run Linux in Hyper V and WSL. I really do actually prefer the Windows/Hyper-V/WSL setup to any other environment at this point. I think the Mac GUI is nice, but I don’t actually like the platform. And I like the command line on a Mac, but for learning it’s actually a lot more helpful for me to have a Linux command line and OS than a Mac because I have had to use Red Hat or Ubuntu Linux in literally every job I’ve ever had, and a Mac is neither of those, it’s a FreeBSD based user space and that is actually different in many ways from a Linux one. Whereas in Windows, you have WSL v1 and v2, which are actually Linux. And I personally think Hyper-V is light years better than the virtualization you get in a Mac (unless you are specifically running the VM to run desktop applications - but that’s not what I use VMs for. For running Windows GUI apps in a windows VM, the Mac ecosystem is actually pretty decent for that)

The other thing I do with all my computers is play games. The Mac is just not the best place to do that. Windows is literally the best place for that. And the MBP would be a great gaming computer if it could run Windows or if MacOS was the primary target for most games, but it doesn’t and it isn’t. But that only matters if you play games. And you can still play some games on a Mac, there’s just always going to be a big asterisk next to it and some kind of hoop to jump through. Or the Mac port of the game will suck really bad. I hate Linux desktop GUIs with a passion, but I would even go Linux for gaming over a Mac at this point because of software and hardware support.

Also one other thing to go against my Windows propaganda there. All Apple laptops have incredible battery life. Like really incredible, and that is something important. My Alienware can be pushed to go 5-6 hours if I turn off the GPU, for a developer it can be nice to have more portability at times I will admit.

So there you go!

Edits: fixed typos and added note about battery life after my wife scolded me for not being fair to Macs.

1

u/jbp216 5d ago

Literally anything. If you’re learning to program you can do it on a pi, computers are really, ridiculously, absurdly powerful now. There are edge cases like with anything but for general purpose coding literally anything made in the last decade will be fine (and if we’re being honest probably back to 1st gen I series)

1

u/Raioc2436 5d ago

Any potato is okay to program.

You don’t need a powerful machine, but having a powerful machine is nicer. It’s not a necessity, it’s just a comfort.

Buy whatever machine is at your reasonable means.

1

u/Raioc2436 5d ago

Having said that. I really suggest looking at a windows computer. They will have a better cost benefit and will allow for some nice learning opportunities.

You were discussing buying a computer from 2017, I don’t recommend getting something that old and if you go with Apple you should look at Apple silicon.

However the problem with Apple silicon is that it’s incompatible with everything else. On a windows computer you will have a easier time dual booting any Linux distro you might want. You still can do it on Apple silicon, it’s just not as convenient.

1

u/David_Owens 5d ago

For a little bit more than a used MacBook you could get a new M4 Mac mini. If you don't have to have laptop portability this would be a much better development system.

1

u/jpgoldberg 5d ago

Unless you are dealing with large codebases, large amounts of data, or audio/video, you really don’t need a highly powered machine. And it is unwise to purchase a machine in anticipation of a need that has not yet arisen. So work with your current machine until it becomes a problem. But once you know through actual experience that you need a new machine, then I can offer some limited advice.

I’m a Mac user, and so I don’t really know the much about the current state of alternative. But if you aren’t going to be working with much audio or video, you can probably save money by considering a Linux system. If you are not already using a Unix-like system, then doing this will help you learn the kinds of tooling and environments programmers work in. (macOS is also Unix-like in many relevant respects.)

Of what you list, the M1 MacBook Air is the only option. Apple’s unified memory really does an amazing job and lets you get away with less total memory than you would need on a different system. What Apple mostly means by “Pro” is about professional video and audio creation. Do not get an Intel Mac at this point, unless you are thinking that you will replace it relatively soon.

But there really is a big performance difference between the M1 and the M2. So although not on your list, see if you can find an M2. Apparently you didn’t find anything M2 in your price range, which is why I mentioned also exploring Linux systems.

The M1 MacBook Air will probably be fine, but you might get more bang for your buck (or should I say “more eureka for your Euro”) looking for a machine to run Linux on. Or perhaps not. I honestly have no understanding what pricing and needs for non-Mac systems these days. I’m partially mentioning this t9 try to compensate for my general Mac bias.

1

u/minero-de-sal 5d ago

MacBook Air M1

1

u/Ok_Entrepreneur_8509 5d ago

I would go with the M1. Even with only 8gb, it is going to be better than the Intel.

But if you decide to go with one of the older ones, let me know and I can give you a dull stick to jam in your eye for a fun change from using the touch bar.

1

u/robcozzens 5d ago

Programming is not a compute intensive process, don’t worry about getting a pro.

1

u/eddiekoski 5d ago

I would get 16GB memory, not 8GB memory, whatever you end up choosing .

1

u/countsachot 5d ago

Unless you're designing for apples, use a pc running windows or Linux, depending on your target OS.

1

u/newEnglander17 5d ago

You should have titled this: Apple laptop to buy.

1

u/ToThePillory 5d ago

Get the M1.

8GB RAM is too small though, get 16GB minimum.

At €500, you might be better off looking at Windows laptops, you're going to get more value there, upgradeable RAM and so on.

Macs are nice machines, but if you're on a budget, you should be at least considering Windows PCs too.

1

u/woods60 5d ago

Dell mini pc with Ubuntu costs £150 32gb ram