In simple words, programming is the creation of algorithms for working with structured data. And where there are algorithms, there is mathematics. To write better code, it is useful to know some areas of this science.
We will explain the basic things that every programmer needs. In certain areas, additional knowledge is needed.
If you are a self-taught programmer, with no technical background, math may seem complicated and confusing. Do not be in a hurry to give up: you just do not know how to do it. Maybe your high school course was not thoughtful or interesting enough, or you did not study the material enough.
When you study mathematical concepts, it is very important to understand every word and action. Study the theory in detail, do not skip to the end of the proof, and make sure you understand every little detail.
Mathematics can be understood on an ideational and a detailed level. For most concepts, it is enough to work through the general scheme for solving a problem and know the applications.
Types of mathematical theory
You will need the following areas of this science:
Discrete Mathematics
Describes graphs, logical statements, and other discrete structures. All algorithmic problems are related to this area in one way or another.
Logic
This discipline studies formal systems, the nature of mathematical proofs, and other foundations of mathematics. It will be useful to you literally everywhere. After all, every LP is a formal system, and a program written in them is a set of instructions and operations performed on them.
Combinatorics
Describes permutations, arrangements, and combinations of objects. This may involve, for example, problems of counting elements of a set.
Probability
All problems involving counting the mean - for example, the speed of an algorithm - are solved using this area of mathematics. It is needed in Matstat and in machine learning. Probability theory consists of two parts: discrete and continuous. The first part usually boils down to combinatorics, while the second part requires knowledge of mathematical analysis.
Graph Theory
This area of mathematics describes nonlinear structures and how to work with them. The term "nonlinear structures" means that the connections between their elements depend on certain conditions: They are not just a list or an array, but there are edges between them. Knowledge of graph theory allows the programmer to find more efficient and shorter solutions.
Number theory and cryptography
It is related to security and data encryption. It is useful for a programmer to study in detail the mathematical apparatus used in cryptography: the price of making a mistake here is too high.
Discrete optimization
Need to find an extremum, but do not have a continuous function? Then discrete optimization will help you: here the variables take only discrete values. The most important methods are Branes and Bounds (enumeration with elimination of non-optimal solutions) and dynamic programming (combination of solutions of the same subtasks).
What to study as a programmer
You can study math on your own or turn to an expert for structured information, carefully selected assignments, and an approachable tutor. Do you choose the second option? CODDY will help you master this precise and beautiful science.