I disagree about needing to know the underlying principles. All you need is a sufficiently good functional understanding for the task at hand. You don&#x27;t need to know about lie groups and linear algebra to rotate an object with your hand. If the engine gives you the tools, you can just use them (again, if you have a sufficiently good functional model in your head). Of course, maintaining the critical parts of the engine is another thing entirely, but even then they&#x27;re divided so that each person only needs to understand a region of the code.