# What mathematical subjects are required for programming

## Community

### Most of the problems

Programming is often associated with mathematics and that is ultimately not wrong, because computers are always about numbers.

Nowadays you can buy computers with 32-bit and 64-bit processors; in the past, 16-bit and 8-bit processors were also common. So 8-bit is still a common unit. With 8 bits you can 28 express different values, i.e. 256. Each time the bits are doubled, the number of different values ​​increases to the power. A 16 bit processor can therefore 216 = 256 * 256 = 65536 differentiate states. It is important that the numbers are countable. With 32-bit processors, we are already over 4 billion.
So it is always a subset of the natural numbers. They are called integers, or integers for short.

Most problems are solved with countable numbers: screen positions, i.e. X and Y position, colors (red, green, blue value, each from 0 to 255) and of course indices.
In this area we are moving in the area of ​​elementary school mathematics: addition, subtraction, multiplication, division. We can also calculate the rest of a division, as we got to know in elementary school, with an operation. This operation is called "modulo".

What goes beyond basic school knowledge and is used regularly would be dealing with negative numbers. Occasionally, relationships are formed, here it doesn't hurt if you have halfway understood the percentage calculation and thus the rule of three.

Most of the problems that programmers have to solve are efficient data management. For this, data structures have to be known rather than higher mathematics.

### Special math

The computer has its own form of mathematics. Since the working memory is limited, numbers cannot grow indefinitely. You always specify a memory area that is used for a number and this results in the largest number that can be displayed. If you calculate on a byte (8 bit), the number range is from 0 to 255. If you calculate 200 + 100, you cannot expect 300, but the result will be found in the range from 0 to 255 again. So there are still a few peculiarities to learn that you don't learn in school.

Since computers still do not calculate with ten digits like we do, but only with two digits (namely the famous 0 and 1), in addition to addition and subtraction, there are also some operations that are also not taught in mathematics in school - more in the field 'Technology': You get to know quite a few operators that, like addition or subtraction, calculate two numbers with one another and are called “and”, “or”, “exclusive or” and “not”.

### logic

New operators are also taken from the logic. Most of them are comparisons and should be known from school: bigger, smaller, equal, different. There are also logical links, so that several conditions must apply. For example: pasta water ready when the water in the pot AND the water is boiling.

### Real numbers

However, computers can also handle real numbers (numbers with commas). They are required for more complex calculations, such as those required in geometry or for physical problems. As with the integers, only a certain amount of memory is used to store a real number. The numbers are not really real because they are not exactly accurate. Advanced programmers have to deal with a special part of "computer mathematics" later, numerics.
However, this should not be an obstacle for beginners, because most of them will not write any programs at the beginning that could endanger human life.

Anyone who works on mathematical or physical problems accordingly must know the corresponding mathematics of the problem and - if the calculations are important - deal with the numerics.

Small errors in 3D calculations in computer games are accepted, so here it is enough to deal with vector calculations. On the other hand, if you want to do CAD ("Computer Aided Design", technical mark on the computer) and have to guarantee a certain degree of accuracy, there is no getting around numerics. It would be a shame if drilling from two sides when building a tunnel and you cannot find yourself in the mountain afterwards due to an inaccuracy.

### Elaborate topics

There are of course also topics where mathematicians fight position wars. A well-known topic would be cryptography (encryption), where capable mathematicians develop complex encryption algorithms on the one hand and other mathematicians are accordingly busy cracking the encryption. Anyone interested in encryption can generate secret messages even as a beginner with knowledge of elementary school. In order to be able to play at the forefront here, a degree in mathematics can definitely help.
Very few programmers have to deal with these topics, however, preferring to use existing encryption techniques.

### Conclusion

A lack of math skills are not an obstacle to getting started with programming. Math is a toolkit that helps solve problems. As with DIY, many tools are only bought when you need them. And as with the do-it-yourselfer, your view of mathematics changes when you take something in your fingers and apply it in practice. Instead of just watching the math teacher at his presentation at work, you may also realize that you can program something yourself with the presented tool.