Ever since I first saw a binary integer program with millions of variables solved in less time than it took me to hit enter I realized that the fact that I had made it through graduate school for computer science, and never encountered the sorts of optimization algorithms happening in the field of operation operations research is a sad one.
Don't feel bad, after an undergrad degree and over 30 years in the field I still have to look up exactly what NP, NP hard, and NP complete means every time I see them.