Programming terms you need to know
We love to come up with acronyms, confusing terms, and strange phrases to describe our work in our industry. For those of us who know what these terms mean, it’s an easy (and quick) way for us to describe what we do, which can take a long time otherwise.
But what happens when you are new to the programming world? If you are new to programming, you’ve probably already heard more than one term that makes no sense.
I’d like to explain these terms in easy-to-understand language in this article so you know what they mean when someone says them.
Error message displayed and used internally by systems to identify that a record was not found. The term 404 gained popularity as an error code and message displayed when a given web page does not exist.
Many well-documented error codes are standard for the HTTP protocol (web protocol). You can read more about them here .
Agile development or agile methodology
Refers to a group of methodologies based on iterative development to build efficient and solution-oriented products and services through the collaborative effort of self-organizing and cross-functional teams with the inclusion of the customer/end-user.
A process or set of rules or instructions to be followed to either perform a calculation or solve a problem. Though the term is generic, it is commonly associated with computer algorithms.
Examples of algorithms could be:
- A sequence of steps needed to mail a letter
- Steps required to calculate taxes
- Instructions to solve a Rubik’s cube
- Code to sort a list of words alphabetically
API (Application programming interface)
An API is a set of rules, routines, protocols, and tools for building software applications. APIs are the language that systems or programs use to communicate with each other.
Companies like Facebook, Google, Twitter, and others build public APIs so that other developers can build applications and services around their products.
Your own Twitter mobile app, an application to upload videos to your Instagram account, or displaying the location of your restaurant on a Google map on your website, are examples of APIs.
In simple terms is a technique that allows a program or application to continue its operation while waiting for other tasks to be completed.
A typical example in web development is the ability of a website like Facebook to allow the user to, for example, read your post feed while the messenger chat is still loading.
This technique is now widely used in modern websites and applications.
This term is ambiguous and can have different meanings. An attribute generally refers to information about an element. It could be an element on a website, design, or something else.
Back end / backend / back-end
The part of a computer system or application that the end-user is not directly accessed or used typically responsible for storing and managing data.
An API is a common example of a backend system.
A backend developer is a person responsible for developing backend services.
Boolean (or bool)
A boolean is a specific type of data that has two possible values. It can be either true or false.
In Git, a branch is a new/separate version of the main repository, it contains a copy of all the files and history at the time of separation, without necessarily duplicating all the contents, and that allows to merge later all the changes made to the branch back to the main repository.
There are multiple reasons why you may want to use branches. There are even theories on how to use branches efficiently. I describe one of those in this guide on git branching .
A “Build” is the process for which source code (readable by humans, coded in programming languages) is transformed into machine code (readable by computers).
Different programming languages, operating systems, and particular hardware would have various tools and processes to build software.
Not probably the one you know from your garden, but a bug is a flaw, error, or misbehavior that occurs in an application and prevents it from running as expected.
A cache is the temporal storage of data and information to help with faster load times from repeated operations.
Say, for example, that you have an algorithm that calculates German taxes by following thousands of steps (yes, German law can be that complicated 😜) and takes a few minutes to compute because of its complexity.
Without cache, each user that calculates taxes would have to wait a few minutes to complete this. But with caching, the first user would perform the actual calculation, while other users with the same “tax criteria” will benefit from accessing the previously calculated results, thus getting their results almost instantly.
Another great example is browser cache, the temporary storage of websites that your browser does to reduce its time to reload the same site. Have you ever noticed that the first time you enter a site, it may take a few seconds, but if you hit refresh, it is much faster? At least it should be if the site is coded correctly.
Give it a try to this site.
Camel case is the practice of naming variables, functions, etc., by capitalizing all words except the first one. E.g.:
A CSS class is simply a name that is given to a group of CSS properties. For example, we could create a CSS class with the name
main-title, which will set the font to be big, bold, and blue. That way, anytime we make use of the class, the element will take on those properties, and if we make any change to the attributes in the class, it will automatically change for all those elements that implement it.
Class (Object-oriented programming)
In object-oriented programming, a class defines a structure for creating objects consisting of variables or attributes and functions or methods.
Each of these objects is then called an “instance” of the class.
Sounds complicated? Let me illustrate it for you.
Object-oriented programming is a whole topic that can be better understood when studied individually. Even though the concepts are the same, implementation can vary from programming language to programming language.
Cloud computing is the on-demand availability of computer system resources such as data storage and computing power without the direct and active management by the user.
In the past, if you needed a server to run your website, you had to buy a physical computer, set it up and maintain it. Today you can go to a cloud provider and get an already set up computer with a single click.
The most commonly known cloud computing providers are AWS, Google Cloud, and Microsoft Azure.
CSS (cascading style sheet)
CSS is a web technology and markup language used to style a website or web application. By style, we mean adding colors, borders, sizes, fonts, animations, etc.
Action by which we change the source code to improve the application’s readability, scalability or maintainability, or performance without changing its logic.
It can naturally come that code refactoring is needed when code is messed up, but it is not the only case. Updates in dependencies, new language features, new paradigms, or simply more optimal solutions found can be perfectly good reasons to do so.
Refactoring is an essential natural step toward productivity, don’t think of it as a waste of time.
Programming is complex, and people can make mistakes, or perhaps there are more optimal, cleaner ways to do things, but how would we know?
The best way to detect these circumstances and learn from them is by having others read your code, and code reviews are simply that.
Though they can be controversial for some people, as many of us don’t like to receive corrections on our work, code reviews are a wonderful practice when done right, rich with enhancing experiences and learning.
I wrote a dedicated article while working for Zeiss on this subject which I highly recommend you to read. Here is the link to the article: https://blogs.zeiss.com/tech/the-culture-of-code-reviews-zeiss/
A programming test consists of a simulated problem developers need to solve by writing algorithms or applications.
They are well known for their use during interviews to evaluate candidates, so much that there is a whole industry around preparing yourself for the coding interview .
In addition, code challenges are fun, so they are used in competitive programming (kinda like programming as a sport), or some people solve them just to practice coding and learn algorithms.
I enjoy them quite a lot, and I even have a section on solving the coding challenge here on this blog.
Command-line (CLI) / terminal
It is an application that allows you to enter commands to perform specific tasks. What you can do will depend on the operating system and CLI programs you have installed, but the possibilities are huge.
Developers love interacting with the CLI as it is much easier and faster than opening different visual applications for each task.
In git, is the action of adding your changes to the local repository. It is usually accompanied by a commit message that describes the changes. Though this last is usually misused, having a proper commit message is very important .
Continues delivery, continues development / CI/CD
It is the automation of the build and deployment process to simplify how teams and organizations can distribute their software fast and securely.
Anything you look for you can find on Google, but how does Google know what each website contains? Well.. Google crawls each website from time to time to read its contents and store it in their databases so that you can later retrieve it.
It is the practice of protecting digital systems and information from unauthorized access.
A system built to store, organize, and retrieve data. There are multiple types and providers of databases. The most common databases engines are PostgreSQL, MySQL, Oracle, Microsoft SQL Server, DynamoDB, BigQuery, and Table Storage.
Is the field that studies data, duh! I bet you did not expect that. Data science combines computer science and statistics to produce information and insights from data.
Popular programming languages for data science include Python and R.
It is an organized way to store information that can be used efficiently for a particular purpose.
To generalize the idea, say you have a huge collection of books, and you are setting up a new place to store them, but you want to make sure that you find it fast when you want to read a book.
One idea could be to simply put one book next to the other in the order they are unloaded from the truck, but then, when you need a book, you will have to look one by one to see where it is located.
Now, another idea could be to store them alphabetically. If you know the book’s name, you can effortlessly search for it. But what if you simply want an action book?
As you get different requirements, the most optimal way to store and access the book changes, and thus your system to store the books should adapt to the new requirements. Each of these different systems are called “data structures.”
To be more specific and efficient, computers catalog information according to their basic types. Is it a text, a number, or something else? That classification is a data type, and though they can vary from programming language to programming language, there are some well-known types in each of them like numbers, strings (text), boolean (true or false), arrays or lists, etc.
Code written by developers that is not used anywhere in the application or externally. This could happen because functionality or features were removed without cleaning up all the dependencies in the code.
It is a good practice to remove such code when detected to keep the code clean, and if you ever need it again, remember you have it on your git history.
A set of practices, philosophies, and tools that combine software development (dev) and IT operations (ops) to increase the efficiency and speed at which teams and organizations can deliver applications and services.
Deployment encompasses all the tasks and activities required to make software systems available for use.
Endless loop / infinite loop
An endless loop is a sequence of instructions that will continue to run endlessly unless aborted by an external event. It could be intentional (e.g., in-game development), but it is often the case that they are produced due to errors in the code. A wrong conditional, a missing break, or an incorrect variable assignment are typical cases of such mistakes.
Event, Event Listener
In certain situations, it is necessary to trigger actions after certain user or system interactions, e.g., the user moves the mouse, clicks on a button, the clock ticks a new second, etc. Those moments are called
events, and an
event listener is a connector that allows developers to plug custom logic or algorithms when one of these actions occurs.
Note that different events will be available depending on the platform, software, tools, etc.
It is a network security device or software that monitors and filters incoming and outgoing network traffic based on pre-established security policies.
A framework is a set of tools, libraries, design, and structure that help developers build products. Not to be confused with a library (though it is quite common), a framework does not provide only functions and routines but also opinionates on how to solve certain problems.
A function is a group of instructions that performs a specific task when called. It can return a value, but this is not necessary. It is made to fulfill a purpose and can be reused.
Functional programming / FP
Functional programming is a programming paradigm (that I actually practice and love) that follows practices such as composing pure functions, avoiding shared states, mutable data, and side effects.
Front end / frontend / front-end
It refers to the part of an application or website that the user sees and interacts with. It usually captures users’ input and interacts with the back-end.
When working on development projects, it is essential to store copies of your work so that it doesn’t get lost and track changes and allow for collaboration.
Git is a free and open-source distributed version control system designed specifically to serve that purpose.
It is the current standard for the market, and knowing it is a must for pretty much any software developer position.
Though it can be hard to understand at first, you will love it once you dominate the basics.
We recommend that you check out our git concepts guide and our advanced git tips to look like a pro .
Github is a platform that offers git as a service. It is extremely popular in the open-source community, given it is free to use for such projects.
The platform also has free options for organizations and teams and paid services with extra features.
It is a fantastic platform with incredible growth.
GUI (graphical user interface)
GUI is the result of the front-end development and is the image of the application or website.
HTML (HyperText Markup Language)
HTTP (Hypertext Transfer Protocol)
HTTP is the protocol for the web that describes how browsers and servers communicate to send and receive data. Have you ever noticed that 99.9% of the websites you probably visit start with either http:// or https://? HTTPs is the secure (with encryption) version of HTTP.
IDE (integrated development environment)
It is a software solution that provides a comprehensive set of tools aimed to support developers in developing applications and websites.
In comparison to code editors, IDE provides the code editor interface and integration with git and other version control systems, compilers, build automation, test integration, etc.
Programming language of the web, though in recent years, it gained popularity not only to build websites and applications but to build any kind of software, from CLI tools, desktop, and mobile applications, to the interfaces in cars and even space ships (seriously, look it up).
JSON is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate.
JWT or JSON Web Token is a standard used to identify user identity between client and server. They contain information about the logged-in user, and it is transmitted between the FE and the BE, or even between different BE systems.
The user information cannot be forged or altered as it is protected by encryption. Thus, it is a safe mechanism that enables it to become an industry standard.
Snake case is the practice of naming variables, functions, etc., by separating words with a dash (-). It is very common in URLs. E.g.:
A collection of files, programs, routines, scripts, or functions that solve specific problems and help developers gain speed, security, and efficiency when writing code.
The configuration and tools in the developer’s computer allow him/her to run, test, and debug code changes before they are deployed to servers or distributed to other computers/environments.
Memoization is a technique used to improve the performance of an application by caching the result of costly computational functions so that when the same function is called again using the same arguments, the result is provided from the cache instead of performing the calculations once more.
In git, merge refers to the action of, well, merging two sets of changes into a final result. It is commonly used to merge either two branches or local changes with remote changes.
Meta tag / metatag
In web development, a meta tag refers to information provided by a website that is not intended for users but for other systems such as browsers or search engines like Google.
Say you want to share a link on Facebook. Have you noticed that FB can sometimes create a lovely snippet of the link? The information from the snippet is gathered from specific metatags.
NPM (Node package manager)
Some NPM packages are not meant to be installed, for example, packages that allow you to set up a new project. We can use NPX to download the code and run the script without keeping it installed.
Nulls represent an intentional absence of value.
OOP (object-oriented programming)
OOP is a computer programming model that organizes software design around data or objects rather than functions and logic. An object can be defined as a data field with unique attributes and behavior.
Open source / open-source
Open-source is publicly available code to reuse, repurpose, distribute or build upon, and it is the proud gem of developers.
We all love open-source projects, we all love to collaborate, and it is impressive how sophisticated and amazing some of these projects are.
It is a technique in which two developers work together on one computer (or virtually, though it is not the same experience).
It is common for junior developers to follow these practices with developers of higher seniority, but it is not the only case that can be fruitful. Senior developers can also benefit from this technique by sitting with other developers.
I guess four eyes and two minds can really see and think better than the two individually.
It is the action of transforming data into a workable format. For example, when you retrieve data from an API, the data is transmitted as text (or string), even when the data represents a JSON object.
If you want to work with that data, you must parse the string into an object.
Pascal case is the practice of naming variables, functions, etc., by capitalizing all words. It is very common to declare classes. E.g.:
A plugin is a software, library, or module that can be added to another application, framework, or software with the end of increasing its functionality, security, or features.
pull is the action of updating your local repository from a remote source. It is the inverse action to push.
push is the action of sending all your commits to a remote repository, so it is backed up and available to other developers in the team or that have access to the repository.
👀 maybe something will show up here in day…
Think of it as basically a folder that contains all the source files of a project (including its history of change), and it is stored in some location you can access to read those files.
Very common when we talk about a git repository, meaning the allocated name for the project on a git server.
When building applications or websites, we can’t ignore that nowadays, people will access them from different devices such as phones, tablets, or computers.
Responsive design allows for developers to build software that adapts its contents to fit into the different screen sizes without building different applications for each.
Representational state transfer (REST) APIs are a way to transfer information over the HTTP protocol, following rules and conventions.
SaaS (software as a service)
It is a software licensing model in which software is licensed on a subscription and made available on the internet.
Servers are computers running software that execute specific tasks, such as delivering websites, APIs, databases, etc.
A sitemap is a web page that lists and organizes all the pages on your website in hierarchical order.
Search engines like Google use it to know what to crawl in your site to get a full picture. Though they don’t only rely on it, it is a good starting point for them.
Snake case is the practice of naming variables, functions, etc., by separating words with an underscore (_). It is common in some programming languages like Python and JSON responses from APIs. E.g.:
Spaghetti code is a term used to describe code that is very hard for humans to read and understand, mainly because of how the developer or developers wrote the code.
It can be caused by different reasons, including changes in scope, the evolution of requirements, code written by multiple developers over long periods, lack of programming style rules, or developer experience.
A string is a specific type of data that represents text.
👀 maybe something will show up here in day…
Undefined is a primitive value assigned by default to a variable that has just been declared and which value has not been provided.
UX designs the user experience by thinking about how the user will interact with the software and making it pleasant and optimal for the target audience.
UI design is about using the right typography, images, colors, and other visual design elements to give a look to an interface that is attractive and usable.
👀 maybe something will show up here in day…
A website’s bare-bones structure can even be a sketch on a napkin. No fonts, colors, or images. This layout is the first step to testing the idea before content and design are added.
👀 maybe something will show up here in day…
👀 maybe something will show up here in day…
👀 maybe something will show up here in day…
Today, you learned the necessary language to understand the tutorials, articles, and books related to the industry.
Even though the list here is quite impressive, programmers are making up new terms all the time, so if you don’t find a particular term in this list, don’t get discouraged. You are just a google search away from finding it.
And by the way, if you are having trouble finding something at Google, check out our guide to leveling up your Google search .
Thanks for reading!