Coding used to be about learning about the mathematical underpinnings of computation and then learning a specific mapping from the math to the software implementation. These days we don't teach that to undergrads (or maybe they get it in passing in a survey class.) We don't teach parsing. It seems we teach a list of features you should expect in your Python implementation or Linux version. Maybe you get a class on SQL. It's astonishing to me that kids today can get a CS degree without learning what Lambda Calculus (or even Pi Calculus) is (are). I got a PHYSICS degree and took a course on the mathematical underpinnings of computation so I would understand why all that FORTRAN code I had to maintain looked as funky as it did. As best I can tell, our 4 year research institutions are a weird mix between day care facilities and trade schools. Just once I would love to meet a recent undergrad who had taken a compilers class or understood the difference between s-expr's and m-expr's.

File under "old man yells at cloud."

High-five! I also learned about all this as physics undergrad trying to escape from Fortran.

We should start a support group.