Windows PC or Mac: Which is Best for Learning to Code?
It is, it seems, an age-old question: which is better - Windows PC or Mac. Although I look at the learning to code aspect of each system, it is too easy to get drawn into the Mac versus PC debate.
IS MAC OR WINDOWS BETTER FOR PROGRAMMING?
It all depends on what you are trying to achieve. There is no right or wrong answer. In many cases it will depend on the preferences of the user. I will therefore approach this blog article from my own perspective having used both Windows and Mac systems for many years.
SWITCHING FROM PC TO MAC
The Mac is, quite simply, a beautifully clean and simple system to use. I was a die-hard fan of Windows and built all my own PCs for many years. I travelled to the local computer fairs each weekend where I delighted in roaming around the stalls looking at the latest and greatest processors, the processors I could never afford to purchase. There was something engaging about building your own PC in those days. Would the system boot up after the case was closed? Would the operating system install? Would all the drivers be recognised? When I look back I wonder how I managed to get anything done with all the time required to build and troubleshoot!
However, about 10 years ago I made the move to Mac and have never looked back. The ease of use and tight integration between the operating system and the hardware have meant that I have had pain free computer use for all of those 10 years. My iMac is always on and the only time is it rebooted is during one of the many power cuts here in Queensland, Australia.
THE PROS OF CODING ON THE MAC
reliability
durability
Xcode can only be run on a Mac
the integration between hardware and software
the Apple ecosystem
the user interface
As mentioned above, the Mac is, in my experience, a solid and reliable system that I can just turn on and begin using. The mainstay of my work is an iMac, and a Macbook Air for when I am out of the office. Both computers are incredibly reliable and an absolute pleasure to use.
The main selling point about using the Mac for coding has to be the access to Xcode and Swift. If you are serious about iOS app development then you really need to consider Xcode. If you want to use Xcode then you need a Mac (I know there are cloud alternatives but you cannot really beat a local install…yet). You just cannot ignore the Apple ecosystem and the massive potential in the App Store.
Apart from Xcode, most of the other software I use is available for Windows. Everything else is cloud based such as CodeAnywhere which is my go to platform when I am out and about. Having the flexibility to work on any computer in any location around the world is a reality I used to dream about years ago.
The stability of the Mac and the lack of maintenance allows me to focus on productivity. I can work quickly and effectively on my iMac or Macbook Air. There is tight integration between then and the use of features such as Airdrop is great for sharing files.
The user interface is a pleasure to use. It is clean, simple, and carefully thought out. There are not layers of sub-menus and unnecessary features that I find on a Windows machine. If you need to dig a little deeper and if you are so inclined then you can use the Unix Terminal. I rarely see the need myself.
I love the trackpad on the Macbook Air. I have yet to experience a PC based trackpad to rival those on the Apple devices. Pinch and zoom are extremely useful when looking at lines of code. I hate (sort of) the Magic Mouse. The ergonomics are just not quite as refined as I expect from an Apple product. I much prefer the Logitech MX Master 2S.
Using a Mac is peaceful. What do I mean by this? Well, I do not have jet plane fans screaming in the background. The iMac is whisper quiet, even when under load. The Air does power up its fans from time-to-time but rarely when just coding. It does struggle with Xcode unless I reboot prior to starting it up. I realise there are great PCs out there these days but nothing engages me as much as the Apple ecosystem and ease of use.
THE PROS OF CODING ON A WINDOWS PC
upgradability
cheaper (initially)
wide array of development tools
The number 1 pro has to be the flexibility of the Windows OS. Being able to load and run just about any piece of software is a real plus.
Windows PCs tend to be cheaper…initially! Be careful though as the build quality will often match the price paid.
If you are a game developer then Windows is still where the action is at. Apple gamers constantly grumble about the lack of gaming availability although there is huge potential. Let’s see what Apple Arcade will bring in terms of development potential.
There are many development tools that are just not available on Apple. However, with many developers moving to cloud based systems this really is diminishing in terms of a reason to stick with either Windows or Mac.
Upgradability of the PC hardware. Simple. Macs are renowned for being extremely inflexible when it comes to upgradability. Need a faster graphics card to aid with rendering? No problem on a PC. Not too easy, and often almost impossible, to upgrade hardware on a Mac. External GPUs are now starting to make a dent in this area but there is still a long way to go to get the reliability for which Apple is renowned.
IS MAC OR WINDOWS BETTER FOR A COMPUTER SCIENCE STUDENT?
I would go with Mac every time. Having owned many Windows laptops and Mac laptops I know that the Mac is, in my opinion, a far superior product. Many will say that Macs are more expensive but the total cost of ownership is not much different. Macs have a higher resale value. I have experienced far fewer issues with my Mac systems. In fact, I have never experienced an issue.
Apple run Back to School promotions each year and usually have reduced pricing or a giveaway. Recently this has been Beats headphones.
The main benefit for me would be, quite simply, the all day battery life and the reliability. I can get 10 hours use from my Macbook Air.
The other thing to remember is that if you want to run Windows on a Mac then you can. Using the Bootstrap functionality you can install Windows and dual boot (read about my recent experience with that below!). The other option is Parallels.
LEARNING TO CODE ON A MAC VERSUS WINDOWS COMPUTER
When learning to code you generally need access to a coding editor such as Visual Studio Code (Mac and Windows variants available), a reliable internet connection, a browser, and an endless supply of coffee. However, I must point out that I must be the odd coder around as I do not drink coffee. (What is your drink of choice when coding? Leave comments below!)
Since most tutorials are delivered via video, this means that a reliable internet connection would seem to be even more important than the computer you choose to use.
Unless you are coding the next blockbuster game release then you probably will not need a top-of-the-line laptop or desktop. An entry level computer will suffice. My caveat to this would be development on Xcode.
At the end of the day it all comes down to personal choice. The Windows PC versus Mac debate has been ongoing for years and I am sure if will continue for many more.
Buy the computer that you believe you will be happiest using. Do not rely too heavily on the words scribbled on the pages of blogs such as this one. Your needs will be different to mine. You will have your own preferences.
If you are thinking about upgrading your computer or purchasing a new one then let me know in the comments below. What will drive your decision?
If you have recently upgraded or purchased a new computer then which one did you go for and why?
WHAT SCREEN SIZE IS REQUIRED FOR CODING?
The bigger the screen the better your experience will be in my opinion. I find myself with multiple tabs open in Visual Studio Code and the 13” screen of the Macbook Air just does not provide the same experience as the 27” screen of the iMac. Having more screen realestate allows me to work much more effectively.
If you are using Xcode then a larger screen really is required. Although panels can be closed, you do really need to be able to have the room to move around. Having to constantly open and close panels on the Macbook Air is a little frustrating.
There are many screen sizes and resolutions available. My personal choice is to go for at least 27” (which fits in nicely with the iMac I use!). However, I also use a widescreen external monitor with my Macbook Air. The 34” ultra-wide monitors such as the one from LG featured below is stunning and allows for multiple windows to be placed side-by-side. For coding, video editing, Photoshop, etc this is a beautiful screen to use.
As I mentioned previously, if you are serious about developing iOS apps then there really is no better route than Xcode. However, it is a beast of a program and comes in as a 6GB download. As a minimum, you will need:
1.4 GHz processor
8GB RAM
Latest OS release
Honestly, I find myself struggling with 8GB RAM and when it comes to compiling (building) the project files then things can really slow down on my Macbook Air. I have learnt that a reboot of the computer prior to starting to work with Xcode helps. However, having the additional resources of the iMac truly makes things development more pleasurable.
Guess what I did last week. I installed Windows on a Bootcamp partition on my iMac. Almost 2 hours to download and install (slow internet connection). There were no installation issues and the process was extremely straightforward despite the multiple reboots. However, once the install had completed I did experience issues with the keyboard - the extended number pad did not work, the sound drivers seemed to be causing glitches (lesson learned…do not wear headphone when testing sound for the first time), and a couple of other minor issues that I had long thought would have been addressed since my last use of a Windows system.
The main reason for the install was so that I could record a demo of software use. All I wanted to do was record a screen capture. On a Mac I simply open Quicktime and record. Not so easy on Windows without downloading additional software.
1 hour later and I had removed the partition. Will I reinstall again? Unsure. I just need a computer that works and it seems that, currently, my best choice is to stick with my iMac.