There are several aspects to this question. You might be wondering:
- Should I use a PC, or a Mac? And what about Linux?
- Should I use a desktop, a laptop, or a tablet? Can I use my phone?
- I have an older computer. Do I need to buy a new one?
Let’s look at these one at a time.
Should I use a PC, or a Mac? And what about Linux?
The first question mixes together the type of computer with the operating system. I’ll first explain the concepts of this question and the next question before answering.
Personal Computers (or PCs) have been running Microsoft Windows for so long now that we normally think of them as the same thing. But Windows and Linux are just operating systems (or an OS) and you can replace the operating system on a PC with any of several different varieties of Linux very easily.
Apple has been selling various forms of Macs for quite a while too and whether it is an iMac or a MacBook or a Mac Mini, inside a modern Apple computer is the same processor found in PCs. Apple also has their own operating system called OS X and it performs checks to make sure that it is only installed on an Apple computer.
It is possible but difficult to install OS X on a computer other than a Mac. You will need very specific hardware to have any chance of succeeding with this. Windows and Linux are less picky about what type of computer they are running on. The operating system forms the platform of your programming because it is the job of the operating system software to interact directly with the specific hardware computer you are using.
Should I use a desktop, a laptop, or a tablet? Can I use my phone?
So now that you understand the differences between computers and operating systems, let’s add another variable to the mix. Should the computer be a desktop, a laptop, a tablet, or can you use a phone, or some other type of device that is yet to be invented? What about an electronic device such as an Arduino or a Raspberry Pi?
While you can program “for” any of these computers or devices, you cannot always program “on” them. You see, unless you intend to translate your code into the low-level machine code that the processors on these computers and devices can directly execute, you will want to use a development environment (and specifically a compiler) to help you program. Modern development environments (called an integrated development environments or an IDE) are software packages that you install and setup on your computer.
While all desktop and laptop computers have this ability, not all tablets or phones or other devices have the ability to run a development environment. Some devices have restrictions placed on them to control what software is allowed to run. Typically, only computers that can run a full operating system will have the ability to run a development environment. If you have a tablet or a phone with a mobile or limited operating system that can support programming, then I’d really like to see it and maybe make another post with a review. In general, tablets, phones, and other electronic devices are not suitable for programming. The can be programmed. But you will not normally write your programs directly with these devices.
Which one should I use when learning how to program?
Let’s answer the easy part first. If you are learning primarily from home then either a desktop computer or a laptop computer will be fine. If you are attending classes in-person, then you will definitely want some kind of laptop.
Normally, however, when people ask what type of computer to use when learning how to program, it is the operating system platform that is really being questioned. In other words, should you use Windows, OS X, or Linux?
The answer is that it really does not matter which platform you have as long as you can install and run a development environment. It may make a difference for some programming schools. But at Take Up Code, you are learning more than just how to program on one type of platform.
You are learning computer science and that means you will be able to program virtually anything because you will learn the fundamentals of what programming means. And you will learn how to think in your own mind about problems differently. Even if you never intend to become a computer programmer, the skills you will learn about how to solve problems will benefit you no matter what you are doing.
Some of the lessons at Take Up Code will be shown on a MacBook using the Xcode IDE and some will be shown on a Windows laptop using the Visual Studio IDE. The code will normally run on any platform. You can follow along with your operating system and development environment of choice.
I have an older computer. Do I need to buy a new one?
So what about the age of your computer? Do you need a new one? No. Although it will be easier to find development software that runs on newer computers, this is not required. Use what you have. Even if your computer is ten years old, you can still use it as long as it still works. What do you think would have been used back then to learn programming?
One factor that you should consider is comfort. Either when learning how to program or when working on your own projects, you will be spending a lot of time with your computer so make sure that you consider your comfort. Don’t forget to select a comfortable desk and chair and a suitable environment with good lighting and few distractions.
And you may want to use multiple monitors. Programming uses a lot of screen space for writing the code, running the application, researching topics, and reading documentation, etc. Having a large screen or multiple screens really helps. Make sure that your monitors are positioned at the correct height so that you are looking straight without bending your head to far up or down. I use a laptop stand that raises my laptop about eight inches above my desk.
Remember that the computer that you use to learn how to program is just one tool among many. Use what you have and reposition things if you need to so that you are comfortable. Be prepared to learn more than just how to program. This is a new way of thinking and a new way to solve problems.