How much math do I need to know to be a good programer?

Thank you pjt33! I have printed out the tutorial and will be reading it on my commute to work tonight!

Sinuath, maybe this is a good illustrations as to how Calculus is a gateway drug…errr, gateway course:
http://math.berkeley.edu/courses_descripts.html

Note, Math 1B (2nd semester calculus) is needed for courses like 53 & 54 which are in turn needed for the first round of upper division courses, such as 114 “[b]Introduction/b to Applied Mathematics”.

There IS a lot of programming work for people without math background, but it comes and goes, has a very dicey “business cycle”.

  1. Something valuable can only be done with great difficulty.
  2. Someone makes a tool so lots of people can do this valuable thing – often leads to lots of new programming hires.
  3. Someone figures out how to automate this valuable thing – leading to lots of same new McProgrammers getting laid off.

You don’t need any math at all to be a pro gamer.

I’d say you can come a long way with the most basic math, and a nice working brain… Ofcourse your collisions will be home-made and not so realistic, but it can work :slight_smile:

pjt33, finding something in a sorted list with random access does not need to read all the input. It just one example of true O(log(n)). Also picking something that may have “good” average case compared to an alternative that has this complexity as a worse case is not better by any stretch of the imagination.

Why do so many CompSci majors beat quick sort to death I will never know.

Fair point.

(You’ve seen people using an O(n^2) search through a sorted list?! Ouch)

Big-O is a very important metric but it isn’t a gleaming sword. Were that the case many methods would never see the light of day. A trival example: the splay tree. Worst case = n, average case = ln(n). However with the right kind of temporal access patterns searches will approach constant time.

This illustrates my point really well. There are a lot of CS majors that are now lost as to what we are talking about. Personally having some idea is IMO mandatory. You don’t really need to know what NP=P means, but you need to understand big O little o and real world performance scaling issues. More importantly you should know that “common problem X” can be solved with “algo Y” in O(splat) complexity.