In my own words and experience, programming languages are development tools that allows a programmer to communicate with a processing unit, like a PC, while describing what a program has to do. There are many types of programming languages, most of cases grouped by paradigm or level.

In this post I will share with you my knowledge about Programming Languages and also some advices when learning a new language.

Programming Paradigms

In programming world there are various paradigms, but esentially the most known paradigms are:

Nowadays, most of the programming languages are multi-paradigm, that means that a language can handle more than one paradigm, for example, Python has characteristics of imperative, OOP and functional programming. Most of times it is beneficial for the programmer, because he/she can take advantage of different paradigms.

Level of abstraction

In programming, the terms “high-level” and “low-level” refers to the level of abstraction and the proximity to the hardware that a language or approach offers. These terms describe the trade-off between ease of use, expressiveness, and control over the underlying hardware.

High Level

Languages that use High Level are more useful to understand and use by a programmer, because this abstraction level is nearest to a natural language as can be English or Spanish. Examples of this could be Python or Java.

Low Level

On the other hand, Low Level means a closer approximation to the hardware, however, this is not as bad as it sounds, Low Level can mean a better hardware and memory use, drastically improving the performance of a program or application. C/C++ and Rust are commonly used languages that offers a Low Level approach.

Languages I recommend to start with

Choose a programming language could be a tedious task, specially if you are a beginner. That’s why I share a list of languages that I consider to be a good option to start with. Sorted by relevance.

Some tips

There is a list of advices that can help you when trying to learn a new language:

My Favorite Resources

When I want to learn a new programming language I usually visit some of these websites: