> 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-undestanding/good-to-have-in-your-mind.md).

# Good-to-have in your mind

To start programming from scratch, you need a decent understanding of high school algebra. Why? Because programming *is* algebra at its core - it's all about manipulating symbols and calculations.

Professional programming involves solving complex thinking problems that are a lot like math problems in essence (even if many of us don't realize this).

Don't get discouraged if you weren't great at math in school (I wasn't either).&#x20;

You might be better at this kind of thinking than you expect. Just keep in mind that programming has deep mathematical roots, and try to understand these foundations as you learn.
