The 8 Most Important Acronyms Every Programmer Should Know
The Royal Spanish Academy defines an acronym as:
Acronym whose configuration allows its pronunciation as a word; p. eg, ufo: unidentified flying object; ICT, information and communication technologies.
In fact, the most common name given to the Academy itself is also an acronym: RAE: -)
Acronyms are words created from the initials of other words. They are everywhere today, and one area where they are most proliferating is in the technical world, where we are especially given to specifying and simplifying. In fact, they are so common that there is an acronym to describe acronyms, the mythical: TLA (Three Letter Acronym), or three-letter acronym, which is the most common. When you see TLA out there, you already know what it means...
Although there are hundreds of them, there are a few that are absolutely essential and that we should know if we are dedicated to the world of application development. Without excuses.
Let's see the most basic below:
It is the abbreviation of Graphic User Interface or graphical user interface.
It is any graphic artifact that allows users to interact with an application using icons, buttons, visual indicators, etc... in contrast to the more traditional interfaces based on text, or the most advanced currently based on voice or interaction through movements.
By the way, it is pronounced "güi", (as in "pin güi no", that is, the "u" is not silent, as in Spanish).
This is used to describe any system that allows you to create some content at the same time seeing how it will look when it is working. The most common case is a rich text editor in which, as we write, we see exactly how the final result will look when we are going to print it or convert it to a portable format.
It refers to the application programming interfaces or Application Programming Interfaces. It is any set of functions and methods that are exposed by a programmer for use by other programmers, either by directly referencing a library or by exposing it through some protocol (for example HTTP to access through the internet), etc..
An important feature of an API is that it is independent of the underlying implementation. In other words, an API is like a black box for the programmer who uses it, so that as long as the exposed part does not change, what is done underneath and how it is done does not matter.
So, if we create an API in a language (for example Java) and expose it over HTTP as a REST API (another nice, slightly more advanced acronym, which stands for Representational State Transfer, we won't see it today), if we later change the way it works or even we write it again from scratch with a different programming language, as long as we don't change the exposed part (that is, the functions and their parameters and the way to access them), for all intents and purposes it remains the same API for developers who use it.
An Integrated Development Environment or IDE is an application for developing applications that goes far beyond what a simple editor offers. It offers many advanced tools to help us in our work, such as debuggers, visual design, performance analysis, application testing, collaboration tools, object and class inspectors, integration with other tools...
Some IDEs are valid for working in several languages and others are focused on a specific platform (such as Java).
The best known are Visual Studio, Eclipse, Netbeans or IntelliJ IDEA.
An IDE will be your best friend in your work, so choose one well and learn to take full advantage of it.
An SDK is a Software Development Kit. It is a set of APIs (see above), code examples and documentation that software manufacturers give to other programmers so that they can develop for some platform.
As a general rule, SDKs are released for an operating system (Windows, iOS, Android...), a development platform (such as.NET, Java) or a game console (XBox), to give common examples.
We could think of an SDK as the intermediary that a manufacturer puts between its systems and the applications that third-party developers create. If you program professionally, sooner or later you will have to fight with someone.
This is one of the few acronyms that are translated and used in its Spanish version. This is Object Oriented Programming (OOP) or in English Object Oriented Programming (OOP). It is necessary to know both because they are commonly used.
It refers to a programming paradigm in which code is created by defining "objects" that simulate real objects and their behavior and interact with other objects.
For example, in a billing application there would be a class (a pattern object) that would represent the invoices and another class that would serve to represent the different invoice lines. When creating an invoice, an object of type Invoice would be created from the previous class, as well as a series of objects of type LineaInvoice to represent each line. To calculate the amount of the invoice, a method of the object that represents it would be called (for example 'CalcularTotal', which would in turn call a method of each line that would transparently calculate the partial amount taking into account quantities, taxes, etc..., and that would be in charge of making the sum of all of them to give the total amount.
The OOP is based on several principles that every language must comply with to work with objects, such as encapsulation, inheritance and polymorphism.
Most modern programming languages include OOP among the paradigms they support.
7.SCM or VCS
No programmer worth his salt should work without using a source code control system or Source Control Management, also known as the Version Control System. You will see that the two terms are used interchangeably, but in both cases they refer to the same thing.
It is a system that allows us to store the source code of the programs as well as any other related file that we use, and monitors and saves all the changes and different versions of each file that have been saved explicitly.
Are you new to programming and do not know where to go? Consult our online advisor 😉
It is a very powerful tool that is essential when collaborating with other programmers on the same project, but it is also almost mandatory even if we work alone. Thanks to its use we can go back to any point in the past in our applications, trace the changes until we find the one that has caused something to fail, work separately on new features without influencing the main product until they are finished, etc...
If you don't master at least one, you're already late. In any company they will ask you for it, and if you work alone you can still get a lot of use out of it.
The best known are Git, Mercurial, and Subversion. The first two are also distributed systems, this means that it is possible to work with them without connection to a central repository, and they are more flexible.
Git, created by Linus Torvalds, is undoubtedly the one that is taking the cat to the water and the one that is being used the most around the world, thanks among other things to the GitHub project , where everyone has open source today.
This term refers to Test Driven Development or Test Driven Development.
Test-driven development involves testing/testing all the code you write to ensure that it works, that it covers all cases, and that it doesn't interfere with other parts of the application that you may not have initially considered.
But TDD goes beyond that, as it is a philosophy that development really starts with testing. That is, a TDD development would imply following, more or less, these steps:
Although it may seem counterproductive to follow this process, there are many studies that show that in the long run it is more efficient than the traditional method, since it helps to better design the code, better take into account all cases, and have fewer errors. This makes the code more robust and easier to maintain, and saves time because there are fewer bugs to fix, increasing quality.