Devot Logo
Devot Logo
Arrow leftBack to blogs

Confessions of a Technology Vocabulary Learner

Tina Lj.9 min readAug 22, 2024Business & Life
Confessions of a Technology Vocabulary Learner
Tina Lj.9 min read
Contents:
Technology vocabulary (for all people)
Tech terms that our tech people learned when they started

If you’re a non-tech person navigating the tech world, you’ve probably found yourself with a big question mark on your face more than once. I sure did at the beginning. In fact, I used to carry around a notebook where I scribbled down all the unfamiliar terms I encountered. (Yes, I know—a notebook in the digital age!)

But as someone who’s always eager to learn, I made it a point to ask everyone around me about anything I didn’t understand. Luckily, a lot of tech-savvy folks at this company were more than happy to help me out (at least they pretended to). Things got even more serious when I started working on our website and diving into technical SEO. And when I started to learn tech SEO I understood I need to know a lot of technology vocabulary.

I envisioned this blog as a living document—a place where I can continually add tech jargon or where colleagues can contribute words they didn’t know when they started. Maybe this blog will help you better understand all those tech jokes flying around on Slack. And one day, I might even organize it alphabetically!

Technology vocabulary (for all people)

Programming language vs framework

A programming language is the basic tool used by developers to write instructions that computers can understand. Examples include Python, JavaScript, and Java. It provides a structured set of rules and syntax that allows developers to write instructions that a computer can interpret and execute.

On the other hand, a framework is a set of tools, libraries, and best practices bundled together to make development in a particular language faster and easier. For instance, React is a framework for JavaScript. The framework offers a structure that helps streamline development, especially for larger applications.

Git

Git is a distributed version control system that allows developers to track changes in their codebase over time. Git enables multiple developers to work on the same project simultaneously without overwriting each other's work.

It creates different branches where developers can work on their own versions of the project. Once the changes are ready, they can be merged into the main branch. Git also provides a detailed history of all changes, making it easy to revert to previous versions if needed.

GitHub

GitHub is a web-based platform that hosts Git repositories, providing a collaborative environment for software development. It extends Git's functionality by adding features such as issue tracking, pull requests, and project management tools.

GitHub is widely used in both open-source and private projects, allowing developers from around the world to contribute to a single codebase. For many developers, GitHub serves as both a portfolio and a place to contribute to and learn from a vast array of projects.

API (Application programming interface)

An API, or Application Programming Interface, is a set of rules and protocols that allows different software programs to communicate with each other. Think of an API as a bridge that connects two applications, enabling them to share data and functionality.

For example, when you use an app on your smartphone to check the weather, it likely communicates with a weather service’s API to retrieve the latest data.

Heroku

Heroku is a cloud platform that allows developers to build, run, and operate applications entirely in the cloud. Think of it as a place where your app lives, allowing it to be accessible over the internet without the need to manage the underlying infrastructure.

Developers often use Heroku to create staging environments that mirror the production environment. This allows them to test their applications in an environment that closely resembles the live version.

On Heroku, you can deploy different branches of your application (like a development or staging branch) to separate environments, where you can run tests, try out new features, and ensure everything works as expected before pushing changes to production.

AWS (Amazon Web Services)

Amazon Web Services, commonly known as AWS, is a cloud computing platform provided by Amazon. It offers a wide range of services, including computing power, storage options, and networking capabilities, all of which are accessible over the internet.

Developers use AWS because it provides everything they need to create and manage applications without owning or maintaining physical computers. For example, if a company wants to launch a new website or app, they don’t need to buy and set up servers. Instead, they can use AWS to rent space on Amazon's servers, store their data, and run their applications.

PULL request

A PULL request is a feature of version control systems like Git that allows developers to propose changes to a codebase. When a developer makes changes to the code in their own branch (a separate line of development), they create a pull request to notify others about the proposed changes.

This allows team members to review the changes, discuss potential improvements, and eventually merge the changes into the main codebase. Pull requests ensure that code is peer-reviewed before it becomes part of the project.

Jira

Jira is a tool used for issue tracking and project management, particularly within software development teams.

In Jira, projects are broken down into issues or tasks, which can be assigned to team members, prioritized, and tracked from creation to completion.

Code refactor

Code refactoring is restructuring existing code without changing its external behavior. The main goal of refactoring is to improve the internal structure of the code, making it cleaner, more efficient, and easier to maintain.

Over time, as software projects grow and evolve, code can become cluttered or inefficient, often referred to as "technical debt."

Graphical user interface (GUI)

A graphical user interface (GUI) is the visual part of a computer application or operating system that allows users to interact with the software through graphical elements like windows, icons, buttons, and menus.

You probably already knew what this was; you just didn't know the name. Or the acronym.

Before GUIs, interactions with computers were done through command-line interfaces (CLI), where users typed text commands. GUIs revolutionized how people use computers by making them more accessible and user-friendly, allowing anyone to use software without needing to learn complex commands.

Object-oriented programming (OOP)

Object-oriented programming (OOP) is a programming paradigm that organizes software design around objects rather than functions or logic. In OOP, objects represent real-world entities and are instances of classes that define the properties (attributes) and behaviors (methods) of the objects.

For example, in a game, a class might be "Car," with attributes like "color" and "speed" and methods like "drive" and "brake."

Central processing unit (CPU)

The Central processing unit (CPU) is often referred to as the "brain" of a computer. It is responsible for executing instructions from computer programs by performing basic arithmetic, logic, control, and input/output operations.

