Guide

Step By Step

Getting Started

What's the problem?

I am guessing that you have gone through your whole life without ever having had the need for programming. (Don't worry if you know some programming. You will only go through this guide faster, but you can check around for other resources).

That is very natural. People have gone for millennia without programming. But just as in History, Ada is here to change the Game.


"But why are my teachers, professors, employers... so obsessed with this skill they call programming?" You may ask. Well, to be honest, they are just interested because it makes you faster and better at your job.

"But why should I care about programming?" If you are anything like me, because it allows you to be very very lazy, and still do everything right. 😎

Let me explain with an example.


Let us imagine some daily mental activity that you would find annoying. Something like adding two big numbers.

You can tell a machine to do that job (that's why calculators are so popular) but first you must be able to tell him how to do it.

But how can we communicate with the computer? That is THE question. πŸ’€


There are two ways to solve this issue:

Teach humans to communicate as computers. πŸ€– ( *Cough* *C++ough*)

Or teach computer to communicate as humans. πŸ˜‰

Thank Thor (god of Electricity and Hammers, so I guess he's the ideal God for Engineers) that someone thought the second one out and created π’œπ’Ήπ’Άο»Ώ.


So going back to the example, this is the information we need to give the computer is:

    • You have two numbers, with certain values.
    • You have a third number you have to calculate by summing the previous two.
    • You have to put the answer in display (so I can see it!)

Here we can see a diagram to visualize the workflow, and a program that runs that algorithm.

Press Execute to run it.

You can compile to make a program on your own computer following the instructions on the compilers page.

Allow me to get technical here for a second.

To be honest, computers are very simple. At least, the CPU is.

I need to explain something about the CPU, the Brains 🧠 of the computer.

It only knows of two things:

Data and Instructions.

(Odin's beard! Did we started the boring part already? Sorry about that.)

Well, let me just say this few points:

The CPU reads data (stored in variables) and inputs instructions which tells him what to do with that data.

Because of this, the CPU has a place to store the variables. The name of this storage place varies from place to place: heap, dynamic memory, scope pool... I like calling it simply SOFT MEMORY. I understand it as "This is what I'm working with. My workspace. If it's on my desk, I can use it."

In contrast, Hard memory is the Memory Disk, an USB, the internet... Basically, the shelves and drawers where you keep what you are not using right now.

In the Soft Memory of a program, we have to declare (preparing) the variables we are going to work with before running the program.

The CPU also has a list of instructions waiting to be called. It's the instruction queue.

This is why a program in Ada is composed of two parts:

    • Declarations, where we prepare the workspace objects.
    • Implementation, where we do the work. Also called body or algorithm.

Going back to our example, can you find which one is where in the program?


Most Programming languages consider that you don't need to understand the computer to know programming. This is also true for Ada (it wouldn't change much if you didn't know about the CPU and I just kept the Workspace analogy, right?).

But Ada was designed from a Computer Science viewpoint, and it tries to stick to certain universal and fundamental principles.

This principles not only make it more efficient with the hidden technology of the computer, but it also provides Scalability, Abstraction, and stability.

It's what a mathematician would call elegant.