---
title: How Computers Works
description: Today we use, in some way, the computer in almost every activity in our lives, it could be for work or just fun, but if we think carefully, computers are an invention from the previous century, and have changed our lives.
tags: [Tech, Informatic]
image: /blog/how-computers-works/banner.jpg
imageCaption: An open laptop. Photo by Philipp Katzenberger on Unsplash
date: 2023-5-29
author: Juan Manzanero
rss: true
---

![Open laptop](@/assets/blog/how-computers-works/banner.jpg) _An open laptop. Photo by
[Philipp Katzenberger](https://unsplash.com/@fantasyflip?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText')
on
[Unsplash](https://unsplash.com/photos/iIJrUoeRoCQ?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)_

Today we use, in some way, the computer in almost every activity in our lives, it could be for work or just fun, but if we think carefully, computers are an invention from the previous century, and have changed our lives.

New works have appeared, new careers to study, and new problems to be solved.

However, do we know how computers penetrated our lives? Do we know how a
computer works? How does the Internet work?

Many people use their smartphones to communicate with family and friends and to
share their lives, but they don’t know how all this is possible.

I’m not saying that everyone needs to be a Software Engineer or IT Expert, but
knowing about this could be outstanding knowledge.

## The power of computers

Computers can expand our brains, such things like sends messages to people from
the other side of the Earth, to create an app that speeds up delivery.

All these things are possible by flipping 0’s and 1’s, but how is this possible?

If you've watched The Imitation Code, maybe you know this story.

### Computing Fundaments

Alan Turing was the inventor of the Turing Machine, a simple but powerful
machine that can receive instructions to move along a long tape, changing the
state of each slot. This three things, a head, a long tape and a set of
instructions are the bases for the modern computers.

The head is the Central Processing Unit (CPU), a piece of hardware that can be
used for general purposes, receiving instructions (Algorithm) whose are
transformed to electric pulses, understanding if electricity pass trough or not,
if it's true or false, 1 or 0. All these instructions are saved in a Random
Access Memory (RAM) for a quick access of the work that needs to be
accomplished, and using a Read-Only Memory (ROM) to store persistent data that
needs to be saved even if the computer shuts down.

An algorithm's like a recipe, declaring ingredients (variables) and the steps to
follow to achieve the result (functions).

A variable is an identifier that points to a slot of memory in the RAM, storing
a value that can be a number, a text (known as “string”), a boolean (true or
false), or an object (a set of multiple variables and functions that can be
instanced), etc.

Functions are blocks of instructions that achieve a task, like obtaining your
current location or sending a message.

And maybe you are asking, how do I tell a computer how to do what I want?

### Programming languages

If you try to speak with someone who doesn’t speak the same language as you, you
try to use a translator or use gestures, something that you know that both can
in some way understand, the same is for computers.

Computers are powerful, but they need someone to tell them what to do, this is
work for humans, and to achieve it we use programming languages. With a
programming language you use a specific syntax to tell a computer your desired
task, then you compile that file where you type all your instructions, when a
file compiles, is transformed to a computer nature language (1’s and 0’s) and
then the computer executes the task.

There are different programming languages, and all of them are designed to
achieve specific needs, like the programming languages C and C++, both are
low-level languages, which means that are close to how a computer “speaks” and
are used to control and administrate memory in high-efficient apps, or to
illuminate the screen of your computer.

There is Java, is a language that can create an environment when is compiled,
meaning that can be used on almost every computer.

JavaScript (is NOT Java or something like that) is a language that our browsers
understands, with the help of JavaScript, we can access to a web page and see
nice interactions when we click a button, login with a username and password,
and more.

JavaScript is a high-level language, that is easiest to learn than Java or C,
but not that is worse or better, just resolves a different need.

### The Browser

A powerful software that can access other computers using the Hyper Text
Transfer Protocol (HTTP), it means that thanks to this protocol different
computers can send and receive information to communicate, even if they’re far
away. The browsers receive data in the form of a file, mainly three:

- Hyper Text Markup Language (HTML)
- Cascading Styles Sheet (CSS)
- JavaScript

### HTML

Helps the browser to structure data like texts or images, using a markup
language (tags). The browser can know where to put an input to type your email
or a button to subscribe to your favorite artist.

### CSS

It gives colors and forms to the HTML tags using selectors. It can be used to
change page's background color, change button's rounded borders, modify text
color, and everything your creativity can give.

### JavaScript

Combining HTML and CSS with JavaScript creates an interactive web site, or web
app (like this one). You can for example, add a button that changes the theme to
dark/light, or store items in a shopping cart and show a number of items you
have.

For all this you need to store your files somewhere, letting people access a
computer to download all these files using their browsers, that's the
functionality of servers.

Servers are computers that are connected to the Internet, and store files that
can be downloaded or uploaded using protocols and security rules. Some companies
like Google or Microsoft have multiple centers with many servers in different
regions of the planet, called Data Centers, and can be used with a fee for
storing your web app, these multiple Data Centers are called Cloud.

### The Cloud

Administrating a powerful computer can be difficult, but if you know how to use
it, you can save a lot of money instead of maintaining local computers that need
to be turned on 24/7. Thanks to the cloud we can deliver the fastest apps, and
we can have a 24/7 service for our customers with a marginal cost.

## Computers Changed Humanity

Computers simplifies our daily tasks, software can be easy replicated and
distributed without need of logistics like a tangible product. You just need an
Internet connection to reach someone’s project.

You don’t need a factory or natural resources like wood to produce paper, you
need a group of engineers, UX/UI designers, digital marketers, and more IT
people to reach billions of customers.

The reason that computers are too powerful is that the marginal cost is minimal,
you don’t need to extract something from the earth to build an app, you need a
group of talented persons that uses their brains to create solutions.
