Mathematics in the World of Software

AI technologies were used to translate this article.

(null)

Mathematics is, of course, inherent in software. The fact that the code you write runs first in assembly and then in binary format is made possible by the combination of countless mathematical conditions and operations. In addition, thanks to the readability offered by modern programming languages, the amount of mathematical knowledge users need is reduced. We can describe this readability, in other words, as “abstraction.” The readability of code naturally tends to make its inherent mathematical requirements more abstract. The programmer’s task is to determine this level of abstraction based on their needs and the requirements of the product they are developing.

As time goes on, the meaning of human roles also changes. Programmers of the past were generally more proficient in mathematical knowledge compared to previous generations. The conditions of the past made it more necessary for programmers to be versatile. While software development today can largely be interpreted as “putting the pieces together,” in the past, being a software developer often required one to also be a mathematician.

The establishment of new software architectures has paved the way for new standards. The new abstractions created have made it easier for new software developers to enter the industry and achieve their goals more easily. While this allows us to develop the digital products we envision more quickly, it has also brought certain shortcomings.

One of the greatest shortcomings resulting from abstraction is the illusion it creates. No matter how good a piece of software may appear on the surface, the invisible bugs it contains render it flawed. Building an abstract structure detached from technical details can result in a flawed product that is difficult to track. One of the main reasons for this illusion is that end users generally do not pay attention to technical details. Rushing to release the product and acting hastily are among the factors that most often lead to errors.

Many factors—such as the programmer’s mental state while developing the program and for whom and why they are writing it—determine code quality. The level of abstraction also varies depending on these conditions. In short, the fundamental reasons for abstraction stem from the accelerating pace of the modern world, growing needs, and countless other factors. In large-scale projects, a high level of abstraction can trigger a cascade of unwanted problems, much like a domino effect.

How a software developer can benefit from the nature of mathematics depends on their specific circumstances. First and foremost, the developer must understand themselves and recognize their limitations in the field of mathematics. Then, depending on their specific field, it will be easier for them to learn the necessary mathematical functions. The developer’s specific field is also crucial when making this distinction. For example, if someone wants to develop their skills in data science, their knowledge of mathematics in that field will be a more important factor than their general software knowledge. To give another example, someone developing mobile applications will have almost no need for mathematics.