In late 2009, I rebooted my professional life, and as 2010 rolls around, I’m just about making it out of POST. I’m back in college in Santa Rosa. This means that I’m thinking about the learning process, especially as I watch my classmates. It’s both encouraging and discouraging to watch the people who are going through school with me. On the bright side, I’m doing well compared to my classmates. That smugness withers, though, when I remind myself that I don’t believe that anyone is just plain stupid. I have a high opinion of human potential. I think that if you see stupid behavior from people, there is a reason. So it bothers me a little that my classmates have some difficulty with things that seem easy to me.
One explanation that I turn to a lot is the frameworks explanation. Being a good developer or sysadmin requires a lot of understanding of how computers think, and how to tell them to think other things. This is abstract and demanding, and as much of a pain in the butt as it is to learn the finicky specifics of a given OS, protocol, or programming language, it’s still easier than learning abstract concepts from zero. It’s also easier to teach that way.
The problem is that if you learn specifics and specifics and specifics, you’ll hit a wall eventually. Efficiency will drop, or you’ll stop absorbing new things as readily, or you’ll have to spend more time trying to remember which set of things you’re dealing with. You need a model, a framework for understanding things, a set of patterns in your head. The transition from memorizing specifics to exploring patterns and frameworks is important, and I think it’s important and under-addressed. I’d like to see my school address it explicitly.
Even if you can’t give people lessons in bridging the gap between specifics and frameworks, pointing out that it exists and that it needs to be bridged will give students a push in the right direction. Figuring out frameworks isn’t impossible—but generally, one needs help, and the simplest form of help is pointing out that the problem exists.