In your software development journey, you will encounter many terminologies that will make you confused. It is essential to understand these software development terms and distinguish between them.
When I was learning software development, I used to get confused with many software development terms. This article will list the most common software development terms you need to know. You don’t have to know all of these terms. You need to know what matters to you.
Software Development terms for beginners
// show code //
Variable comes on different data types. These data types are String, Integer, array, and Boolean.
Immutable VS Mutable variables
// Show Code //
Static type VS Dynamic type
Static types are when a programming language enforces you to define data type when creating a new variable. For example, before creating a variable for the number 10, you must define it as an integer.
Dynamic Type is when you don’t need to define the data type. The opposite of the static type.
Java is a static type language. Here’s a code example:
String name = "Adam"; // we declare data type in this case is String int age = 29; // we declare data type in this case is int (Integer)
Python is a dynamic type language. Here’s a code example:
name = "Adam" # we don't declare the data type age = 19 # we don't declare the data type
Let’s think of Object-Oriented Programming (OOP) as defining a person.
In this case, a ‘person’ is an ‘object’. They have attributes like a name, age, or hair color and behaviors like walking or talking.
A ‘class’ is like the blueprint for a person. It defines what attributes and behaviors all ‘person’ objects will have.
So, in OOP, you create a program by defining these ‘person’ objects and how they interact, just like you’d describe different people and their interactions in a story. This makes programming simpler by breaking it down into manageable parts.
Sure! Functional programming is like a factory assembly line.
Imagine each worker in the line as a ‘function’. A worker (function) takes an object (input), performs a specific task on it, and passes it along to the next worker (output).
In functional programming, you build a program by combining these functions, just like an assembly line in a factory. Each function is independent and doesn’t affect the others, making the program easier to understand and debug.
Hardcoded means the data on the application has a specific value and cannot be dynamically changed. Example of this:
const date = new Date() // dynamic, everytime will get new output const date1 = '2023-07-15' // hardcoded always going to be 2023-07-15
An API, or Application Programming Interface, is like a restaurant menu.
You don’t cook the meal yourself when you go to a restaurant. You look at the menu and order what you want. The kitchen (which you don’t see) prepares your order and serves it to you.
In this analogy, the menu is the API. It’s a list of services that a program (the restaurant) offers to other programs. These other programs can ‘order’ operations from the API (like retrieving data or triggering actions), without knowing how these operations are performed behind the scenes. This makes it easier for different software systems to communicate and work together.
Asynchronous vs Synchronous
synchronous operations wait for a task to complete before moving on to the next. Asynchronous operations can move on to the next task before the previous one finishes, making them more efficient for tasks that involve a lot of waiting, like loading data from the internet or accessing a hard drive.
The database is where your application data is stored. Many database management systems exist, such as MySQL, SQL server, MongoDB, etc.
Indexing is like a reference book for where to find the data. Imagine you are in a hotel. The receptionist tells you your room is number 107. Without enough information, you will go to every fool to check if room 107 is there, which could be time-consuming. But what if the receptionist says it is room 107 on the 5th floor? Then you would go directly to level five and find your room faster.
This is how indexing works. It’s a pointer to data in a table. An index helps speed up data retrieval, making finding and accessing the data you’re looking for faster.
The data is saved on hard disk storage. Reading from a hard disk is slow compared to a memory. Caching is a method software developers use to make the application faster. Sometimes we store data temporarily in memory to make the process faster instead of always reading data from the hard disk. We store the data on memory and read from memory 100 times faster than a hard disk. Popular tools for the cache are Redis and Memcached.
The framework is bigger than a library. A framework provides a full solution to build a web or mobile application. For example, the Java Spring framework provides everything you need to build a backend service from security, database connection, testing, and much more.
Cloud computing allows us to use computing resources without worrying about managing the physical servers and configuration. Instead of buying servers, we use servers from platforms like AWS and Azure and pay based on usage without worrying about maintenance and data centers.
Serverless is when you write and deploy it; the cloud provider will take care of the rest. One benefit of serverless is you pay only when you use your code. For example, you only use your code for three hours a day. Then you are going to pay for three hours only. If you take a server instead of serverless, you will pay for 24 hours, even if you did not use the server. Thus, serverless is cost-efficient.
A cronjob is to schedule a task to run at a specific time. In a real-world example, you are going to use cronjob for reporting. For example, run this task every day at 1 AM. Run the task every Monday, every first day of the month, and so on.
Open source means the code is open to the public, and you can use download and use it for free.
Integrated Development Environment (IDE)
IDE is a programming tool that helps developers write, compile, and debug code. It provides you with everything you need to build a complete application.
A text editor is a tool that helps you write code. It differs from IDE because it does not provide other functionalities like compiling and debugging.
A bug is an error in programming. It is when the application gives you unexpected results. Bugs happen for many reasons. It could be a logic error or incorrect syntax.
Debugging is the process of identifying the bug. Developers usually analyze the code line by line to identify where the problem is located. Once the debug is allocated, the developer proceeds with the proper solution fix.
Code compilation is a process in which the source code written in a programming language is translated into machine code that a computer’s CPU can directly execute. The software that performs this task is called a compiler.
User Interface UI
The user interface is the design element of a web page. For example, when using an app on your smartphone, everything you see on the screen is part of the user interface. This includes the buttons you tap to perform different actions, the text input fields, sliders, graphics, and screen transitions.
User Experience UX
UX is about how an end user interacts with and experiences a product. For instance, if you’re using an app that crashes frequently, takes too long to load, or is difficult to navigate, you’ll likely have a poor user experience.
Agile software development is a project management approach that prioritizes flexibility, customer collaboration, and high adaptability to changes. It divides projects into smaller, manageable parts called iterations or sprints, allowing for frequent reassessment and adaptation of plans.
Git is a version control for computer programming. Version control systems keep track of every modification to the code in a special kind of database. If a mistake is made, developers can turn back the clock and compare earlier versions of the code to help fix the mistake while minimizing disruption to all team members.
An algorithm is a step-by-step procedure or rules for performing a specific task or solving a particular problem. The algorithm is about how to solve a specific problem. For example, how to sort a list by alphabetic order. The step-by-step process to solve this is known as an algorithm.
Front-end development is where the developer is responsible for everything that happens on the client side. Everything you see in a web browser or mobile app is a front-end. The front end is what people see and interact with.
Back-end development is where the developer is responsible for everything behind the scenes. Backend development is the engine of the application. Everything happens on the backend, where is the data is validated and stored.
Full-stack developer a person who participates in both front-end and backend development processes.