* I loved political science and sociology classes. I would not have predicted that.
* I use my physics classes all the time, but never in ways I would have anticipated. "Hey, I wonder how high we are. Here's a rock we can toss down into that pond. Get your stopwatch!"
* I very rarely find myself working with finite state machines, but when I do, it's nice to feel comfortable reasoning about them.
* Big-O notation? All the freaking time. That's an enormously powerful tool for thinking about how systems will scale with the number of users, for instance.
When you recognize a state machine somewhere it makes the code and everything around it so much simpler.
Indeed, DeMorgans law is something I use regularly, but many devs don't know it
(^A.^B) = ^(A+B)
^A + ^B = ^A.^B
Heh! I also used it recently (and successfully) to argue with a particular vendor whose query language did not respect that transformation. I re-wrote a "not A and not B" expression to "not (A or B)", and the query broke. It was nice to be able to point them to the Wikipedia article and say "no, if your query language doesn't treat those as identical, then it's a bug and would you please fix it now?"