The speed and efficiency of the CPU significantly impact a computer's overall performance. CPUs are found in all computing devices, from desktop computers to smartphones. In essence, whenever a computer performs a task—whether it’s running a game, processing data, or loading a web page—the CPU is the component that carries out the necessary instructions to make it happen.

Tech terms that our tech people learned when they started

We often mistakenly assume that if someone works in tech—whether they’re a developer, QA, or in another role—they automatically know all the tech jargon. But the truth is, even with a strong technical background, no one enters the field knowing every term by heart. After all, they weren’t born with a tech dictionary in hand, right?

I spoke with some of our tech team members at Devōt about their early challenges when they first entered the IT world. Not surprisingly, most of them struggled with understanding abbreviations and acronyms that are so commonly thrown around in tech conversations.

SaaS (Software as a service)

SaaS, or Software as a service, is a software distribution model where applications are hosted by a service provider and made available to customers over the internet.

What does that mean? Well, instead of buying and installing software on your computer, you access it through a web browser. Users can access the software from anywhere; updates happen automatically, and there’s no need to worry about installing or maintaining the software on your own devices.

One example of SaaS that we use at Devōt is Slack. It is hosted and managed by the service provider (in this case, Slack) and accessed over the internet. Even though you have the Slack app installed on your devices, the core of the service—your messages, files, and the actual running of Slack’s functionality—is handled on Slack’s servers in the cloud. The apps on your devices are essentially interfaces that connect you to this cloud-based service.

TDD (Test driven development)

Test-driven development (TDD) is a software development technique where developers write automated tests for a piece of functionality before writing the actual code to implement that functionality.

The process typically follows a cycle: write a test for a new feature, run the test (which should fail since the feature has yet to be implemented), write the minimum code necessary to pass the test, and then refactor the code while ensuring that all tests still pass.

TDD helps ensure that the code is working as expected from the start and encourages writing code that is modular, flexible, and easy to maintain. It also reduces the likelihood of bugs in the software by catching issues early in the development process.

DDD (Domain-driven design)

Domain-Driven Design (DDD) is a way of creating software that focuses on making sure the software truly understands and reflects the business it’s being built for.

Instead of just jumping into coding, developers spend time getting to know the business in detail—the rules, processes, and terminology that are important to how the business operates.

So, first, developers work closely with people who know the business well (like managers or experts) to learn exactly how the business works. They want to understand the specific needs and challenges that the software needs to address.

After understanding the business, developers create a "blueprint" for the software. This blueprint is based on real-world business concepts and language, so the software will work in a way that makes sense for the business.

Finally, developers use this blueprint to build the software. Because it’s based on a deep understanding of the business, the software is more likely to meet the actual needs of the business.

Metaprogramming

Metaprogramming refers to writing programs that can generate or manipulate other programs as their data.

In simpler terms, it's a technique where code writes or modifies other code during runtime, allowing developers to automate repetitive tasks and create more flexible, dynamic programs. It enables a program to treat other programs as its data, making it possible to generate code on the fly or adapt to changing requirements.

Design pattern

Design patterns are standard solutions to common problems software developers encounter when designing software. They are not finished pieces of code but rather templates that can be applied to solve particular design problems in various contexts.

Environment on demand

The environment on demand refers to the capability to create and configure a development, testing, or production environment quickly and as needed, typically through automated processes or cloud services.

For instance, developers might spin up a testing environment on the cloud to run tests on a new feature without affecting the main production environment. Once the tests are complete, the environment can be taken down to save resources. This flexibility speeds up development processes, reduces costs, and allows for greater experimentation and testing, ensuring that code works as expected before being deployed to production.

Continuous integration (CI)

Continuous integration (CI) is a software development practice where developers frequently integrate their code changes into a shared repository, often multiple times a day.

A build server automatically tests each integration, ensuring that the new code does not break the existing codebase. The key goal of CI is to detect and address bugs as early as possible, making it easier to maintain the quality of the software. By integrating code regularly, teams can detect errors quickly and locate them more easily.

Continuous delivery (CD)

Continuous delivery (CD) builds on the principles of Continuous integration (you have probably seen CI/CD) by ensuring that the software can be reliably released to production at any time.

After the code is integrated and tested (through CI), Continuous Delivery automates the deployment process so that the latest version of the code is always ready for release. This means that every code change that passes the automated tests can be deployed to production automatically or with minimal manual intervention.

Version control

Version control is a system that records changes to files over time, allowing multiple developers to work on a project simultaneously without interfering with each other's work.

The most commonly used version control system today is Git, which enables developers to create branches or separate lines of development and then merge these branches back into the main project.

Version control systems keep a history of changes, making it easy to revert to previous versions if something goes wrong. This history also provides valuable insights into how the code has evolved over time, which is crucial for debugging and auditing. Version control is essential in any collaborative software project, ensuring that code changes are tracked, managed, and merged efficiently.

Spread the word:
Keep readingSimilar blogs for further insights
Importance of Simplicity in Business
Business & Life
Tina Lj.5 min readSep 13, 2024
Importance of Simplicity in BusinessAre you searching for solutions to problems that don’t even exist? Let’s explore why simplicity can be the driving force behind business success.
Get Ready to Connect with Us!
Business & Life
Ana K.2 min readAug 28, 2024
Get Ready to Connect with Us!This year, Devōt is attending the Strategy Summit and HLTH 2024 conferences.
How Mastering Your Interpersonal Communication Skills Will Strengthen Your Team
Business & Life
Tina Lj.9 min readAug 16, 2024
How Mastering Your Interpersonal Communication Skills Will Strengthen Your TeamIn this blog, discover why it's important for leaders to set aside their egos and develop strong interpersonal communication skills to enhance team success.