> For the complete documentation index, see [llms.txt](https://guide.ivanzakutnii.com/the-hard-way-to-swe-excellence/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://guide.ivanzakutnii.com/the-hard-way-to-swe-excellence/basic-understanding/good-to-have-in-your-mind.md).

# Good-to-have in your mind

High-school algebra is useful when you start programming, but it is not an admission test.&#x20;

Programming uses symbolic reasoning, logic, abstraction, and precise rules; different fields require different amounts of mathematics.

Professional programming often involves breaking a problem into smaller parts, naming relationships, and checking whether a result follows from your assumptions.&#x20;

That habit is close to mathematical problem-solving even when the program itself contains little arithmetic.

Do not get discouraged if you were not great at mathematics in school. I was not either.

**You may be better at this kind of thinking than you expect**. Learn missing mathematics when a problem calls for it, and keep strengthening the logical foundations as you go.

For not just remember one thing – there is a lot of math foundation in programming. Software engineering is purely emerged from math. Software engineering IS a math. Sort of :)&#x20;

Do not bother with it much now, just hint.
