**First things first**, and will be better that before starting to learn new things about computers and programming, we know where we come from, because this story is full of milestones that have occurred in a very short time (relatively) and if we don't take back may to forget some really important facts.

### Some time ago…

The information has always been present, the problem was what to do with that information and store it for future reference. Primitive man used stones to something so abstract for them as it was counting things and do simple sums. The abacus is considered to be the oldest instrument of calculation, origin uncertain but claimed as its own for different cultures, with this invention it's possible to perform basic arithmetic operations (addition, subtraction, multiplication and division) but also some more *complex* operations for those with experience with it.

Later, and until the first calculators were invented, John Napier (1550-1617), in the year of his death, announced to the world the napierian abacus; thanks to this invention multiplications could be obtained through amounts, divisions through subtractions, multiplications by powers and roots by divisions.

### First calculators

In 1623 Wilhelm Schickard (1592-1635) invented the first automatic calculator, called *calculating clock*; until recently it was thought that the first calculator had been invented by Blaise Pascal (1623-1662), known as *Pascalines*, but this invention dates back to 1642, therefore, is back.

### The Analytical Engine

In 1812 Charles Babbage developed the so-called *difference engine*: a mechanical instrument to calculate tables of functions. Later, in 1832, also Babbage developed the project of the *analytical engine*: a **programmable engine** capable of making any kind of calculations, not just arithmetic, logarithmic or polynomial; its components were: a **memory for 1000 of 50-digit numbers**, an **arithmetic logic unit** for calculations, a **control unit** so that the operations will undertake in the correct order, a **punched card reader** for data entry and a **printer** for output of results. All this we know it, right?

What was the problem? Maybe that Babbage knew how to develop what today might be perfectly called *the father of all current computers*, but he didn't know how to program to get the maximum potential to his machine. And here is where comes Miss Augusta Ada King (1816-1852), better known as **Ada Lovelace**: she met the invention of Babagge and developed a few programs to solve trascendental equations and definite integrals with the Analytical Engine; these programs make use of what is today known as loops, so important statements of programming languages. That is why we know Ada Lovelace as the world's first programmer.

### Improving productivity

We know computing as automatic treatment of information, so the first person who built a machine of this type was Herman Hollerith (1860-1929): he developed an electromagnetic punched cards tab to aid in the summary of the information and, later, the accounting; his first invention did when working at the office of the U.S. Census, he realized that conducting the Census of 1890 still they had not finished the 1880 one, so he invented a machine capable of reading a few punch cards containing information that was obtained from each respondent, these cards were introduced manually in a card reader, which detect the position of drillings allowing mercury to pass through the holes and causing the electrical contacts needed to convert those holes in storable data. Thanks to this invention they could store information about 200 cards every minute.

And here this article ends, if we don't stop writing in time you would get tired of reading and probably drop the story halfway. In the next chapter of this series we will start strong… Learning more about Alan Turin and it's theoretical device known as the **Turing machine**.

Never stop programming!