Last week I took Philip Greenspun's intense relational database systems class at MIT. I had built some modest database-backed applications before, but I had only learned the minimum that I needed in order to make my applications work. Being forced by the structure of the class to read and do exercises that I evidently was not interested in on my own provided the framework for me to learn much more than I ever had on my own.
But what material did we cover? Pretty much http://philip.greenspun.com/sql/ with some additional topics. I had seen that online book before. Why had I never made myself study the entire thing? Why had I never gone through all of the examples on my own? I don't know. I guess I didn't see the value in it. Now I do.
I have had the same experience over a somewhat longer term. I am/was an autodidact most of my life. I learned programming and software engineering mostly by myself while pursuing an electrical major. I switched to software development as a job and learned a decent bit of algorithms and theory mostly due to interest and sometimes due to necessity.
After displaying great disdain towards structured education for the first 8 or so years of my career, I eventually decided to go back to school for a masters. Things were considerably harder; I discovered that there were parts of math and theory that I didn't quite "get". Often I had "seen" these during my studies, but hadn't looked at it in any detail because it didn't seem interesting for some reason or the other. I survived masters (and actually did quite well thanks to some guidance from professors and being well organized)
After another couple of years of working, I decided to do a phd and proceeded to discover in great detail the list of fundamental things I didn't understand about topics I thought I knew well. It took quite a while to cover that ground back.
Overall my experience has been that the purely interest driven approach I took is extremely valuable. But at the same time it makes one prone to fundamental gaps in understanding compared to a more systematic approach. (Just prone. It may not happen). I have found it valuable to realize this. Among other things it encourages me to continue poking at the subjects I care about.
But what material did we cover? Pretty much http://philip.greenspun.com/sql/ with some additional topics. I had seen that online book before. Why had I never made myself study the entire thing? Why had I never gone through all of the examples on my own? I don't know. I guess I didn't see the value in it. Now I do.