Embracing the world of coding often means delving into a sea of software engineering terms.
Why do developers love this language? Maybe it’s the joy of confounding folks in management or Product, but let’s not dwell on the why for now.
Just know, developer jargon is all around us. Those well-versed in it, like tech leads and senior developers, don’t even realize how ingrained it is anymore.
If you’re starting out as a junior developer or planning to soon, you might be concerned about one thing – what do you do when you’re lost in the jargon?
I’ve been in your shoes, and despite scouring the web for help, I couldn’t always find the answers I needed.
This guide won’t cover every term, but it’ll equip you with enough common language to navigate as a junior dev. Who knows, dropping terms like “containerization” or “feature creep” in a dev meeting might even earn you a nod of approval from your tech lead.
1- A/B Testing
A user experience research technique where two variants of a feature (A and B) are randomly assigned to a population of users as a way to collect consumer data.
2- Agile Development
Agile is an iterative software development methodology that focuses on creating small, functional bits of code and deploying them as regularly as possible. The goal is to build software in a modular and repeatable fashion to keep the development process as inline with consumer requirements as possible.
AJAX is a commonly-used web technology that allows for data to be sent and received between web applications and interfaces. It’s common in Progressive Web Applications.
Common techniques or design patterns in software that are known to lead to issues or buggy code. Common antipatterns include God classes, repetitive code, lengthy methods, and so on.
Apache is a company that creates and maintains a number of programs developers use to build software, namely Apache’s open-source HTTP server.
API, or application program interface, defines a protocol by which a programmer can connect one software program to another. This is how software programs that aren’t inherently linked can communicate with one another.
Atlassian is a company that creates a number of productivity and development-related software products that many development teams use, notably Jira, Confluence, and BitBucket.
Amazon Web Services (AWS) is an umbrella company for Amazon’s various cloud-computing services. These are common in the web development industry because of Amazon’s pay-as-you-go model, making it easy to deploy a small application without too much cost.
Azure is similar to AWS but is Microsoft’s cloud-computing service. It’s common in enterprise applications and is well-known for its robustness and various features.
Bootstrap is a modern CSS framework that’s commonly used in web development to simplify the process of responsive web design.
11- Best Practice
A software best practice is widely-accepted technique that is known to be successful and effective. An example of this would be DRY code, the idea of keeping your code as readable and maintainable as possible.
A bug is piece of a program that doesn’t function as expected – the term was originally coined in the 20th century when it was observed that actual insects would get sometimes stuck in the inner workings of a computer’s hardware, leading programs to malfunction.
13- Build Tool
A build tool is a software services that automates the process of compiling and linking programs together. Popular options include Gradle, Maven, and Ant.
Gradle’s build automation process in a nutshell (from Gradle.org)
Bytecode is a program’s source code that has been compiled into low-level code that computers understand. From there, bytecode can be further processed into machine code, the lowest-level form of code a computer can interpret.
15- Continuous Integration
Continuous integration is the practice of merging work from many developers (across multiple teams or platforms) into the working, production pipeline for a software.
16- Cloud Computing
Cloud computing is the process by which programmatic logic can be executed using on-demand resources from a cloud-based computing system.
Confluence is an Atlassian productivity software that aims to help developers collaborate as seamlessly as possible.
CORS stands for cross-origin resource sharing and describes a HTTP protocol by which a server can specify where resources can be loaded from (i.e. the origins it will permit resources to be loaded from).
19- Cron Job
Cron jobs are time-scheduled software-related tasks that are often too tedious to perform manually (daily server updates could be set up with cron, for example).
20- REST Controller
A REST controller is component in a RESTful web service architecture that maps specific endpoint requests to programmatic logic. This is why different URL structures of a RESTful API would most likely return unique data – a REST controller handles this functionality.
A daemon is a generalized software program that runs as a background process. It usually performs low-level tasks and can even coordinate cron jobs, as well.
22- Data Architecture
A data architecture is a set of rules, policies, and models that describes how a software system collects and manages its data.
23- Data Modeling
Data modeling is the process of describing (in detail) the data collection and management procedure outlined in a software’s data architecture.
Distributed Denial of Service is a type of cybersecurity event where hackers attempt to overload a web service with malicious requests.
A common set-up for DDoS attacks – the attacker controls a number of computers or private servers that spam a customer’s endpoint, either crashing the service completely or severely limiting performance/traffic
Deprecated is a common programmatic annotation that is used to label programs or methods that are no longer in use.
DevOps is a set of software development and IT practices meant to facilitate seamless software development and continuous integration with as little errors as possible.
27- Design Pattern
A design pattern is a generalized solution to a common problem in software development. These are widely used in both backend and frontend development because they provide a useful framework for approaching common software design issues.
Diffing is the process of identifying how two source files are different. It’s a fundamental algorithm, most notably used by Git as a way to identify changes in source code over time.
An example of diffing in action on one of Wikipedia’s articles – color-coded highlighting indicates which areas were edited, removed, or added
Domain Name System (DNS) is the decentralized architecture that defines how information is attributed to a domain name. In software, DNS resolution is the process by which a domain name (example.com) is converted into a computer-readable MAC address.
Docker is a commonly-used containerization service – it provides a useful interface for packaging and deploying software in a microservice architecture and is very common in large-scale enterprise web applications.
Containerized applications are known for their performance benefits and improved simplicity over virtual machines – as you can see from the diagram, each VM contains its own operating system, which can lead to inconsistency and bugs when deploying a complex software application
An Epic is a term commonly used in agile software development to describe a large body of work. Each Epic is typically composed of multiple Stories, which are then further broken down into tickets. This clearly-defined hierarchy makes diagnosing and solving complex software issues more streamlined.
An endpoint defines one end of a communication channel of an API. When a programmer makes a call to an API (a.k.a requesting data from another piece of software), this is typically done by invoking a particular endpoint (i.e. GET or POST requests) and passing certain parameters that specify what data should be returned.
A favicon is a small icon that usually appears as a shortcut preview in browsers and may also appear when a website is linked in an external resource.
34- Feature Creep
Feature creep is the excessive addition of features to a software product that weren’t initially defined in the scope of development. This can (and usually does) lead to unforeseen delays in the software development life cycle.
35- Flat File
A flat file is a commonly used type of database that stores data in a plain-text format. These are common when data doesn’t need to have any indexing or complicated associations, and can offer significant performance benefits over more structurally-complex relational databases.
36- Frontend Framework
Frontend frameworks are packages of pre-defined code that define the syntax and structure of how a web application should be built. While there is a considerable learning curve to mastering frontend frameworks, they’re extremely common in software development. Some examples include React, Angular, and Vue.js.
An example of how React works – using their syntax, developers can create reusable, highly modular components that can accept, modify, or delete user data reactively. To replicate something as functional as this with pure HTML and CSS, it would be infinitely more complicated and messy, hence why frameworks are so popular
37- Gantt Chart
Gantt charts show the various tasks involved in a project as the overlap in time. They’re a common way to visualize the progression of software development tasks and are typically bundled into productivity services like Confluence or Monday.com.
38- Garbage Collection
Garbage collection is an automated process Java performs to manage application memory. Garbage collectors within Java’s virtual machine find unused objects and delete them from memory.
Git is a software service that tracks changes in source code files and is most often used by software development teams to coordinate changes to a program’s source code.
GitHub is a cloud-based service that employs Git to facilitate software version control for developers. It provides a clean and intuitive interface for using git’s basic actions and is a commonly-used tool in many development teams.
An overview of Github’s key features (from Github.com )
GNU, pronounced guh-new, stands for “GNU’s Not Unix” and is a collection of open-source software often used as a fully-fledged operating system, similar to UNIX.
GUI stands for graphical user interface and describes the set of components or source code files that dictate how a software application looks on the frontend.
Heroku is a Platform as a Service (PaaS) company that developers and freelancers use to deploy, scale, and manage cloud-based applications (similar to AWS and Azure).
44- Hot Fix
A hot fix is developer slang for when a bug is patched in production code – this means the code is fixed live, as the application is still running (and presumably, being used by real end-users).
Infrastructure as a Service (IaaS) is a type of cloud-computing-based service through which companies can rent out compute and storage capabilities. This is a common service that software companies use to keep costs low – instead of provisioning their own cloud services, they might decide to rent out a certain amount of cloud-based resources from IaaS providers.
An IDE, short for Integrated Development Environment, is the software most developers use to write code in. Some popular choices include Vs Code, IntelliJ IDEA, and Eclipse.
VS Code is one of the most popular and feature-rich IDEs out there
Issues are Jira’s main building blocks for creating Stories and Epics – they can be used to represent a feature idea, a bug that needs to be fixed, or any other kind of software-related task.
48- Internet Of Things (IoT)
Internet of Things describes any type of physical object than can be used to interface with the internet. This can be anything from a Wifi modem to a smart home appliance.
Visual representation of the Internet of Things (printers, digital scales, TVs, Bluetooth camera, wireless headphones are all examples of IoT objects)
JDBC (Java Database Connection) is an API for Java that allows a program to interface with a database and perform basic CRUD operations (Create, Read, Update, and Delete)
Jira is the go-to bug-tracking software service most development teams use – Confluence, also created by Atlassian, is typically used in tandem with Jira to coordinate agile development.
Typical structure of JSON data – hierarchical, easy to read, and clear
52- KISS Principle
KISS stands for Keep It Simple, Stupid and is a commonly-used (albeit blunt) mindset for maintaining readable, functional code. The primary philosophy of KISS is that most software problems, no matter how complex they may initially seem, often have simple solutions.
53- LAMP Stack
LAMP is a web server stack that uses Linux, Apache, MySQL database, and PHP. It’s common in web development because all of the technologies it employs are open-source and rigorously maintained.
54- Legacy Code
Legacy code refers to parts of a code base that were developed in the past, or currently use outdated logic, technologies, or libraries. Often times junior developers are (unfairly) tasked with refactoring legacy code and making it more modern and performant.
Localhost refers to the computer that’s running a program or webserver. In modern software development, code will often be deployed and tested on localhost before deploying to production (which is typically hosted on a domain, i.e. my-web-app.com).
Lua is a high-level, object-oriented programming language often used by developers to write lightweight scripts and automation modules.
57- MEAN Stack
MEAN stack (MongoDB, Express, Angular, Node.js) is a collection of web technologies commonly used together to develop modern software applications.
Merge is a Git-specific action that allows a programmer to push their code changes (usually created in a local branch) and combine it with a code base’s main branch.
59- MERN Stack
MERN stack (MongoDB, Express, React, Node.js) is a collection of web technologies commonly used together to develop modern software applications. It’s similar to MEAN, but employs React as its frontend framework instead of Angular.
60- Microservice Architecture
Microservice architecture is a method of developing applications where each concern (or functionality) the application supports is bundled into its own service. Each of these services are coupled together to create a cohesive software experience. Microservices have become increasingly popular in recent years because of their resilience and scalability.
Microservices are commonly deployed in the cloud – Azure, Microsoft’s cloud server provider, is a prime of example of where a company might host their microservices
61- Monolithic Architecture
In direct contrast to the microservices architecture, monolithic architectures use very few classes or programs, each of which contain programmatic logic that governs a number of features. This was known to cause numerous problems in the past – in particular, if one part of a monolithic program fails, all of its connected features will also fail, too (this isn’t the case with isolated microservices which each govern one specific feature or functionality).
MVC stands for model-view-controller and describes a common template for designing web applications. Programmatic logic is split into one of the three components of MVC, depending on what function it performs – model components interact with data, view components govern how the data is displayed on the front end, and controller components mediate interactions between the model and view layers.
OAuth defines a standard protocol for access delegation – it allows one application to grant access to another application without exchanging passwords, but by instead relying on authorization tokens.
Many modern services allow you to create accounts and sign in with 3rd party apps like Facebook or Google – these connections rely on OAuth
A patch is a general term for an improvement or bug fix.
Postman is a popular software service for testing, developing and collaborating on API development. It provides a sandbox environment for creating and saving HTTP requests (which would eventually hit your API’s endpoints) as well as verifying the data responses you get from each request.
From Postman’s website
PR stands for pull request, a Github-related action where a programmer requests a review on whatever changes they’ve made to a branch of code. Once those changes are approved (typically by a manager or tech lead), the code is integrated into its parent branch.
67- Progressive Web Application (PWA)
68- Proxy Server
A proxy server is an intermediary server that mediates request between a client and the main application server. It’s often used in modern applications as a security measure or to load balance a high volume of requests.
Pseudocode is informal code that doesn’t need to follow strict syntax – it’s primarily used by developers to quickly brainstorm solutions to problems, or develop algorithms conceptually.
An example of pseudocode – this is not a real program and wouldn’t run in any IDE, but it describes a set of rules and conditions that outline the basic structure of an algorithm
70- Quality Assurance (QA)
Quality assurance developers are engineers that monitor a codebase for defects and bugs. They typically work inline with devops and continuous integration engineers to ensure that any code hitting production is clean and fully functional.
71- Relational Database Management System (RDBMS)
RDBMS is a type of database that stores data in a structured format, namely with tables, columns, and rows. The most common example of an RDBMS in software development is MySQL.
Redis is a highly-performant key-value-based database system, primarily used for data that needs to be accessed quickly. In modern software systems, Redis is often deploying as a caching layer because of how quickly it can access and modify data.
73- Regression Testing
Regression testing is the practice of re-running a code base’s testing suite to ensure that previously-developed code still functions after new changes are made.
74- Responsive Design
Responsive design is a practice in modern web development to ensure that an application’s user interface functions properly on both desktop and mobile screens sizes.
75- RESTful Service
RESTful services are lightweight, functional web apps that use the REST architecture (REpresentational State Transfer). RESTful services are typically used to design APIs and any other type of software that clients interface with through the internet.
ROI stands for return on investment – it’s used as a way to numerically measure progress or performance in a software development team. You’ll hear this term thrown around in meetings with managers or C-level employees when they discuss the relative pros or cons of developing a particular feature or subset of a software.
Software as a service (SaaS) companies provide their software product to clients and make profit by charge access or subscription fees. Spotify is an example of software as a service – you pay a monthly fee, and in exchange, Spotify keeps track of your favorite songs, stores your playlists and radio stations, and recommends new content based on your preferences.
Schema is a general term for an outline, diagram or model. Schemas are often used in data modeling to outline the specific details of how a software will manage data.
Schemas can quickly become large and complex – in many use cases, modern software development is turning to NoSQL (non-relational) databases because they don’t require schemas
Scrum is a form of agile software development that hinges on three main principles: transparency, inspection, and adaptation. It’s common in the software world because it makes creating functional code an iterative, effective, and repeatable process.
A standard development kit (SDK) is a collection of software tools that facilitate the creation of a software application. For example, if you want to create a Java app, you’d need to install the Java SDK. This will provide you with the compiler, debugger, and any other software packages needed to run Java code.
The software development lifecycle is the standardized process for developing, testing, and deploying software applications.
82- Serverless Functions
Serverless functions are discrete units of programmatic logic that are hosted on cloud-based servers. These serverless functions don’t normally depend on other components to be fully functional and can be invoked on-demand.
SharePoint is a Microsoft collaboration platform common in software engineering circles. Its direct integration with the rest of the Microsoft Office suite makes it a prime choice for most dev teams.
84- Spaghetti Code
Spaghetti code is an informal way to describe unclean, messy, or unnecessarily convoluted code.
Sprints are the building blocks of Stories (agile development). Each Sprint has a specific time limit (usually around 1-2 weeks) during which a dev team sets out to complete a clearly-defined amount of work.
86- Spring Framework
Spring is a Java-centric development framework that facilitates inversion of control. It’s commonly used to develop enterprise-level applications, often in conjunction with object-relational mapping frameworks like Hibernate.
A Story is a key component of the agile development system and is used to describe an end-goal for a software system. Developers work to complete Stories through smaller bodies of work, usually Sprints.
88- Test-Driven Development
Test-driven development is a software development practice where developers first map out a software’s given features into test cases – once the tests are created, the features are built to complement them. This is common practice for software systems where fault tolerance is extremely low (think aviation industry or similar).
A ticket is a discrete problem or bug corresponding to a software system. Developers are usually assigned tickets that come from customer reports – i.e. someone noticed this bug here, figure out where it came from in the software.
How tickets look in Jira
90- Unit Testing
Unit testing is a software development practice where specific sections of a code base are tested for functionality and robustness. Each section of the software being tested is its own unit – in ideal cases, if one unit fails its tests, other units might still be able to pass their own tests.
92- Usability Testing
This is a user-experience-related testing practice that aims to evaluate a product’s ease of use. Since it describes how real users interact with a software product, it’s often considered an essential best practice.
91- User Experience (UX)
User experience describes how a user interacts with a software product, including the user’s understanding of its features and how easy the software is to interact with.
93- User Interface (UI)
User interface describes the collection of components and visual elements that make up what a user sees when interacting with a software. UI design focuses on creating enjoyable, frictionless, and functional interfaces for software products.
94- Version Control
Version control is the software development practice of tracking changes to source code files over time. In modern software development, this is usually handled by version control software such as Github, Gitlab, Bitbucket, or similar services.
95- Virtual Machine
A virtual machine is the emulation of a computer system without necessarily being bound to the hardware of a computer system. One desktop, for example, could be running multiple virtual machines even though it only has the hardware capabilities for one physical machine.
A wiki is a collaborative website or online platforms which allows for any qualified user to edit its content. This is usually the place where most engineers would publish how-to guides, critical documentation, or other important instructions on how to develop or interact with the code base. Since wikis often contain sensitive details about a software’s design, they’re typically only accessible to internal employees.
Azure, a popular cloud service provider, supports the creation of internal wikis to facilitate easier collaboration across development teams
Wireframing is the practice of creating a skeletonized draft or schema of a software product. It outlines critical details and structural information about how a software will look or function, but doesn’t describe the details of its implementation.
A typical wireframe for a website landing page – it maps out key sections of the website and describes their purpose, but doesn’t necessarily detail how each should look or function
Whiteboarding is the collaborative process of brainstorming ideas or early-stage concepts for a software’s design. It’s often used in Product and Engineering teams to map out key requirements and features that a software must have.
Pronounced “wizzy-wig”, WYSIWYG is an acronym for “what you see is what you get” and describes a type of text editor where you can modify text properties without knowing HTML. If you’ve ever edited text online and been able to bold or italicize words, you’ve used a WYSIWYG editor.
Extensible Markup Language is a markup language used to encode a set of rules or requirements for a software application. It’s commonly adopted in configuration files (Spring uses it heavily, for example) because XML is both human and machine readable.
YAML (an acronym for YAML Ain’t Markup Language – yes, I’m not kidding) is a markup language used to encode data transferring between API endpoints or in configuration files for a software application. It’s similar to XML but is more commonly used in modern software services because of how human readable it is.
Embarking on the software development journey is akin to unraveling a captivating mystery, where every line of code serves as a crucial clue leading to a deeper understanding. It transcends conventional learning methods, urging enthusiasts to immerse themselves in the dynamic language shaped by each development team’s distinct practices and tools.
This integral aspect of the job is typically acquired through hands-on experience. Each development team boasts its unique practices, preferred tools, and a distinctive way of discussing code.
My initiation into the world of software happened without the cushion of internships or practical exposure, leading me to navigate the intricate maze of common software terms during those initial, bewildering weeks. Yet, from this chaos, a passion emerged for decoding the linguistic nuances of coding.
For fellow enthusiasts, I’ve compiled a curated list of common software terms – a valuable resource unlocking the distinct vocabulary that shapes our coding adventures. Whether you’re a junior developer or a seasoned pro, these terms serve as your key to effective communication and collaboration within any development team.