Well to be honest, there's a lot of people with CS degrees that don't know the fundamentals of basic CS either. I know, it sounds crazy, but you'll frequently run into people who graduate from reasonably top notch schools and have never heard of simple things like ternary search trees or suffix arrays, or even state machines.
In my experience I find that nearly all practicing programmers simply don't know a lot of important basics about building software or even how a computer works.
I have long lost count of CS masters that can't write 5 lines of code during a job interview.
Fair disclosure: I'm an engineer (I was trained to build computers instead of programming them). I've been programming professionally since 1987 and, among the top programmers I've met since then, two biologists, one engineer, one physicist, one ichthyologist and several ones who never graduated college, figure prominently.
In my experience I find that nearly all practicing programmers simply don't know a lot of important basics about building software or even how a computer works.