DEV Community


Discussion on: What Are the Most Important CS Principles to Learn as a New Dev from a Non-Traditional Background?

eladedri profile image

Well, for two reasons - the first being that Math knowledge is required for a true understanding of Data Structures and algorithms runtime analysis (working knowledge of lim calculation is required for the simple understanding of Big O notation). Second, while this knowledge is probably not required for web development, it may come handy in other development fields - I found Matrix inversions to be very useful when I needed to work with physical objects in three dimensional world model (in the autonomous vehicles industry), and that wasn't even using Machine Learning or Neural Network.
Third, understanding of data structures is very handy if you work with big data and limited resources (and yes, for me, even 2k processors running at once is considered "limited resources"), this knowledge is super useful for small tweaks that improve performance (using dicts instead of lists/arrays, performing operations on arrays instead of item at a time).

Sure, one might pick up most of this knowledge, including the required math on the fly, but my answer was on basic topics of CS, not specific topics for certain fields of the industry.

Thread Thread
srleyva profile image
Stephen Leyva (He/Him)

I’d disagree a bit. Time complexity doesn’t necessitate an understanding of advanced mathematics for you to use it practically. While it helps to understand quadratic and exponential complexities, it isn’t necessary. Additionally, understanding a data structure and algorithmic efficiency in certain circumstances doesn’t necessitate advanced mathematics. If you’re building a physics engines or building neural networks, sure. I’ve worked with software engineers who understand data structures and algorithms on a deep level who weren’t so good at advanced mathematics. It comes down to right tool for right problem and being able to discern what that tool is. While admittedly those with mathematics background have an advantage, I wouldn’t say it’s required.