Last week Thursday, I chatted briefly with a coworker about my experiences working in C#.
My day job requires that I program on occasion, and so I do. My coworker wants to learn how to code, and so I’m teaching.
You’d think I’d be a terrible teacher. My code’s functional, but inelegant. My relationship to programming and math are the same as my view towards water. Definitely has purpose, but no desire to be drowned in it. I don’t enjoy the act of programming, like I enjoy the act of writing. I just enjoy the result. Hence, I’ll never be elevated to programming black belt.
When I told my coworker this, he responded, “What do you mean? You’re coding right now. What more’s there to it?”
“It takes me minutes googling examples and referencing others’ code. Real programmers don’t constantly need Google search and MSDN. Also, I can only code for fifteen minutes straight at a time before my eyes get grindy. My tolerance is increasing all the time, but this is where I am. Besides, if I loved it, I’d be way, way better, because I’d have made an Anki deck for MSDN libraries and have memorized all the facts. Boom, no more referencing. Forget code master, I’d be a code god.”
In Japanese, I defeated the very problem stymieing my C# learning. I recognize all the grammar, and can even use it if given time, but I lack the vocabulary to meaningfully create. So I search my Japanese dictionary, or MSDN for methods to invoke, since I’ve used those things too rarely. A master runs a compiler with the virtuoso skill of a novelist at composition, and because I’m unwilling to slog through the tedious fact memorization for programming, I’ll never elevate myself beyond a merely serviceable programmer.
Is this a problem? No. My productivity’s still high. I’m rarely to never blocked. But this is mainly thanks to a keen understanding of epistemology and methodology. In short, my knowledge base sucks, but my knowledge acquisition rate’s pretty damn high. I’ve got super-studying for my superpower, and that’s about it, other than my chiseled jawline and razor-sharp wit.
So what’s my point here? Facts are a bitch is my point.
For these purposes, a fact would be a question that can be answered in ten seconds or less. In other words, if you can make a flash card of it. Facts are the building blocks of higher creative functions, and are usually acquired through sheer brute-force memorization.
The modern world overwhelms us with facts, and I’ve heard constant complaints about how impossible it is to manage all the data a functional professional needs. I never understood this, because if you’ve got a great reference manual or a search engine, and some time to burn, facts pale before the power of effective epistemology and methodology. The problem is, people still think that thorough experts exist. I’m certainly thorough, but I’m rarely an expert. Experts know the facts, whereas I just go and look them up.
In some cases, local storage of facts cannot be avoided. Think speaking a foreign language, programming languages, medicine, and so on. How then, do these professionals manage their fact-load? No different than any other time in history. Through brute-force memorization.
On a tangential note, this weekend, my mom mentioned that many students in her algebra classes get problems wrong due to arithmetic errors. She expresses her frustration succinctly: “How can I teach algebra when I’m busy teaching math?” Here’s another teacher, tripped up by facts. Mom can’t teach methodology or epistemology, or any higher function things, because the building blocks for her students to understand the more complex discourse don’t exist.
So here’s a question. Why do we keep having teachers hit on facts? What if a teacher didn’t have to?
It’s no teacher’s job to teach me the 8311 vocabulary words that I have in my JLPT1 deck for Anki. Why should it be a teacher’s job to teach students their multiplication tables out to 20? Imagine if Anki did that, and we added all those facts to it over time. The students would be reviewing subject matter from their entire school career constantly, so that even high school seniors would still see the 2+2 flash card once every 3 years or so. That 8311 card deck of mine? I only review 60 of those cards a day due to the concept of Spaced Repetition, i.e., that if you get a card right, you need to see it less.
We’d spend less time teaching each fact, so we’d spend more time teaching more facts, or we could teach people how to cope with information processing and understanding which facts matter to them, a much more important endeavor in this information-glutted world. We could teach critical thinking.
Imagine the compound learning a child could acquire if we implemented this starting with the alphabet and arithmetic in kindergarten? The number of reviews grows infinitesimal over the course of a couple years, but the net effect would be infrequent refreshers of everything the student learned since kindergarten, reactive to the needs of each individual student’s memory. We do this for facts in science, literature, history, whatever we want our munchkins’ brains filled with.
Imagine a world where retention rates on last year’s subjects exceeded 90%. Imagine a world where reviewing last year’s work wasn’t the teacher’s job. Imagine a world where a teacher could focus on teaching new things, rather than rehashing old things. What would that world be like? What would those students’ stupid friggin’ standardized test scores be like?
It’s a nice thought.
Incidentally, I’m building a prototype mod to Anki with this eventual purpose in mind. I doubt it’ll catch on, but mom wants something to help drill arithmetic into struggling kids in a tailored way, and I can think of no better out of the box solution.
And so even now, programming’s not a bad tool for a man who believes in impossible things.