What is coding? How and where do you learn it?

What is coding? How and where do you learn it?


We can say that in our daily life we ​​carry out a series of fixed and almost unconscious actions that can be written in a schematic way. Let’s suppose, for example, the fact of starting our day in the morning:

We could say that this is something “routine”, or that “it obeys our routine”, that is, a series of fixed actions that we know we are going to carry out day after day for a certain period of time.

This previous example fully coincides with what in computing we call a program, algorithm or code: a sequence of instructions that determine the behavior of the entity that executes the program.

Why and for what purpose to program?

Programming has the ability to express any computation within the reach of the programmer’s imagination, from solving a simple problem such as calculating bank interest, to highly complex applications such as a social network. It can be said that each program covers a need, but also represents an idea and implements a functionality.

An example is WhatsApp. Initially linked to the expansion of smartphones, the idea was to have a reliable form of text communication without the limitations of SMS and its associated cost, with the advantage of working over the Internet. Therefore, regardless of the data rate, communication was guaranteed from any WiFi connection.

But programming is not only focused on the development of softwareIt also allows us to tackle a set of microtasks that we can perform with simple commands, such as searching for common text patterns in text documents. This is what is known in computing as scripting: the creation of microprograms that perform ephemeral tasks.

Pseudolanguage representation of the 'SumaNum' program, summation of integers received by keyboard.
Example of a program that receives numbers from the keyboard and displays the final sum. Author Provided

How to learn to do it?

Writing code and generating programs is done through a programming language. Programming languages ​​are the tools we use as programmers when working with computers, so that they understand what we want to do.

These languages, like our natural language, are made up of a series of syntactical and semantic rules, as well as a series of “common tools” for all of them. In computer science, they are called programming fundamentals, and they cover concepts such as:

  1. Basic elements of a program (instructions, simple data types, operators, variables).

  2. Input and output (reading and writing variables, keyboard input, files).

  3. Flow control.

  4. Conditional structures (if, if else, switch) and boolean expressions.

  5. Loops or iterators (while, until, for).

  6. Error and exception handling.

Starting from 6th grade, a student is already able to fully understand and handle all the concepts related to the fundamentals of programming.


Read more: At what age should you learn to program?


Self-taught programmers

You don’t need any prior knowledge to get started in programming. In fact, some of the most important programmers of the last few decades were self-taught in their early days, and have managed to make very important innovations along the way.

Some illustrious figures in this regard are:

  • Linus Torvalds, creator of the Linux kernel, the basis of the GNU/Linux operating system.

  • John Carmack, co-founder of id Software, responsible for numerous innovations in the field of 3D graphics and computer vision.

  • Margaret Hamilton, responsible for developing the Apollo 11 navigation system.

  • Radia Perlman, inventor of the protocol Spanning Treeessential in network routing.


Read more: Are creative programmers worth two?


So where do we start?

Without a doubt, the best way to start – and the one that is usually used in academic paths – is to learn with a language that uses the imperative paradigm, based on orders or instructions and that is also explicit and restrictive in all its syntax.

In that sense, C and C++ (the latter being an extension of the former) are perfect for the novice programmer. In its simplest form, writing code for these languages ​​is not only readable but expresses exactly what the programmer wants done.

Some examples of this form of programming using C++:

  • “Write the text string ‘Hello’ with a line break” => cout <<“Hello” << endl;

  • “Define a variable for natural numbers” => unsigned natural;

  • “Store the value 2 in the variable ‘natural’” => natural = 2;

  • “Add 2 to the contents of the variable ‘natural’” => natural = natural + 2;

As you can see, there is no room for ambiguity or free interpretation: the programmer specifies what he wants just as he thinks it.

Representation in pseudolanguage and C++ of the program 'Show Numbers'
Program ‘Sample_Numbers’ written in pseudo language and its equivalent in C++ language Author Provided

In addition, it is advisable to use an Integrated Development Environment (known as IDE), which provides the programmer with the necessary tools to write code.

Our recommendation for getting started with C++ would be the Codeblocks IDE, for which we will also need to install the MinGW compiler. On their website we will find the different versions depending on our operating system.

Academic and non-academic opportunities

Nowadays, academic paths are well defined, and it is preferable to follow the technological path. A student who is currently in secondary education has these paths available to him:

Pre-university education

  1. Completion of the Intermediate Technical Vocational Training in Microcomputer Systems and Networks as a prerequisite for the Higher Vocational Training level

  2. Completion of a Higher Vocational Training Degree in Multiplatform Application Development or Higher Technician in Web Application Development.

  3. Through the Baccalaureate route, with the option of a Baccalaureate in Science and Technology as a prerequisite for Higher Level Vocational Training and university education.

University education

The most suitable itineraries are the degrees in computer engineering offered in any of its variants, but the most interesting are undoubtedly the Degree in Computer Engineering and the Degree in Engineering of the Software.

Any of these degrees includes the skills necessary for the design and development of software in all its possible variants. However, the first one trains more generally within the world of computing, while the second focuses on the strict field of software development. software.

Outside of academic channels, we also have many resources at our disposal. Platforms on-line like ToolboX.Academy are designed for a first introduction to this world of programming and computational thinking.

In English, we find communities like StackOverflow (also in Spanish) and various communities on Reddit (r/learnprogramming, r/cpp_questions, specific to C++). Generic searches on Google are also part of the daily life of programmers of all levels, not just beginners.

Of course, there are a huge number of well-structured tutorials (for example, on the C++ reference website) with which we can get started with the C/C++ languages, as well as introductory reference books for undergraduate university subjects.

Programming is now more accessible than ever to everyone. However, computer literacy will only take place when it is officially included in the primary and secondary education curriculum. It is therefore a political responsibility.

Leave a Comment

Your email address will not be published. Required fields are marked *