Put THAT On The Fridge

There aren’t a lot of firsts left in your life when you’re twenty-seven so imagine my exhilaration last week at Google when I encountered an annoying technical problem and rather than grind the solution out over several hours of pointing, clicking, and transcribing, for the first time ever, I wrote twenty lines of code that solved the problem in several minutes.

I created something from nothing. And that something did something else, which is such a weird, superhuman feeling. I’ve got to chase this. I’m on a very dark path right now.

At the same time, I’m going to resist to the bitter end the urge to write up some grand prescription for education-writ-large based on something as flimsy as my own personally satisfying learning experience. There’s way too much of that in the edublogosphere without my own contribution.

I'm Dan and this is my blog. I'm a former high school math teacher and current head of teaching at Desmos. He / him. More here.


  1. I needed to pull down daily average temperatures from a given city over a 50-year span. The alternative to coding a solution was to change the year in a drop-down menu, click “view,” and wait for the page to load. Which, dragsville. So I wrote a (really ruddy) program that did the same thing for me while I poured myself a latte.

    And, yeah, this is Python. And it’s really easy to learn, depending on the tutorial. I tried thee or four in the run-up to my job with Google and the best by a long stretch was the Head First Programming book.

    (Full disclosure: I’m reviewing some of O’Reilly’s other materials but I had nothing to do with Programming.)

  2. You said the program was “really ruddy”, yet you gave it an A+. If a student had inelegantly solved a problem, yet still solved it, would they too have gotten a “way to go”?

    Not saying that your code doesn’t deserve it. It does what you wanted it to do.

  3. Welcome to the coder’s club!

    If my own experiences aren’t the exception, I expect you’ll have many more firsts in your programming career. I just had a huge “aha” moment a few weeks ago, nearly three years after writing my first program.

    To answer Jackie’s question, I would absolutely give a “way to go” to a student whose solution was inelegant. That student, more than anyone, would appreciate and benefit from seeing a more direct approach. I’d be on the lookout for improvement.

    I can’t wait to hear more about your Python adventures. Please share what you can.

  4. @Jackie, who writes “A+ Way To Go” on his own work? And pins it to his own fridge? Obviously, I’m just funnin’ here. I’m proud of the code but I’m sure I could’ve been more concise or used better syntax.

  5. I, on the other hand, am a young 42, and eager to have another first (surprisingly, they do keep turning up). How did you do that?! Man, that is so cool!!! I kind of get the Python code, but how do you get it to talk to the browser and stuff?

    Kay, I totally need to learn Python next summer.

  6. I totally write “A+ Way to go!!” on all of my own work and post it on the fridge. The kids get the bottom 25% of the fridge for their “drawings” and I get the top 75%, cause that’s what most people look at anyway.

    The act of creation and the feeling of power that comes with programming a computer to do what you tell it to are what addicted me to the activity. I’m really glad that you got to experience those feelings, too. A+ Way to Go!!!

  7. Congratulations Dan! Just so you know, they usually have plenty of fluorescent lights in the basement computer labs, so it’s not really that dark of a path…

    If you’re curious at all, there’s some big hoopla going on right now to try and reform CS K-12 education. (Don’t ask me what CS K education means, I have no earthly idea) Here’s the page for the latest PR push: http://www.csedweek.org/ I imagine the whole area might be a bit foreign to you, but I have this gut instinct that the whole reform could stand some criticism of the kind you and others tend to dish out around here.

  8. >There aren’t a lot of firsts left in your life when you’re twenty-seven …

    You are so wrong!

    Let’s see, I’m 53. I first became a mom at 46. I first got a short story published in my 30’s, I got my first fulltime college position in my late 30’s, I first performed a poem of mine in my 40’s, I bought my first house in my 40’s, …

    I expect to keep having glorious firsts however long I live. Don’t you?

  9. Dude, do you think life ends at 30 or something? Cool it with the “no more firsts after 27” stuff. I don’t know if I’d call the satisfaction from your learning experience “flimsy.” For someone as reflective as yourself to actually be proud of something that an experienced programmer might consider elementary, you may have tasted the real “stuff” of why we do what we do. Now excuse me while I go rinse my dentures.

  10. I’m going to go all Gary Stager on you and talk about how programming is such a powerful constructivist tool — and your response to solving a real world program with 20 lines of code is a great example. I loved teaching programming because it did get kids thinking in a logical pattern that few other tasks can create — and it did so while allowing kids to create stuff that worked.

    In the many years of learning programming, two years of coding full-time, nine years of creating Beacon’s web portal and every now and then hacking and slashing on SLA’s web site, that feeling of “YA-FREAKING-HOO!” never went away for me.

    No, we shouldn’t extrapolate twenty lines of code to a whole massive educational philosophy, but we shouldn’t shy away from the lessons there, either. Learning from real work that matters is seven kinds of cool.

  11. Raise your hand if you thought I was serious with “There aren’t a lot of firsts left in your life when you’re twenty-seven.” Obviously I need to rejigger this blog’s approach to sarcasm.

    @Peter, thanks for the link. The first few challenges have been useful to me.

    @Chris, I’m not determined to not learn any lessons here. But after participating in the edublogosphere for a few years, I become quickly crankly when our leading thinkers experience something exhilarating online and take that exhilaration (often rightly) to mean something is wrong with our schools while leaving the broad and narrow strokes of how we operationalize that exhilaration in our schools to … the teachers … those lazy, recalcitrant teachers who don’t appreciate the clarity of vision our leading thinkers have for 21st-century schooling.

    I would love to package problem solving and math into the same course in Python programming but the details of that course – everything from a pacing guide and curriculum to where it figures into our current course sequence – is vague to me and if they’ve been articulated by anybody else, I haven’t seen it.

    So, in the meantime, I’m trying to restrain myself.

  12. Well, that makes me cranky too… especially since I’ve spent the last four years with an amazing group of teachers and students figuring how just how hard it is to do it every day.

    And I’ll look for those resources. I have heard of folks teaching math through programming, but I don’t have a link handy… I didn’t hybridize math and CSE. I just taught programming, which was a real blast.

  13. Yeah, interesting syllabus. In my position at Google we’re trying to graft Python programming and computational thinking onto California’s Algebra 1 standards. Problem is, it’s kind of tricky to graft any kind of higher-order thinking onto California’s Algebra 1 standards, which are a long list of procedural skills and rote operations.

    I mean, how do you position “solving multistep equations” or “completing the square” as an exercise in programming? My team has come up with a lot of solutions – some more inspiring than others – but the Litvin’s have taken an alternate route and just thrown those standards out. They don’t address them.

    Which, in certain cases, is exactly the right approach. But, whatever my gripes with the status quo, I have to contend with the fact that this course won’t see daylight in a public school as anything but an elective.

  14. I applaud your efforts to tie something in with the CA Algebra I standards, but that almost seems like trying to find a way to teach programming using a telegraph. I mean, the CA standards are terrible. They are naked math–and not even good naked math.

    If you can pull this off, I’ll be super impressed, but why not use the national standards?

    I’m sorry for being so negative. I just want the CA standards to be changed so badly and I hate to see your team work so hard with such a lead weight dragging you down.

  15. Raise your hand if you thought I was serious with “There aren’t a lot of firsts left in your life when you’re twenty-seven.” Obviously I need to rejigger this blog’s approach to sarcasm.

    I’m raising my hand on this one. You weren’t being sarcastic; you were being naive.

  16. Yep… that’s the feeling. That’s why I teach CS. It doesn’t happen every single day, but it happens a lot of days. Kids get to experience that power.

    By the way, when do we get to see the python/algebra curriculum stuff? That’s something I could seriously get on board with.