What is a Computer?

A computer is a device that can store and process information.

Most of the computers we use today are Programmable, which means that we can give them sets of instructions - called programs or software - to change their behaviour.

Embedded Computers

There are computers in lots of the devices that we use every day - everything from cars to cameras, kitchen appliances and toys - these are sometimes called 'embedded' computers. They all need to be programmed, but you generally can't program them using only the software that they already have running. Many of them are in devices that don't have screens, or keyboards. Instead, they need to be programmed using a more capable computer.

Mobile Devices

Phones and Tablets run 'mobile operating systems' which provide lots of functions, but generally speaking aren't designed for writing programs. You can learn to program on an iPad, for example, using an app, but for now at least, you can't write real iPad apps using an iPad. This might change in the near future - I suspect that it will soon be possible to use the iPad Pro to create full apps, but at the moment you still need a Mac computer to do so.

Desktop Operating Systems

In general, to do programming, you will need a computer running one of the three major "desktop operating systems". They are Windows, MacOS and Linux and, from the point of view of the user, they are all very similar.

The task of an operating system is to manage access to the physical resources of the computer - it's memory and processor and inputs and outputs - and share them amongst all the programs that are running at the same time.

All of them provide a filing system for files saved onto disk along with many different layers of software - some programs are always running and some can be started as we need them. They also manage the 'boot' system for powering the computer on and starting up all its systems.

All modern operating systems 'boot' into a graphical user interface from where many of the programs can be run by pointing and clicking, but they also all include a "command line interface" (CLI), which is needed to run some things by typing in instructions, especially some of the sort of tools that programmers tend to use.

Windows is the most popular of the three operating systems by far, but it is also the odd one out because it has a different CLI. MacOS and Linux both include the 'bash shell' and are similar in function to the older Unix OS. Largely due to Line being the standard for web servers, Bash became the standard and Windows eventually provided a way to enable Bash instead of the default command line.

Which Computer?

You should use whichever desktop OS you have available. If you already have a Windows machine, you should install the Windows Subsystem for Linux, so that you can follow along with the vast majority of tutorials which will tell you the Bash commands. It isn't hard to figure out the equivalent Windows commands, but then you're going to need to learn both and, at least while you're learning, it's going to be easier to install the software.

Alternatively you can replace windows with Linux, which is completely free and comes in many different varieties. Mostly Linux is very user friendly but it's still true that you're likely to need to know more about how your operating system and computer actually work to get the best out of it.

MacOS is probably the nicest experience, because you get the most useful elements of Linux, but in a slick, managed package so that things rarely go wrong or need fixing. Also, owning a Mac is a nicer experience end-to-end and, in my opinion at least, well worth the extra. Just buy the cheapest Mac that does what you need it to and avoid the expensive upgrades. Apple also leverage their dominant position with iOS to insist that you have a Mac before you can publish apps to the App Store. Macs are a premium product, though, and if you can't afford one, ignore this advice and get started with what you have.