I was wondering if anyone who took a computer science course (or anyone else) could share any insight into the kinds of useful theoretical (or more practical) topics that are taught there that autodidacts commonly miss.
I would assume concepts/conceptual areas are missed for a few reasons:
- People simply haven't thought about learning it
- The ideas are difficult to get your head around without some in-depth explanation
- Despite being useful, the topic is (initially) uninteresting, and require some more motivation to get started in learning
To give an example, my expectation was that many self-taught people would lack a solid understanding of algorithm design, and separately an understanding of what the computer is actually doing at a low level. To rectify these in a partially combined fashion, I have been working my way through the Kleinberg and Tardos 'Algorithm Design' book and learning the basics of x86 assembly language using 'Programming from the Ground Up' by Jonathan Bartlett (freely distributed at http://download-mirror.savannah.g...grammingGroundUp-1-0-booksize.pdf). The plan is that once I have a sufficient grasp of assembly, I'll try to implement the algorithms using it.
I'm very interested to hear what thoughts you all have on this.