I decided to give this course a go after reading the eye-opening paper The Structure and Interpretation of the Computer Science Curriculum [3], and then discovered the edx course in HN [4] [5].
Although having programmed for many years it totally changed the way I look at programming; I followed this with the sadly unfinished but still excellent How to Design Classes [6], which consistently extends this initially FP approach to OO. To check how this approach is language neutral, have a look at Design Recipes in C [7].
Another neglected but wonderful resource is MIT OCW Elements of Software Construction (the 2008 version) [8], which, like the above, is centered around design rather than coding.
What did I get out of all this? A systematic approach to programming.
[1] https://www.edx.org/course/how-code-simple-data-ubcx-htc1x
[3] https://cs.brown.edu/~sk/Publications/Papers/Published/fffk-...
[4] https://news.ycombinator.com/item?id=9810542
[5] https://news.ycombinator.com/item?id=16455240
[6] http://www.ccs.neu.edu/home/matthias/htdc.html
[7] https://hci.uni-hannover.de/files/prog1script/script.html
[8] https://ocw.mit.edu/courses/electrical-engineering-and-compu...
However, since we're in the 'you don't know what you don't know' thread, I really have to ask. Are Jeff's training exercises really that good?
I can tell you for sure that the exercises I linked are great and essential. I have found them on my own over years, and it was a breath of fresh air to see someone present them.
On the other hand, a topic that interested me for a while was rate of protein absorbtion (i.e. "Can we only absorb 16 grams of protein in a sitting, and eating anything over that is a waste."). Jeff presents a strong opinion, which is that there is no limit, but I don't think his logic is solid. Seems like the issue is still very much under debate, and while what he says makes sense, I doubt he knows it to be fact, though he presents it as such.
On the other hand, I do buy into the whole "physical therapist" part of his brand. But you can't keep pushing new videos telling people to do the same 5-10 exercises.
If "teaching yourself" means trying to find resources to learn something you're interested in, why would that make you an idiot?
Don’t need a teach for that instruction though.
we all have blindspots, much more when we're just starting something new.
You don't need "a good teacher and a structured education system" to identify that, because what's essential in a domain is not a function of you. It's a function on the domain itself. Or, in other words, it's enough for a good teacher somewhere to identify important areas and create some structure, and everyone can benefit. You don't need that teacher for yourself (but you might want to read his book).
There is no substitute for knowing CS50 exists for learning to program. There is no substitute to "Speed Secrets" (the book) for learning to drive fast, etc, etc.
The problem is that, as a beginner, you don't know what's good. As a beginner, you don't know that this really will prevent any knee instability:
http://www.moveforwardpt.com/assets/cbe46e14-86d6-4ed1-8d53-... (PDF warning)
or these really are ALL great exercises:
https://www.youtube.com/watch?v=ZA8GzhFh_CQ
Etc.
I wish I had someone give me these things as a kid. I would have wasted much less time.