Ask HN: What level of math is required to complete the teachyourselfcs subjects? - pilatesfordogs
======
thephyber
I had to look up teachyourselfcs[1]. I haven't tried the resources, but the
subject matter appears to cover standard undergrad BS in CS concepts.

The simplest answer is just to parity the math courses of a Berkeley / MIT /
Stanford CS degree, although it will likely be a little overkill, especially
if you intend to limit yourself to a strict subset of TYCS. For example,
databases and networking generally require very different math prereqs than
computer graphics or machine learning.

You will need a high school level of math (grammar school math, algebra,
trigonometry, basic stats) to be able to program most things.

 _Discrete math_ is used heavily in many parts of CS (it is integral to
understanding how to accurately negate programming expressions).

You should probably understand _calculus_ at a high level, although my
experience with actual calculus usage in my career is zero.

 _Probabilities_ are used heavily in concepts like caching / performance,
which will touch OS, arch, data structures, and likely others. For this, you
should find a "statistics for engineers" type of course / book for undergrads,
which may or may not make use of calculus to prove some of the statistical
concepts.

 _Linear algebra_ is used heavily wherever graphics cards are used, so
graphics, video, machine learning, etc. Linear algebra will likely have
calculus as a prerequisite.

 _Modulo math_ is used heavily for cryptography and some data structures (hash
tables). An undergrad will get a few days or weeks of this, and probably not
an entire course.

 _Set theory_ and _graph theory_ are used sporadically. Networking,
distributed systems, etc will make use of them.

Hope this helps.

[1] [https://teachyourselfcs.com/](https://teachyourselfcs.com/)

~~~
zabana
Thank you very much, this is exactly what I needed to know. (I had no idea
about TYCS but I started learning through MIT's opencourseware and realised I
strongly lacked in the math department.) This list is excellent, I'll
definitely use it as my learning roadmap. Again thank you.

