Have you ever wondered whether you** need to be good at math to become a developer**? Well in this video **we explain it all**. Watch it to find out just **how much math** developers use on a daily basis!

Simple mathematical concepts are often needed and applied in software development.

This doesn’t mean that software developers should be strong mathematicians, but they should be familiar with **the basic math concepts** at school level.

Developers **don’t need to prove theorems** or **solve differential equations**, but they need to **understand coordinate systems**, they need to know what a **function **is, they should be able to perform **simple calculations**, and they should have well-developed **algorithmic thinking**, which is like the logical thinking used in math.

**School-level math is enough** for most developers, **unless they are involved with computer graphics**, **machine learning** or other math-intensive specialization.

*If you are new to programming, make sure to watch our Free Full Java Basics course! It will give you the necessary foundation to build upon and become a successful software engineer!*

## Lesson Topics

**the most important mathematical concepts**related to programming:

**Coordinate systems and graphical objects**with their size, position, and other numerical characteristics are used in computer graphics and user interface systems, such as HTML and CSS, PDF, SVG and others.

**Mathematical functions, elements of lambda calculus, discrete functions**and other simple mathematical transformations are used by developers when they write code, as part of the functional programming paradigm and some modern architectural approaches like “serverless computations”. For example, developers may define functions in their programming language, which transform input values into an output result. Or they can pass a function (called a callback or delegate) as a parameter to other function.

**Vectors and matrices**may be used in graphics, machine learning, and everywhere else. In fact, developers use vectors every day, because “vector” is the mathematical name of “arrays and lists”. “Matrices” is the mathematical name of “tables” that we know well from spreadsheet and Excel applications.

**Finite state automata**and**state machines**are used in parsers (which extract data from structured text), in-process management and workflow management software, and in interpreters and compilers.

**Statistics concepts**, such as probability distributions, statistical significance, hypothesis testing, and regression are widely used in data science and machine learning. In machine learning, data science, and artificial intelligence systems, math skills are more important. But in traditional (mainstream) Web, mobile, and back-end development, we need nothing more than school-level math and logical thinking.

**Algorithm complexity**is a math concept from the mathematical analysis, used to estimate the execution speed of the code, based on the approximation of the steps needed to be executed. Developers need to learn the concept of “time complexity” and what is linear time, quadratic time, cubic time, and logarithmic time, which is quite simple, and mathematics is not deeply involved.

**Mathematical modeling**is the art of translating problems from an application area into tractable mathematical or formal formulations whose theoretical, numerical, and algorithmic analysis provides insight, answers, and guidance useful for the originating application. Mathematical modeling is an important skill, related to algorithmic thinking, and developers with strong problem-solving skills learn how to use it at a basic level.

Remember that coding is a skill, which should be practiced. To learn to code, you should write code, every day, for a long time. Watching tutorials is not enough. You should code!

We would love to hear from you, so leave a comment below saying what topics you would like to see next.