June 6, 2016

Journeyman Notes: Basics of Computers ( the very very basics)

Journeyman Notes: Basics of Computers ( the very very basics)

As a prerequisite to the UT full-stack development bootcamp I will be diving into this summer, I was encourage to go through a basic CS 101 class and I chose one offered by Stanford University online and taught by Nick Parlante. It is a basic course that does a great job of introducing various topics like RGB values, the 'for' loop, the 'if' statement and what/how a computer is and works on a basic level. As someone who historically and who continues to ponder the origins of things this course was a great primer into the world of computer science. The class is free, self-paced and great for anyone with the slightest interest in computers. I would recommend looking into it. You can register here Stanford University Online Courses-CS101.

Hardware

Building a foundation from the ground up is important so let's start with the computer 'hardware' itself; the physical parts. Again this is a very basic and brief overview. What is a computer? Wikipedia defines a computer as:

"A computer is a general purpose device that can be programmed to carry out a set of arithmetic or logical operations automatically."

There are three major parts to a computer: CPU, RAM and Persistent Storage.

  • CPU or the Central Processing Unit
    • It is the brains of the computer and where the 'code' is run,
    • The CPU runs billions of simple operations per second
  • RAM or Random Access Memory
    • The scratch pad of the memory aka 'Temporary Memory'
    • Works quickly and can retrieve data in nanoseconds
    • Is 'volatile' and only lasts as long as the power is on (if you haven't saved and your power goes out it wipes your RAM clean)
    • Starting your computer or opening a program are all handled by RAM
  • Persistent Storage
    • Permanent memory stored on a disk or flash drive
    • Data can be stored as a magnetic pattern on a spinning disk, a HARD DRIVE
    • Data is stored as electrons in a chip, a FLASH DRIVE
    • RAM is committed to persistent storage for example in a word document when the user 'saves' the document

CPU Image
Image courtesy of Nick Parlante - Stanford University Nick's Homepage

Bits and Bytes

Storing files is essential for any computer. One (1) Bit is the smallest unit of storage. A bit can either be stored as a 1 or a 0. When you hear 'computers are just 1s and 0s' this is what they are referring to. The data that the RAM retrieves and manipulates is in the form of bytes.As you see below when the number of bit increases the number of patterns doubles

Bits Image
Image courtesy of Nick Parlante - Stanford University Nick's Homepage

While bites are the smallest measurement of storage the most common measure of storage are Bytes and are made up of 8 Bits. eg. 0 1 0 1 1 0 0 1. One byte is is large enough to store a single letter like 'b'. Some common file sizes that you will see are MB or MEGABYTES which is roughly 1 million bytes and GB or GIGABYTES which is roughly 1 billion bytes.

Software

Now that the foundation has been set with hardware on to the programs that we use every day, also knows as software. Basically, software is an enormous sequence of computer instructions or data that the CPU (hardware) runs. When a program is opened it is loaded into the RAM and then the CPU runs the machine code.

The picture below courtesy of Wikipedia shows how a user interacts with the computer and software.

Software Image

The above is a very quick and basic overview of some of the important pieces that make up a computer. However given that I am new to this I hope what I have covered is sufficient at least for the time being.

The myth is that computers are extremely intelligent but the truth is they are not actually very smart. They are only as smart as humans program them to be. The one thing they can do that humans can't is perform millions of tasks instantly. It is humans that give computers their power and we should seek to use it as a tool to enhance our daily lives. Check out this video on Paul Ford's Bloomberg article "What is Code?" that summarizes nicely what a computer is.


Shout Outs