4 ms·
For my CS degree, the two classes that were most useful foundations-wise were: 1. Learning how to prove things with math 2. "Baby compilers" machine code, bui
by srcreigh 5y ago
For my CS degree, the two classes that were most useful foundations-wise were:
1. Learning how to prove things with math
2. "Baby compilers" machine code, building an assembler, building a simple MIPS compiler, regular expressions, parsing, etc
There's a lot of other topics but those two really set the foundation. All algorithms class and data structures are best understood with a mathematical intuition. Not to mention you want to go into VR, lin alg might help you.
YMMV. Lots of great programmers don't have a math background, but for me that helped.
The CLRS book is pretty standard (but mathy).
You'll learn things as you work too so don't discount patience.
- srcreigh 5y agoAs far as math proof books go.. I'd just check the library for something which covers stuff like truth tables in the 1st chapter and then lots of proof strategies (induction, breaking down by cases, contrapositive, proof by contradiction) with exercises. And find somebody to correct your mistakes which you will make XD
- srcreigh 5y agoI found one! OP, please check out this Mathematics for Computer Science book from MIT. [1] That book can be found on the Teach Yourself Computer Science page. [2] The TYCS page says this book is advanced... but they teach this content to 1st years at University of Waterloo.. so really it's just difficult beginner material. [1]: https://courses.csail.mit.edu/6.042/spring17/mcs.pdf https://courses.csail.mit.edu/6.042/spring17/mcs.pdf [2]: https://teachyourselfcs.com/#math https://teachyourselfcs.com/#math
- jmkr 5y ago> All algorithms class and data structures are best understood with a mathematical intuition. It's funny, I like to say I program by intuition. Trying to go through algorithms now, many years after college, makes me realize some math shortcuts really help, and I no longer have an intuition for that.
- srcreigh 5y agoWould love to hear an example if you can share more!
- Mezzie 5y agoAlso maybe formal and symbolic logic. I don't have a CS degree, but I had a class where we, as a class, created an entire analogue symbolic logic language from scratch and it's by far one of the classes that's had the most value for me when doing any kind of tech/dev work. No idea how/if that's approached in CS programs, though...