How essential is Maths?
I'm in my final year of studying computer science/programming in university. I'm pretty good at programming, infact I'm one of the top in my class. However, I struggle with my math classes, barely passing each semester. Is this odd, to be good at programming but be useless at maths?
What worries me the most is what I've read about applying for programming positions in places like Google and Microsoft, where they ask you a random math question. I know that I'd panic and just fail on the spot...
edit: Thanks for all the tips and advice. I was only using Google and Microsoft as an example, since everyone knows them. Oh and for all the redditors commenting about 'Maths' vs 'Math', I'm not from the US and was unaware that it had a different spelling over there. Perhaps I should forget the MATHS and take up English asap!
4 comments
[ 0.19 ms ] story [ 667 ms ] threadAlso, "math" is a very, very broad term. What comes to your mind when you think of "math"? Arithmeric operations? Being good at mental calculations at the supermarket? High-school-level math? Calculus? Discrete math? Abstract algebra? The answer to this question alone may point out the fact that you struggle with a specific branch of math, not with math as a whole.
That being said, I don't think it's essential for most coding/software engineering work. There are some exceptions, though:
- Real Computer Science work. Think research-level position in the industry.
- Systems that rely on math properties to work (math is tangential). For a simple example, consider implementing the compare() method for a custom class. That may require some basic understanding of abstract-ish algebra to ensure that the semantic conditions (the ones your compiler can't check via static analysis), for example.
- Systems that are built around (or almost around) a math concept: machine learning, 3D graphics programming, Monoids for big data calculations, Monads for functional programming, etc.
Except for heavier research work, I don't think you absolutely need a prior "ability" with math to learn the concepts required to work even with mathematically-inclined systems. You may need to work harder on getting your head around certain concepts, though.
I use U.S. English, but I mostly write "Maths". Here's for the nit-pick. Nobody can accuse you of sucking at English since the British, you know, the people who spoke English first, write it that way.
2 - How essential?
I don't know and it depends. I personally do Maths for several reasons:
* Fun. I enjoy it. I find it beautiful on the rare occasions I understand it, so it's a glimpse of what lies ahead and motivates me to keep at it despite being inept. It's something I'll keep doing until I die.
* Preemptive measure to understand things in the future so that I don't have to worry about the Maths aspect of a hypothetical topic. I'm comforted in this logic because it has helped me in the past in finding solutions (for instance, Taylor series to simplify modulation in a transistor circuit).
* Some topics require a certain sophistication: I had courses in Control Systems (continuous and discrete) and there's a bunch of topics like Hamilton-Jacobi-Bellman, stability, optimal control, etc) that, if you want to understand, require a certain toolbox. You can get by without having that toolbox but you'd only be good at blindly applying formulas and computing results, basically what a computer can do better than you.
That's only my naive opinion. I don't even have a job so what do I know.
jackson_1 seems to be both "final year of studying computer science" and "So I'm a 3rd year electrical engineering student" (https://news.ycombinator.com/item?id=11825550)
the text from both of those questions mentions reddit, and can be googled and traced to ~2010...