Probably the biggest lessons learned in my career (18 years) is that writing algorithms/systems and designing UX go hand in hand. The notion in software engineering that front-end/back-end are separate is just flat out wrong and probably a huge reason why most software sucks.
Math/data science is useful, UX design is essential. Sure aspiring coders can learn something by implementing a quick sort but to make a corresponding UX (perhaps a visualization learning tool) for it, is probably 1000 times more complicated than the easy algorithm.
More importantly, the implementation of the algorithm cannot ignore the UX, otherwise no amount of UX work will deliver something that truly delights. A quick sort might be 50 LOC, with good UX, animation support, time-rewind etc., the core algorithm might suddenly be 5000 LOC.
Writing software that supports and enables the creation of good UX is a skill and not often taught, you end up with dark magic, code that others frown upon as 'ugly glue code', not realizing that this glue is what elevates the product from functional, to delightful.
For games (and simulation games in particular) this is even more pronounced, no algorithm is worth anything if you can't make the UX surface area engaging. In @TavernKeeper we've many times thrown out entire systems because the UX sucked.
Nowadays we are much better with this but even when you are experienced with UX design, the UX work is monumental. We might spend a week on implementation of systems *and* UX design and then 3 months on the actual UX implementation.
But importantly, we have enough appreciation of UX that we will not discuss algorithms or systems without also discussing the UX. Often times, and I mean the majority of times, the UX discussions are what solves the implementation puzzle, not the algorithm.
So, if you are a coder and you want to get better at software engineering or game development, learn to appreciate UX. Give it the same consideration and respect that you give to a good coding problem. You will never see code the same again.