Impossible Things

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.

UPDATE 5/26/2015 – Get the Multiplication Tables Through 20 for Anki here.

42 thoughts on “Impossible Things

  1. Programming, eh? I graduated with a Computer Science and Engineering background but got hired into hardware so I haven’t really been doing much coding. And now I’m anxious about it. By the way, I hate standardized tests. Pointless.

  2. Sweet. Brings to mind a convo I once had about how, with the advance of technology, we have to store less and less in our heads, kinda like freeing up drive space to retain performance/speed on the ol’ computer. Babies are sponges who learn incredibly fast and efficiently. If we only had external storage drives so that knowledge wouldn’t bog us down. Perhaps that’s why you can’t teach an old dog new tricks. 🙂

    1. Thanks! I’m absolutely thrilled with all the positive feedback. To be honest, this whole post was a constant battle against Writer’s Block, and I even considered not posting it after I finished it.

      I’m overwhelmed by everyone’s positive feedback on this. Thanks guys!

  3. I’ve been screaming into the canyon for many years: It’s more important to teach kids how to think than what to think. Henry Ford was called an ignoramus by some paper or reporter. He put them in their place, because he could hire and fire experts and specialists that could get that info for him. He didn’t bother filling his mind with useless facts, since he knew how to find the facts. Today, anyone with a smartphone has access to more info than Henry Ford ever had at his beck and call. Like me. I had to look up “epistemology,” and it took less time than finding an actual dictionary. Your post makes more sense now that I know you’re not a skin doctor. 🙂

    1. Still, I gotta say that you’ve got to get facts out of the way before you move on to synthesis, epistemology, and methodology. The difference between a Journeyman and a Master is that the Journeyman completes a task, a Master completes it in less time, with more panache, and makes the project his own.

      It’s just really important that we get the facts out of the way so we can move on to the fun stuff.

      1. I totally agree, but teaching facts is always a challenge, and not everyone learns in the same way. I had no trouble being shown my multiplication tables for three years in elementary school and knowing them like the back of my hand to the present day. Now that the facts are out of the way, I can focus solely on those higher level topics (i.e. algebra, calculus, etc.). When you start mixing things and spreading them out over time, I (personally) learn less, rather than more. Others, however, are just the opposite, as you said. The question isn’t figuring out what works for everyone; it’s figuring out what works for the person, and finding a way to tailor education to them.

        1. I believe that when it comes to brute memorization, i.e. the facts, the only real way to learn them is memorization. The big thing I’d like to emphasize is that brute force memorization doesn’t have to be the teacher’s job to teach; it’s a task that can be off-loaded to technology with little to no loss in information transfer. Facts don’t take multiple approaches, although I’ll agree that concepts do; they’re fuzzier concepts that can’t be nailed down.

          Keep in mind too, my context coming into this article. I’ve got over 13,000 flash cards on Anki related to Japanese. There is no other way besides brute force to memorize the facts I need to know on Japanese so that I can get on to synthesis, which is what I really need to be considered skillful.

          When cramming facts is holding up learning, we need to fail faster and efficiently, through good software design, so we can get to the part where it becomes easily accessed knowledge.

    2. Greg,

      Such a great post (and Matt — I agree with the increasing importance of method and approach over fact) I too had to look up epistemology.

      Until google or Wolfram Alpha gets hardwired into our heads (which is an ugly thought that I’m sure I won’t have to deal with in my lifetime) you have it right. Command of facts are the foundation of expertise.

      Also – pity this post was tagged as programming in freshly pressed.

    1. With writing I enjoy the process AND the result. Double win!

      There’ve been times though when I’ve hated the process of writing and only the manuscript soothes me. Those are the worst days. They happen. I try to write through them. 🙂

      Thanks for reading!

  4. We are more dependent on teachers and text books in the modern world. As such our thinking process is increasingly becoming dwarfed. Experiments, innovations and independent thoughts hold the key to leap jumps. Else we will be held responsible for the second rated citizenship being inculcated all over the world. Good share 🙂

  5. I am programmer and I don’t believe being a good programmer is the same as having a good programming language vocabulary. It is about knowing the approach to solving a problem. Even when you have all the resources at your fingertips, knowing what to look for is a skill.

    1. You’re definitely right. Programming is a way of approaching problem-solving by breaking each problem into a smaller, more easy-to-solve problem. I use the same approach in my writing, breaking down scenes into methods, for example. Being able to research well can get the facts to you fast, but I still bemoan the latency when I’m trying to just trying to make my job easier with it! 😦

  6. Greg, I like your writing style. We are very similar on vocation and taste. I think you are little downstream than I am, and it a pleasure to have come across your blog. I look forward to learning from your writing.

  7. I totally get your points on both issues. I do a lot of programming on Java 🙂 and my condition is very similar to you. I can create programs at a stretch but my knowledge is largely dependent on google :). and about education, the less said the better.

  8. I’d much rather be confident that I can find the answers I need, than be confident that I already know them. One allows me to keep learning, the other assumes I’m finished learning.

    1. Some subset of facts must be explicitly known, not just easily referenced. Which facts must be known depends on your calling. Without having memorized all the details of English grammar, I’d be stranded in the seas of doubt whenever I went to compose an essay or story. As another example, my Japanese composition isn’t half-bad, but it takes me forever laboring over the precise words, and reaching for reference materials. My spoken Japanese, which depends only upon what I carry with me, tends towards worse.

      I don’t feel there’s a division between knowing facts and stopping learning. I’d argue only after knowing facts can the real learning begin.

  9. Nice post, I really enjoyed it. Currently, C# is still an unknown island to me, I am more into Python, since it is so straight forward and simple. I can understand C code, but never really used it myself. In general I think 90% of the languages are similar, anyways. It’s just a little bit different in syntax here and there, but the big picture is always the same.

    1. It’s like painting. Once you’ve done watercolors, acrylics aren’t so hard to pick up. You’ll be slow at first, but the underlying principles are the same. Python and C# are that way, I think. 🙂

  10. I am glad I read right to the end to see this wonderful paragraph:

    “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?”

    If you learnt your times tables by heart, and many others things as a child/adolescent, then it is actually easier to learn new information by heart and integrate it into one’s thought processes. And the amazing thing I am discovering (at age 48) is that poems learnt by heart as a child can be recalled perfectly – at will.

    Don’t get me wrong – I love looking things up on the Internet and gobbling information just to full a temporary need to understand something in order to translate it, for example – but a well-trained brain is a true pleasure when you get older, and find yourself in the middle of nowhere with no access to entertainment of any sort..

  11. there are people born to make programs and they’re so blessed and very creative briliant minds, my boyfriend a good programmer he is currently working part time for inside edge.

  12. Very true. Given enough time and resources, anyone can solve a problem. In the end mastery is nothing but a state of knowledge and command of accumulated facts, and an ability to use them.

  13. Reblogged this on Rajnie's Blog and commented:
    My opinion on learning facts is that though, it is monotonous to learn the facts, it is essential to learn advanced things that are built on the simple facts. Application of facts are often more interesting than the facts themselves. So, knowing (not remembering) the facts is a pre-requisite for appreciation of the applications. Cheers! 🙂

  14. Greg,

    Did you ever end up actually creating that Anki mod? I’m currently teaching my students multiplication and division facts in Anki. I cobbled together a couple of add-ons to make it work, but I think your approach might be more elegant.

    1. Hoo boy have I not.

      Anki came out with Anki 2.0 which offers web support and multiple users per client, which eliminated the need for me to do that heavy lifting, but things have just been too hectic to actually dig in and write a mod to turn Anki input-based.

      My mom’s actually said this is fine, because it lines up with the “No one’s going to look over your shoulder once you leave school, but people will still expect you to get things mostly right” lecture she gives students.

      Since she’s fine with it, I’ve turned my attention back to writing, where it’s easier for me to focus.

      I’m sorry I couldn’t have better news…

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s