Intro
I have been trying out Linux Mint and Ubuntu recently, I tried some Linux distro some years ago too. Back then I wasn’t into programming, I just like tinkering around, and I always have a Puppy Linux USB with me. I really do try, even now I’m more capable of programming and give it a go one more time – I find myself always coming back to Mac, or Windows.
Updated on 6 May 2025:
The first part is for programming beginners. If you are familiar with programming, jump to this section to read a fellow programmer opinion.
Starting off to Learning Programming
Conclusion
Use Mac – and I’ll tell you why from my experience.
Why Not Linux
- Difficulty
Mac is a consumer grade operating system, which means a lot of its features and user interfaces are very user-friendly. Most applications have an installer for you to download, click, install, and you’re good to go.
Linux on the other hand is largely text-based if you want to do anything with your pc. Don’t believe people who said Linux Mint is very much Windows like. It is to a certain point, but if you ever want to install anything that’s not built-in or available in software manger (which you will), you will need to figure all the how’s, searching and trying the commands people said worked for them but might not work for you – to just install a simple program that’s available on macOS and Windows one click away.
- Time Consuming
To continue on the previous point, if you ever try to install something, you will need to spend a lot of time tinkering around. Especially, finding the alternatives you were familiar with on Windows or Mac that’s not available on Linux. That sounds great and all because you are working on code using Terminal most of the time, but the thing is you can use all that time to build something already using code such as JavaScript, React, SQL, Python, etc. The code that you use in a job or for building a website or an application. I’m not saying you won’t use bash, it’s just not necessary.
- OS Hiccups
If you bought a device that includes Linux out of the box, that’s great. If you install a Linux distro using a device originally running Windows or Mac, you will most probably face some hiccups running the OS. There are chances the OS will work nicely, but there’s always something here and there you need to fix. To name a few – maybe zoom occasion freezes, maybe keyboard brightness is not working on your laptop, slower Wi-Fi, etc. Because Linux kernels and drivers are largely community contributed which is great, but it also means they held no responsibility for your laptop, you have to figure out the why and how by yourself, using code. A lot of the time, these issues are caused by hardware incompatibility with the Linux distro.
- Community
Major Linux distro like Ubuntu and Linux Mint have the largest user base. If you are just starting to use Linux, it is strongly advised that you pick one of the two, because more users means more solution to issues. However, Mac has way more support than Linux. Either just on Apple website or you can find the precise solution for your model of MacBook much more easily.
- Learning Programming
A lot of the programming tutorials are built for Mac and Windows, even though most of the time we’ll work in VSCode, you still need to interact with the OS terminal for some tweaks and Linux just works a bit differently. You can always find solutions and alternative to your problem, but again these things are not necessary to know if say you just want to be a front-end developer.
- Personal PC
To me, Mac is a personal pc, Linux is not. Many of the built-in features in Mac are so easy to use and highly regarded, especially if you have an iPhone, you can copy and paste across your Apple devices, airdrop etc.
- All Roundness
You can do everything on a Mac you do on Linux, but not vice versa. For example, if you want to build a mobile app for iOS, Xcode is there for you. If you want to use VSCode, of course both offers that too. If you prefer command line, Mac offers terminal too.
Bottom Line for Beginners
Mac is arguably more robust, all rounded, trustworthy without tinkering and straight forward for your programming needs as well as personal needs. I can only suggest you to use Linux if you simply don’t like Apple or costly device. But again, you can always get a used MacBook. It’s worth just getting a MacBook to not use Linux. Haha, I know I am biased.
Nonetheless, wish you successes.
Code on.
Extra paragraphs for the seasoned programmer
What I have written above is for those who has no prior or little experience in programming. And my main point is that macOS is more straight forward to kickstart anyone who’s learning programming, and in the meantime a mac can take care of your personal needs. If there are too much road blocks, it can be discouraging to the learners, which might lead to quitting.
However, if you’re comfortable with programming, things can be different.
The following part will be more technical…
So, you’re familiar with programming and used to Linux, which one should you really choose?
Personally, I still prefer an M-series MacBook over other machines, and I have gotten so much done in the past few years on this M2 MacBook Air.
Hardware wise, it is a fast and stable device with stellar battery life, awesome trackpad, quiet keyboard, decent screen, quiet device and built-in audio speaker.
Software wise, it has been hassles free, running smoothly, and I can get any software on my Mac very easily be it just a download or with brew.
I’d admit I started off learning programming with an old MacBook Air 2015, and continue on the MacBook route ever since. But it is mainly for the sake of making iOS apps. If you are not into making native Apple apps, you do not need to buy a Mac. Which leads to the following first point.
What kind of programming do you do?
Mobile Apps; Apple Apps
Do you want to make native apps for Apple devices? If you do, get a Mac. The word native is crucial here, because technically you can write apps for Apple devices using React Native with Expo, they have a cloud compiler to do the Xcode compiling for you. So, you can use a Linux or Windows machine to do the programming, and submit it to Expo cloud to compile it for you. However, in reality it is always much better to just get a Mac, even an old one. Building locally can allow you to oversee your code, therefore make changes a lot easier and straight forward.
If say you mainly do websites, or backend server, you can get any computer you want, even Windows. There’s no graphical requirement for such programming tasks, so an old Lenovo ThinkPad can do that just fine.
You don’t need to worry about Android apps. You can program them on any platform anyway.
Games
However, if you do game programming or has a need to run or build language/machine learning model, it is advisable to get a powerful pc with Windows/Linux over Mac. You will get more bang for your buck. Let alone to say Unreal Engine 5 performance is subpar comparing to Windows computer last time I checked, it is because it’s just not optimised for Apple Silicon yet.
Unless, you are doing programming in Godot, or Unity. A MacBook is also good enough for these lightweight game engines.
Software
Docker
Using Docker is easy, you got docker desktop for macOS with a .dmg. Double-click to install and you’re good to go.
Local Postgres
Postgres.app is the same, easy-peasy.
Simulator
You can get iPhone or iPad simulator on a MacBook, no matter the programming framework. Flutter, React Native, SwiftUI, etc, you name it, it works on MacBook. You can also install Linux in UTM to get Ubuntu running in your Mac, but not vice versa.
Coder Editor
Well, every IDE is on every platform nowadays.
Bottomed Bottom Line
So, the key question to ask yourself is this: Do you want to make mobile apps for Apple devices or not?
You’ll have to get a MacBook just to get a full Apple apps developing experience, even if you’re using a cross-platform framework. It will just make life much easier.
I don’t like Apple walled garden and unnecessary markup for extra storage, but they do make great products.
What I suggest you to do is that, if you have only a Windows pc now, install an Ubuntu or even Linux Mint to see if you like it. If you do, keep on using it until you really need a Mac.
I am also an advocate for getting the computer you really want. It can make you want to work, just because the device itself is enjoyable to use.
Side Notes
More about Apple Apps
A few things to keep in mind before you decide:
- Only a MacBook that runs the latest OS can develop with the latest Apple API
- For example, things like AI, can only be developed on Apple Silicon mac.
- Vision OS can only be developed on Apple Silicon mac.
- Machine Learning can only run on a physical device, not on a simulator. – You’ll need an iPhone/iPad to test your app if you have implemented on device machine learning model. It will just crash if you try to run it on an iPhone simulator.