4 ms·
Definitely agree with you regarding the fact that math is used extensively in many projects but just wanted to point out that the math is very different for 3d
by deanchen 16y ago
Definitely agree with you regarding the fact that math is used extensively in many projects but just wanted to point out that the math is very different for 3d animation vs video processing and only a very small subset of software engineers or computer scientists will every need to know it.
I am able to fully understand the uses of and apply hash tables, btrees, kd-trees or any data structure. Ex. although I can't prove to you the correctness or to create a good hash function that still doesn't prevent me from understanding basic concepts such as hash collisions due to excessive entries or the look up speed O(1) of hash vs O(log(n)) for btrees. On the other hand, if I actually were to implement search for a project I would just use MySQL(I don't need to understand set theory at all to be able to write efficient queries with a firm understanding of the role of indexes).
Never tried programing in scala, but I have no problems with functional programming concepts like map/reduce(currently doing a lot of new projects in couchdb because I think its more interesting to writing sql queries).
I also would like to point out that none of the example you gave require calculus, which was the requirement that I found to be a bit ridiculous and all of your examples involve very different branches of mathematics with very little overlap and most computer algorithms can be applied to great effect without a perfect understanding of the mathematical foundation or proof of correctness. At what point do you stop and ask whether you are teaching too much math and not enough computer science?
I would agree that its easy to pickup how to code but nearly impossible to become a good coder on your own without criticisms and feedback from others. The quality of code I've read some really atrocious code from cs graduate students or engineers all of whom have a extremely good understanding of math. And I would also argue that it is very unrealistic to expect someone to download and read tens and thousands of lines of open source code and hop on IRC to discuss why things were done certain ways with the maintainers. I would also argue that a firm understanding in math does not mean that you can just get map/reduce, MVC, design patterns, web services, distributed computing, multi-threading, event driven programming and many more fundamental concepts that programmers now a days need a firm understanding of to do anything significant.
- gersh 16y agoIf you want any sort of physics in your 3d, you pretty much gotta know some calculus. You need calculus to understand acceleration, gravity, etc. Statistics also uses calculus. For example, the normal distribution, is \integral{e^(x^2)}. If you want to do any A/B testing, regressions, machine learning, etc. you will need it. Map/reduce comes out of algebra. Is your operator associative? If not, you better be careful how you map-reduce algorithm executes. If you don't understand, associativity and your operator isn't associative, it can cause problems. Finite state machines are important too. It can be really hard to write a parser, if you don't understand FSM. I suppose that ties in with design patterns. If you can write a good proof, I don't see how can be that terrible of a programmer. How many CS graduates do you know, who can write a good proof, and aren't good programmers?