Top 10 Technical Terms Every Software Engineer Should Know

Search for a command to run...

No comments yet. Be the first to comment.
If you're a software engineer, I can imagine that you've heard the term "compiler" a lot whenever you're in the process of coding something. Especially when you're getting an error. š The compiler can be a friend or an enemy, depending on what you'r...
AI has transformed how I work as a technical writer. Large tech companies are developing and sharpening these tools, but some of them are better than others depending on what you want to accomplish. T

I've been writing professionally for 3+ years, and on this personal blog for 5+ years. Throughout this time, I've built a large network made of developers, other technical writers, solutions engineers

Iāve been writing online for almost five years, with a professional focus on technical writing for over two years. If you struggle to create technical content that is easy to digest, this article is for you. Where do I start? If you donāt know where ...

LinkedIn is the only social networking site purposely built to help job seekers. Over the years, LinkedIn has evolved by offering two types of experiences: Job searching Content creation This article will describe how to maximize your LinkedIn fo...

In the last 12+ months as a technical writer, I've worked on several projects highlighting three technical writing elements. This article will introduce you to: Information Architecture Docs-as-code Content strategy Information Architecture (IA)...

Some days ago, I asked on my Twitter some technical terms that every software engineer should know, I received a couple of interesting answers.

Let's dive in and see what these terms mean.
API stands for Application Programming Interface.
An API is a way to interact with external software or resource.
An API is an abstraction between two components. These two components are an application and a web server on the other side. The API will serve to handle data transfer between the two components.
A compiler is a program that turns a high-level language (such as Java) into a low-level language (machine code) that the computer can understand.
Related: What Are the Advantages and Disadvantages of a Compiler?
A cache is part of either hardware or software that temporarily stores information. We use cache to improve performance, especially when there is a need for constant access to data.
A client is a piece of hardware (or software) that uses resources that a server makes available to use.
A server is a computer program that serves as a provider of information. It makes resources available to the client.
A Client-server model is a computer architecture where the server delivers the client's resources.
Related: Client-Server Architecture Made Easy (With Examples)
Refactor means changing the structure of a piece of code without affecting its behaviour and functionality.
Related: What is "Code Refactoring"?
Related: Ten Rules to Refactor code
HTTP stands for HyperText Transfer Protocol.
It is a communication protocol (rules and procedures for computers to communicate).
HTTP is how we transfer information over the World Wide Web.
Unit Testing is software testing where software engineers test the smallest "uni" of a piece of software.
I've put these two terms together, but they're not exactly the same.
A framework is a structure from which you can start creating software.
A library is a set of reusable code, and the software engineer decides when he needs to use a library.
Load Balancing is a concept you'll often hear when talking about System Design.
It is a process used to spread the network traffic across several servers.
We use load balancers to address performance and availability issues, especially when handling many user requests.
CI stands for Continuous Integration.
CD stands for Continuous Delivery (or deployment).
Continuous Integration/Continuous Deployment is a set of rules, principles and procedures to deliver applications to end-users by including more automation in the development process.
When software engineers create software, they do that through different "scenarios" before the product reaches the end users. Those scenarios are known as environments.
In software engineering, there are different environments:
Development environment: you can run the code on your local machine without harm.
Staging environment: this environment is a copy of the end application. Software engineers use this environment for testing purposes. Any change doesn't affect customers' data.
Production environment: this is the end product that customers use. Any change can affect customers' data.
A hotfix is a fix that software engineers do urgently when they need to repair some issues in the current release, and they can't wait 'til the next release.
A code smell is a sign of a problem with the code written. This problem may or may not be neglectable, depending on the coding standard set by the team.
Examples of code smells are:
Lazy classes: classes that do too little.
Long methods: methods that do too much.
In many cases, code smells can be fixed by refactoring code.
A feature flag is a software engineering approach to turning on and off a specific functionality during runtime without the need to push new code.
Feature flags are helpful to deliver more functionalities to users faster.
For example, if software engineers want to expose a new feature, instead of releasing new code and making the functionality available to 100% of users, they can expose the feature to a smaller number of users.
Exposing the feature flag to a smaller number of users allows software engineering to understand how users will interact with the new functionality.
After reading this article, you will know some of the most used technical terms among software engineers. If this article is helpful to you, you can subscribe to my FREE weekly newsletter.
Until next time! šš¾
Additional resources: