I need to defend theory of computer science here, it seems. Please note that this computer science , not computer engineering . The idea of automata, regular languages, turing machines, and whatnot inform some of the most fundamental results of computer science . At least in the fields where I work [compilers, formal verification], all of the above theory is common parlance. Everyone working on this stuff knows all o…
A lot of people give theory a lot of crap. But that's normally because they are not comfortable with the material. If you are comfortable with the material, you see applications for it all over the place, and use it all the time. Sure, you don't have to ground your system in some kind of formal model (you can just code-til-it-works), but when you do I've found it always ends up as a far simpler and more resilient pro…
I think history class was wasted on me in high school because I was a kid and didn't have much life experience. But years later with a better grasp on human nature I think I would have had a better grasp.
Another example is a foreign language class. I took it in middle school, in high school and later in college. I learned lots and lots of theory for many years. But only when I went to another country did I learn I hadn't learned.
I think theory needs to be combined with: experience and practice.