Understanding Computer Basics
Computers have become a part of every day life for most people — we work on the computer, use it for entertainment, talk to our friends and family. You're using a computer right now to read this. Even our phones and cars have turned into computers.
We all know (mostly) how to use a computer, but do you know what a computer really is? What makes a computer work?
And do we always recognize a computer when we see one?
The hardware of a computer is all the physical stuff that you think of when you think of a computer — it's the computer itself.
Computer hardware can be (roughly) broken down into several categories:
The Processor (or CPU — Central Processing Unit) is the thing that actually does the computing. It is the computer.
Many computers today have dual-core or multi-core processors. This just means that they have several processing units running in parallel.
Trying to understand what a CPU actually does is a little difficult, because it goes to the heart of what computing is from a theoretical basis. Basically, it is processing very simple instructions at a very fast rate. These instructions are so simple that they can be carried out mechanistically (computers don't "think" or "reason" — they just follow instructions). Each individual instructions would seem meaningless:
- copy the digit in this place into this other place
- add the digits from here and there and write the result to another location
Of course the instructions aren't written like that — like a music box doesn't have instructions that say "play Greensleeves," but the mechanics of the music roll result in a particular melody being played.
These very small, very simple, very mechanical processes happen so fast that millions of them can quickly add up to something interesting and meaningful for human users.
Input is anything that can provide information or instructions into the computer. This includes:
- game controller
- touch screen
- gyroscope (motion sensor)
- GPS chips
- other computers on a
Output is anything the computer sends data to. For example:
- screen or monitor
- haptic feedback (vibrating)
- other computers on a network
Storage and Memory
Storage is something that data (information and instructions) can be written to and retrieved from later. This makes them both Input and Output, but also something extra.
Physical disk drives, SSDs (solid state drives), or SD cards are all examples of Storage. They are persistent or long-term storage, sometimes called ROM. ROM stands for "Read-Only Memory." This is a little bit of a misnomer because you can also write to ROM. (The name is a bit of a historical leftover, and it is going out of fashion — but you do still hear it.)
The CPU uses a temporary memory storage system, usually called RAM, or "Random Access Memory." RAM acts as an extension of the CPU itself. When people talk about the "adding memory" to a computer, they usually mean add RAM. All other things being equal, more RAM leads to a faster computer. (Imagine how much faster you could be if you could hold more things in your immediate attention at the same time.)
The Connecting Bits
Focusing on Input, Output, Processing, and Storage helps you see all the major components of a computer system, but it leaves something out — how do all these different components connect and communicate with each other?
Most computer systems have something usually called a motherboard. This is a circuit board that acts as a hub for all the other thing. The CPU is often built-into it, there are slots for the RAM, and connectors for all the other input and output sources.
Software is code — instructions for the computer — that is stored as data. When people think about "software," they usually think about apps, but there's a lot more layers of software than that.
Firmware is the lowest level of software on a computer, and you hardly ever notice that it is there or think about it (except when manufacturers push out a "firmware update" to your phone).
Different types of CPUs are different. The underlying ideas are the same, but they implement various computing features a little differently. But operating systems can't be built separately for each processing chip — it would be a nightmare of incompatible software.
Firmware provides a standard interface between the operating system and the underlying hardware.
The operating system is the computing environment — Windows, Mac OSX, or Linux for laptops, desktops, and servers; Android, iOS, or Windows Phone for most phones.
The operating system manages the computer system, provides a file management system, handles user permissions, connects different apps together and lets them communicate, provides a graphical user interface, and a number of other things. The operating system is the single most defining aspect of your computers environment.
Drivers are little bits of programming code that control specific devices — your printer, your scanner, your keyboard. They provide a software interface to them so that the rest of the computer can have access to them — either able to receive input from them, or send output to them, or both.
Utilities are usually relatively simple programs that manage various routine computing tasks, like checking for updates or scanning for viruses.
There are also libraries, or packaged sets of functionality that are shared by many different programs. For example, there might be a math library which is used by your spreadsheet software, your accounting software, and the calculator app. Most computer systems have hundreds of these different libraries that are used by many different applications.
Apps are the programs we actually want to use on a computer — everything from an email client or web browser to a complex virtual reality game.
We can't really talk about computers today without talking a little bit about networks.
A network is just a linked set of computers. If you have a WiFi router in your house, and connect several different devices to it, you have a network. (In fact, if you only connect one device to it, you have a network — a router is really just a small computer.)
In a network, each computer can communicate with the other computers. Each computer (or rather, each computer's administrator) can make certain files, applications, devices, or other functions available to the public — that is, to any other computer than can communicate with it.
One of the things that a computer can provide access to is other computers that it is also connected. So, for example:
- if Computer A can communicate with Computer B,
- and Computer B can communicate with Computer C,
- then Computer B can allow Computers A and C to communicate with each other.
And that (more or less) is the essence of the internet. The internet is a network of networks (of networks):
- small clusters of computers have direct access to each other,
- and those small clusters have access to each in local networks,
- and those local networks have access to each other in regional networks,
- and so on until the entire world is connected.
There are, of course, a number of additional systems and technologies that make all of this work. For example:
- the DNS (Domain Name System), a globally-distributed "address book" that allows your computer to find a particular resource or file using a human-readable web address (URL).
- several communication protocols (HTTP, FTP, SMTP, among others) that standardize the way different types of information are transmitted
- encryption protocols for making sure that private or sensitive communication is secure
- routing algorithms that help data moves form one place to another as efficiently as possible
Computers Are Everywhere
We tend to think about computers as a particular set of connected devices — a monitor, a keyboard, a mouse, the CPU, maybe a disk drive of some sort.
We've started to get over that notion with the advent of tablet computers. And we're mostly vaguely aware that our phones are actually just small computers. But the reality is that all sorts of devices we use on a regular basis are computers.
If you have a printer connected to your computer, you actually have two computers. The printer has its own CPU, its own operating system, its own firmware, its own application software. The input comes from your "regular" computer, and the output is the stuff that gets printed on paper, along with the little LCD display, and whatever messages bubble back up to your desktop monitor.
Your WiFi router is also a computer, not just a computer periphery device. It has a CPU, an operating system, and all the other things.
If you have a car built in the last decade, there's a good chance it is a computer. Not just that it has a computer in it, but that the entire machine is a computer — with the engine, breaks, steering, climate control, and every other system acting as input and output devices connected to a CPU with an operating system and various software applications running on top of it.
And On and On
The major drive from the technology industry today is to turn more and more things into computers. Those cool new digital thermostats? It's a computer. Lightbulbs that connect to the internet? Computer. Baby monitors that you can check from your phone? Computer. Stoplights that monitor traffic? Computer. A wearable device that helps you have good posture? You guessed it — another computer. Your TV, your DVR, your Bluray player, your Roku or Chromecast device, your DSLR camera, the ATM at your bank, the electronic voting booth — all computers.
Why Does It Matter?
What's the difference between a periphery device that can connect to a computer (like a microphone or keyboard) and a device that is, truly, a computer?
A periphery device is, by nature, a single-purpose item. A mouse can only do one thing — provide input. A monitor can only do one thing — display images.
A computer is a multi-purpose, generalized system that can do anything. And if it is connected to the internet (as all these devices are), it can be hacked. Network-connected printers have actually been used more than once as an attack vector to deliver malware onto desktop computers. And there have been numerous cases of hacked baby monitors.
Knowledge Is Key
As more and more of our world is computerized, it is important that we have a clear understanding of what a computer is, what they can do, and when you even have one. This allows you to take adequate precautions — whether that means keeping your anti-virus software up to date, or switching to non-computerized baby monitors.
We cannot stop the increasing influence of computers in our lives, but — if we are aware and knowledgeable — we can make informed decisions about what technology we invite into our lives, and how to mitigate the risks that it may present.
Further Reading and Resources
We have more guides, tutorials, and infographics related to computers and the internet:
- The History of Web Search Engines: read the fascinating story of a 5 decade trip to the modern search engine.
- The Ugly Face of Online Fraud: like everywhere else where humans exist, there are people who will try to scam you. Learn more here.
- Cryptography Resources: when you really need privacy online, there are ways.
What Code Should You Learn?
Confused about what programming language you should learn to code in? Check out our infographic, What Code Should You Learn? It not only discusses different aspects of the languages, it answers important questions such as, "How much money will I make programming Java for a living?"