Computers for beginners - So what is a computer?

You may often hear "computer" to refer to a desktop personal computer or maybe a laptop, but technically a lot more devices in fact contain a computer. Routers, servers, DVD players, games/video consoles, ATM's, smart phones and many other smart devices are all examples. But what actually is a computer?

The technical explanation:

A computer is a machine, device or system that can be instructed (commanded or programmed) to perform sets or sequences of arithmetic and logical operations on encoded information, called data, typically in a faster and more accurate and efficient manner than humans can. A true computer is versatile (or flexible) in its usage and takes in two kinds of data - a set of instructions and the data to perform the commands on, then outputs the results to one or more specified locations. Most computers are electronic and work with digital data, but a few are mechanical or use unconventional mediums like water, work directly with ternary (base-3) or even analogue data.

Originally computers were very primitive, being no or little more than a programmable or automatic calculator, powered by a hand-crank. The name "computer" derived from the phrase "computare" or "compute", meaning to "calculate". Despite the greater capability of computers today, they fundamentally do more of the same thing - number crunching. This is because information usually has to be broken down to discrete values, and numeracy, virtual or not, is essential to sequencing and applicable logic. Processing information often involves arithmetic operations and binary (or any kind of digital information) depends on all this. Still, a computer is expected to make decisions according to a condition, and direct information (often in electrical signals) somewhere, thus "move" data and even "communicate". Thus, computers are a little more than "things that compute".

Key components:

As a system, a computer generally has at least three key sub-systems - a CPU or processor that has built-in functions and conducts most of the work, at least one form of memory to hold data (including commands) and an Input/Output (I/O) where data can be taken to or from another device or system.

Any device that runs software is a computer, or relies on one. Software, or programs, is basically a set of instructions/commands (called code) of which to perform, but sophisticated software can also be considered as a set of blue prints and also comes with data included. Software is usually stored in binary to the computer, often one or a few bytes (8 bits each) per command, which directly correlate to digital commands to the processor, however software developers usually write the code with more human-friendly text which then gets optimised and built or compiled into so-called byte-code. Some software gets compiled to byte-code that other software can run (emulate), while others have to be written as the target CPU's Instruction Set Architecture (IS/ISA), or language, which the CPU or CPU's family can understand.

The analogies:

One can envision a secretary, or office worker, with a set of tools - a pen, a calculator of some kind, paper and access to a filling cabinet. The secretary is given a set of information and some instructions, and they routinely conduct these calculations or data processing with the given commands or orders from an executive. The worker can store these complete papers into a filling cabinet, fetch more from it, make copies or pass them to someone else or have them collected. You can imagine that finding forms from the cabinet takes time, as well as searching for the desire piece of info, compared to remembering them - this is similar to why hard drives (for example) are not often used as RAM. If the worker goes to sleep, their working memory gets all but wiped clean, but the large quantity of data stored in the cabinet is safe and sound and ready to be picked up by them or another worker. Multi-core processors (or similar) are like offices with multiple independent workers, which maybe have their own desk and tools, but may have to compete with others while accessing the same cabinet, or batches of papers that's taken in or out of the office.

Another analogy which may be more familiar (and tasty) is a restaurant; which has customers (users), orders for dishes (commands or software functions), waiters (busses and interfaces), chefs and cooks (CPU's), recipes (software in memories) and ingredients (data to process). Each cook moves the taken ingredients about to the intended destination, use tools, etc and assembles the "cooked" pieces together ready to be collected. This processed food (data) is carried out by the waiter or servant to the intended location - what the customer does with it from then on is up to them. Software is analogous to the written (and memorised) recipes, but when executed it dictates the operations commanded by a conductor - or often the chef in this case.

An orchestra can be seen as computer and program too. The conductor is the CPU's control unit, the tempo is the CPU clock speed, the music sheet is the set of instructions and/or data and the players are parts of the Arithmetic Logic Unit and such which follow, in sync, the given score and output the interpretation with sound. The music notes are very much digital instructions, set as discrete values, even though the sound produced is analogue.

Animal brains can also be defined as a computer to a loose extent, however fundamentally a computer doesn't have to store data for the long term or emulate (run) Artificial Intelligence.

Informal and inaccurate synonyms:

Desktop, PC (computers are not exclusively PC's), data processor, CPU, workstation, mainframe, electronic brain, AI.