Hacker News new | ask | show | jobs
by ecshafer 1474 days ago
I don't believe that is true.

As a trivial example, to say that you have never used Discrete Math in your work means that you have never for example write if(a && b) or have never done if(!a && !b) and judged it to be cleaner than if(!(a || b)). This also means that you never used a finite state machine, strings, combinatorics, trees, graphs or modulus.

I would believe that you have not explicitly sat down and worked out Discrete Mathematics proofs. But the ideas of Discrete Math are pervasive and unlikely that you have never used them.

3 comments

Discrete maths is graph theorems, groups, galois fields, and so on.

There are several algorithms (in for example graphs and crypto) that you can not understand or implement without discrete maths. But even then, only the basic level is required.

Maybe only guy ever needs to know these things in a FAANG? (Meaning, could implementing these algorithms keep more than guy busy?)

GP explicitly stated they were referring to what is taught/learned in a discrete maths class.

finite state machine => usually taught in a theory of computation class

strings => wtf?

combinatorics => would be taught in a discrete maths class but I can totally believe that a software engineer has never used combinatorics aside of solving toy problems

trees, graphs => more likely dealt with in a data structures and algorithms course. That said there is a discrete maths slant on how these topics can be approached, but they involve proofs that nobody really cares about when writing software

modulus => those are usually dealt with under number theory classes, besides, unless you're implementing RSA or some cryptographic function, usually the grade 8 level understanding of modulus (i.e. remainder of a division) suffices

That area of computation is a subfield of discrete mathematics, and these are all topics I looked up in my old discrete mathematics textbook.
I would think that would be more logic than discrete math?

Math is a good abstraction, such that it can be brought to describe the work many other fields do. It doesn't stand that what the others are doing is automatically math, though.