btaylor2401
Data structures and algorithms are the obvious things, but also usually the easiest to fix -- big-O is not that hard to understand, and Wikipedia will give you an overview of pretty much all the major algorithms (sorting, searching, etc.)
Really? Is the whole topic of data structures and algorithms
left out of modern CS courses? If so, what in the name of Your Favourite Deity
do they teach?!
Back in the early-to-mid-90s, a typical CS course would include subjects on what I think of as "the basics", including:
- Data structures and algorithms
- Digital circuits (combinatorial and sequential)
- Programming languages and compilers
- Databases
- Operating systems
- Theory of computation (e.g. languages and automata, computability)
Plus a bunch of area-specific subjects like:
- Numeric analysis
- AI
- Logic (e.g. non-classical logics)
- Graphics
And that's on top of the basic science subjects (e.g. calculus, statistics, discrete mathematics).
Things will have changed because different stuff is important (e.g. networking/web stuff is arguably more important than numeric analysis for most careers, plus new fields like cloud computing and bioinformatics), but I would hope that the basics are still the basics.
amzr
To give an example, my expectation was that many self-taught people [...]
My experience is that the one drawback of being entirely self-taught is that you're not forced to study things which are important but whose relevance isn't obvious at this very moment. One obvious example is archaic data structures which aren't useful in the modern era, but teach something important about the way that new data structures are designed or analysed.