Suraj Pattar

Robotics AI Research Engineer / Ph.D. in AI and Robotics / Data Scientist / 3D Printing Enthusiast

Breaking Down Barriers: Understanding Software Jargon for Hardware Professionals

30 January 2023

Knowing technical terms in software makes it easier for hardware and software engineers to talk and understand each other. It helps hardware engineers understand what software engineers need for their hardware to work well with software.

This leads to better communication and fewer mistakes. It also helps hardware engineers understand the software engineer’s point of view, making problem solving and decision making easier.

In this first post, we’ll begin with a few basic concepts.


API (Application Programming Interface)

An API is like a set of instructions that helps different parts of a computer program work together. It’s like connecting different parts of a machine to make it work properly.

For example, imagine you’re building a car. You need to connect the engine and the transmission. To do this, you need to know how to connect them and the instructions for doing so. An API works the same way. It provides instructions for different parts of a computer program to connect and communicate with each other.

APIs act like bridges between different computer systems. For example, an API can let a mobile app access data from a website. This allows the two systems to work together.

In short, APIs help different parts of a computer program work together. They provide instructions for connecting and communicating between different systems, just like connecting parts of a machine.

Algorithms

An algorithm is like a set of instructions for a machine to follow to make something. Just like a machine in a factory needs instructions to make a product, a computer also needs instructions, called an algorithm, to solve a problem or complete a task.

For example, imagine a machine that makes soba noodles. The machine has instructions, or an algorithm, for how to make the noodles. The instructions might say to mix the dough, roll it out, cut it into noodles, and cook them. The machine follows these instructions in a specific order to make the soba noodles.

A good algorithm produces the right result quickly and without using too many resources. A bad algorithm might make the wrong result, take too long, or use too much energy.

For example, a bad algorithm for the soba noodle machine might make the noodles too thin or too thick, or it might take too long to make a batch of noodles. But, a good algorithm will make the noodles the right thickness and size, and do it in a good amount of time.

Coding Standards

Coding standards refer to the guidelines and best practices that software developers follow when writing code. These standards help to ensure that code is consistent, easy to read and maintain, and free of errors.

Imagine a machine shop where you are manufacturing parts. You have a set of blueprints that outline exactly how the parts should be made, and you follow these blueprints to the letter. This helps to ensure that each part is made to the correct specification and that the final product will function as intended.

Coding standards work in a similar way. Just like blueprints, coding standards provide a set of guidelines for how code should be written. This includes things like naming conventions for variables, how code should be organized, and how comments should be used. Following these guidelines helps to ensure that the code is easy to understand and maintain, and that it will function as intended.

Just like in manufacturing, where following the blueprints helps to ensure that each part is made to the correct specification, following coding standards helps to ensure that the code is of high quality and will work as intended. This is especially important in large software projects where multiple developers may be working on different parts of the codebase. By following the same standards, developers can easily understand and work with each other’s code, leading to a more efficient and successful project.

Unit Testing

Unit testing is a process in which individual units of code are tested to ensure that they are functioning correctly. Imagine that you are working on a manufacturing project and you have made a new part that needs to be tested before it can be used in the final product. You might take the part and run it through a series of tests to ensure that it meets the required specifications and is free of defects.

Similarly, in software development, unit testing is the process of testing individual units of code to ensure that they are functioning correctly. This might involve writing test cases that input various data into the code and checking to see if the output is what is expected. By running these tests, developers can ensure that each unit of code is working as intended and catch any errors or defects before they become a problem.

Unit testing is an important part of the software development process because it helps to catch errors and defects early on, before they become a problem. Just like in manufacturing, where testing parts helps to ensure that they are of high quality and will function as intended, unit testing helps to ensure that the code is of high quality and will work as intended. This helps to save time and resources by catching issues early on, rather than having to fix them after the code has been deployed.

DRY Principle

The do not repeat yourself (DRY) principle is a programming principle that states that code should not be duplicated unnecessarily. Imagine that you are working on a manufacturing project and you have a series of parts that are all very similar. Instead of making each part from scratch, you might create a mold that can be used to produce all of the parts. This saves time and resources by eliminating the need to create each part individually.

Similarly, in software development, the DRY principle states that code should not be duplicated unnecessarily. This means that if you have a piece of code that is used in multiple places, you should try to consolidate it into a single location rather than copying and pasting it multiple times. This helps to make the code easier to read and maintain, and reduces the risk of errors or inconsistencies.

Just like in manufacturing, where using a master template helps to save time and resources, following the DRY principle helps to make software development more efficient and reduce the risk of errors. By not repeating yourself unnecessarily, you can create code that is easier to read and maintain, and that is of higher quality.


I hope you enjoyed reading this blog. Understanding the fundamentals of programming and software development is important for engineers in any field, and I’m glad I could provide some insight into these concepts. If you have any questions or suggestions for future topics, feel free to reach out. I’m always looking for ways to make these technical concepts more accessible and easy to understand. Thank you for reading, and I look forward to exploring more software and programming terms with you in the future!