Fairy dust on the diploma

When I was in college, a friend of mine gave me a math book that I found hard to get through. When I complained about it, he told me “You’re going to finish a PhD someday. When you do, do you think there’s going to be fairy dust on the diploma that’s going to enable you to do anything you can’t do now?”

That conversation stuck with me. I realized that I just needed to work hard rather than wait for my intelligence to mysteriously rise at graduation.

Accelerated learning

Derek Sivers tells how a mentor was able to teach him a semester’s worth of music theory in three hours. His mentor also prepared him to place out of four more classes in four sessions. He gives the details in his blog post There’s no speed limit. It’s an inspiring story.

However, Sivers didn’t go through his entire education this way. He finished his degree in 2.5 years, but at the rate he started he could have finished in under a semester. Obviously he wasn’t able to blow through everything as fast as music theory.

Some classes compress better than others. Theoretical classes condense better than others. A highly motivated student could learn a semester of music theory or physics in a short amount of time. But it would take longer to learn a semester of French or biology no matter how motivated you are because these courses can’t be summarized by a small number of general principles. And while Sivers learned basic music theory in three hours, he says it took him 15 years to learn how to sing.

Did Sivers’ mentor expose him to everything students taking music theory classes are exposed to? Probably not. But apparently Sivers did learn the most important material, both in the opinion of his mentor and in the opinion of the people who created the placement exams. His mentor not only taught him a lot of ideas in a short amount of time, he also told him when it was time to move on to something else.

It’s hard to say when you’ve learned something. Any subject can be explored in infinite detail. But there comes a point when you’ve learned a subject well enough. Maybe you’ve learned it to your personal satisfaction or you’ve learned it well enough for an exam. Maybe you’ve reached diminishing return on your efforts or you’ve learned as much as you need to for now.

One way to greatly speed up learning is to realize when you’ve learned enough. A mentor can say something like “You don’t know everything, but you’ve learned about as much as you’re going to until you get more experience.”

Occasionally I’ll go from feeling I don’t understand something to feeling I do understand it in a moment, and not because I’ve learned anything new. I just realize that maybe I do understand it after all. It’s a feeling like eating a meal quickly and stopping before you feel full. A few minutes later you feel full, not because you’ve eaten any more, but only because your body realizes you’re full.

Related posts

Trading education systems with China

American creativity is declining according to a recent Newsweek article. The article says that America is embracing rote learning just as China is embracing creativity.

In China there has been widespread education reform to extinguish the drill-and-kill teaching style. … When faculty of a major Chinese university asked [Jonathan] Plucker to identify trends in American education, he described our focus on standardized curriculum, rote memorization, and nationalized testing. “After my answer was translated, they just started laughing out loud,” Plucker says. “They said, ‘You’re racing toward our old model. But we’re racing toward your model, as fast as we can.’ ”

Ken Robinson argues in his TED Talk that rather than encourage creativity, schools kill it.

Related posts

Endless preparation

In his book Made by Hand, Mark Frauenfelder quotes Peter Gray on what’s wrong with contemporary education. Gray says that school is about

always preparing for some future time when you will know enough to actually do something, instead of doing things now. And that’s such a tedious approach for anybody to take to life—always preparing.

Related post: “Just in case” versus “just in time”

Preparing for innovation

Thoughts from Tom Green on preparing students for innovation.

Today, many critics lament the lack of innovation in our society and draw the conclusion that more emphasis on teaching mathematics and science will lead to innovation. That will probably fail. Innovation comes from repeated successes in innovating. Innovation means trying ideas outside the accepted patterns. It means providing the opportunity to fail as a learning experience rather than as an embarrassment. … the traditional school powerfully suppresses any tendency toward being innovative. Both teachers and students are driven to conform.

From Bright Boys: The Making of Information Technology.

Related posts

Just-in-case versus just-in-time

What do you learn just in case you’ll need it in the future, and what do you learn just in time when you do need it?

In general, you learn things in school just in case you’ll need them later. Then once you get a job, you learn more things just as you need them.

When you learn just-in-time, you’re highly motivated. There’s no need to imagine whether you might apply what you’re learning since the application came first. But you can’t learn everything just-in-time. You have to learn some things before you can imagine using them. You need to have certain patterns in your head before you can recognize them in the wild.

Years ago someone told me that he never learned algebra and has never had a need for it. But I’ve learned algebra and use it constantly. It’s a lucky thing I was the one who learned algebra since I ended up needing it! But of course it’s not lucky. I would not have had any use for it either if I’d not learned it.

The difference between just-in-case and just-in-time is like the difference between training and trying. You can’t run a marathon by trying hard. The first person who tried that died. You have to train for it. You can’t just say that you’ll run 26 miles when you need to and do nothing until then.

Software developers prefer just-in-time learning. There’s so much out there that you aren’t going to need. You can’t learn every detail of every operating system, every programming language, every library etc. before you do any real work. You can only remember so much arbitrary information without a specific need for it. Even if you could learn it all in the abstract, you’d be decades into your career without having produced anything. On top of that, technological information has a short shelf life, so it’s not worthwhile to learn too much that you’re not sure you have a need for.

On the other hand, you need to know what’s available, even if you’re only going to learn the details just-in-time. You can’t say “I need to learn about version control systems now” if you don’t even know what version control is. You need to have a survey knowledge of technology just in case. You can learn APIs just-in-time. But there’s a big gray area in between where it’s hard to know what is worthwhile to learn and when.

Related posts

Word frequencies in human and computer languages

This is one of my favorite quotes from Starbucks’ coffee cups:

When I was young I was mislead by flash cards into believing that xylophones and zebras were much more common.

Alphabet books treat every letter as equally important even though letters like X and Z are far less common than letters like E and T. Children need to learn the entire alphabet eventually, and there are only 26 letters, so teaching all the letters at once is not bad. But uniform emphasis doesn’t scale well. Learning a foreign language, or a computer language, by learning words without regard to frequency is absurd. The most common words are far more common than the less common words, and so it makes sense to learn the most common words first.

John Miles White has applied this idea to learning R. He did a keyword frequency analysis for R and showed that the frequency of the keywords follows Zipf’s law or something similar. I’d like to see someone do a similar study for other programming languages.

It would be interesting to write a programming language tutorial that introduces the keywords in the approximately the order of their frequency. Such a book might be quite unorthodox, and quite useful.

White points out that when teaching human languages in a classroom, “the usefulness of a word tends to be confounded with its respectability.” I imagine something similar happens with programming languages. Programs that produce lists of Fibonacci numbers or prime numbers are the xylophones and zebras of the software world.

Related posts