A lot of computer scientists actually struggle with this and don't fully get it. As a result, software engineering education isn't all that great in a typical computer science curriculum. One reason is that most computer scientists actually lack the experience of having worked in large software companies and don't actually know a lot about how that works. It's something I realized while doing my Ph. D. in this area and I fixed it by leaving academia. I learned a lot since then.
One thing I learned is that a lot of good software engineers exist that never studied computer science. I know people with physics, geology, micro biology, philosophy degrees that ended up working as software engineers and that are very good at what they do. Most scientific work involves some level of programming these days. So, it's quite common to meet people with some python or even machine learning experience that never studied computer science. Things like formal methods, linear algebra, etc. are useful to know of course for some things. But you don't need to have a any of that to learn python, javascript, or any of the other popular languages. In the same way, knowing a lot about type systems is nice if you build compilers or design your own languages. But you don't need to know much about that to use a language.