I think knowing abstract algebra is pretty helpful to understand types, but I'd imagine you were likely exposed to a great deal as an aerospace engineer already.
> I have ATTAPL and couldn't get through it. Now I know why. I didn't realize there was a more introductory book in the series. Thanks!
This brings out a point not explicitly mentioned in your original post. A key thing you get in college is access to people who know the topology of your field. It is a routine recommendation to start with TAPL. A map is invaluable in order to limit backtracking or dead ends.
In my field of reverse engineering, those who have produced the top public results are completely self taught. Advanced forms of reverse engineering require a large smattering of knowledge from many graduate level areas of Computer Science and Mathematics. Autodidacticism of some form is the only option, whether it involves complete self-instruction or designing a custom curriculum in graduate school. The aforementioned authors have described the process of learning without a roadmap as extremely painful. If you don't have to subject yourself to it, I don't know why you would.
Tangentially, this reminds me of something else: the grandparent studied another STEM discipline (aerospace engineering). Yet he's not only been able to master programming well enough to be employable as a core software engineer, is able to self-study non-trivial topics in Computer Science (that are generally only taught to early graduate students or advanced undergrads), and works as an attorney.
I think that illustrates the real value of education, which has nothing to do with brand name or credentialing. I like that I studied enough electrical engineering to do hobbyist projects with FPGAs; enough physics, math, and other sciences to be able to make sense of Nature articles, as well stay up to date with relatively new and fast growing fields like neuroscience and molecular biology.
Not everyone will extract this out of their degree program and there are definitely a few universities that make it difficult to get this kind of background knowledge. However, I'd wager that most good universities (ABET accredited CS/engineering programs, most faculty having Ph.D.s and publishing, healthy portion of students going on to graduate schools, etc...) offer this to students -- irrespective of their USNWR rating is (which, I think, at least for general undergraduate studies becomes more of a game beyond a certain point).
Could MOOCs offer this? Probably, but having structure and providing a toplogical sort (just like you've described it) of disciplines -- as well as things like labs for hard sciences -- is also valuable.
A key thing you get in college is access to people who know the topology of your field. It is a routine recommendation to start with TAPL. A map is invaluable in order to limit backtracking or dead ends.
Be sure to check out Pierce's new book, Software Foundations[0], which is available for free online. Learning how to use Coq is quite an amazing experience.
Now there's something I've been wanting to self-study but haven't found a good intro to. Thanks! (I'm an academic, but eventually they don't let you keep attending school, so you have to learn the rest on your own, and some of the same problems arise...)
I wonder if some better way of discovering books suitable for self-study would solve at least a part of the problem. I find a lot of textbooks are aimed mainly at being used as a resource in a course, which isn't quite the same use-case. Others are more of a compendium or reference, which also isn't the same thing, e.g. you could learn algorithms from either CLRS or Knuth, but I don't think they'd be engaging as introductions. So far my method is to ask around and make notes when people suggest things in threads like this one.
An even rarer genre of books is the high-level, creatively written book that lets you understand why an area is interesting in the first place, but which still digs enough into the concepts that you learn something about it. Sort of the textual equivalent of the dazzling lecturers you occasionally run across in universities (alas, not most of them, myself included, though I do try to provide students with a high-level map of what's going on in an area). There are some good books in physics, which attracts a lot of good popular writing leaning toward the harder-science end of the spectrum, but not as much elsewhere. In CS, only Hofstadter's Gödel, Escher, Bach comes to mind, though I'm sure I'm overlooking something.
http://www.cis.upenn.edu/~bcpierce/tapl/ (It is very amenable to self-study)
and then:
http://www.cis.upenn.edu/~bcpierce/attapl/ (Began working my way through this, but haven't quite)
I think knowing abstract algebra is pretty helpful to understand types, but I'd imagine you were likely exposed to a great deal as an aerospace engineer already.