Are Storytellers The Best Programmers?

As Fred Wilson likes to say, often the best content for blogs is in the comments.  In this case, it was in an email I got from Boaz Fletcher in response to my post Web Sites and Books for Novice Programmers.  Boaz made a very interesting observation:

“As for learning how to code, I think good storytellers make the best programmers. I used to freak prospective employees out by having them write a story for me instead of the “what’s wrong with this code?” tests. But it showed me who was able to think well, organized, creatively, and filled in the details.”

He also had an insightful comment about teaching kids to program.

“I had an exchange with someone in the industry about teaching kids how to program – or, more appropriately, how little there actually is to start kids off (think Alice or Scratch). Considering the ubiquity of computers in our lives, I think it’s untenable that most people are just passive users of the things. It should be mandatory to teach kids how to program. They don’t all need to become software engineers (never mind that I think most software engineers today, aren’t) but a basic understanding of how to build something simple and useful to them. Think about “shop” in junior high – hands-on manipulation of the physical world. So you may never need to lathe out a wooden bowl again, but at least you can hang a picture straight. Kids can browse the net, but don’t have a clue why their computer gets stuck when they’re trying to print a webpage.“

I’ve been thinking and talking about this particular construct a lot lately, especially in the context of NCWIT.  A person younger than 15 years old has never experienced life without the existence of the web.  Their view of the world, especially 29 years from now when they’ll be as old as I am today, will be radically different because of how the computers and the web are integrated with their life.

I never took shop in high school.  I’m not mechanically inclined (or skilled) at all.  Not only can I not hang a picture straight, I’m not sure I know what to do with a power tool.  And forget changing the oil in my car.  When I reflect on things I wish I had done more as a kid, it’s tinker with mechanical things so I’d be more comfortable with them.  In contrast, I’m completely comfortable with anything that’s “not physical” – I like to say "I’m only interested in it if I can’t touch it.”

We are definitely living in a world where both are important, but the not-physical is becoming increasingly pervasive.  Making sure that young people are tuned into this seems critical.  When I think hard about this, there’s real insight in Boaz’s comment about the power of storytellers.

  • Brad – great post!
    When I was a kid, I had a little 80cc motorcycle. One spring when my dad and I took it out of storage we found that the engine had completely seized. My dad, who is quite an accomplished tinkerer and mechanic, wasted no time in yanking the engine and disassembling it on the workbench. He was also the kind of dad who let me follow him around the workshop and under the car 🙂 A few hours later the engine was un-seized and back on the bike and running!

    Okay, listen 😉 buy a set of metric and sae wrenches from your local hardware store. Go garage sailing and find a used, run down, (broken even) lawn mower. Go to a book store and buy a book on small engine repair.
    Take the wrenches, lawn mower and book into the garage, take the motor off the deck and and start taking it apart.
    Don't make any goals, just take it apart and make sure you put your hands on everything. You're gonna make a mess, get dirty, and learn a ton.
    Tada – you'll be more comfortable with machines in no time.

    For extra credit look at all the parts that control the motor (throttle, choke, intake, exhaust) and imagine how you might control them with a little ARM development board from Atmel (or whoever – maybe bug labs).

    There's a reason for the saying "get your hands dirty" 🙂

  • Interesting sentiment…I think I'll add that to my interviewing techniques for positions that are less problem solving oriented and more organization and creativity based.

    I currently favor the brain teaser as a means of evaluating talent. I always give some kind of brain teaser with an understanding that I don't care if they get the answer right or not, but rather how they approach the problem. I ask that they think "out loud" …you can learn so much about an individual in a short period of time (10-15 min). Do they extrapolate well or do they have to literally run into a dead end to become aware of it. Do they make excuses "I'm usually good at these", look for shortcuts or dive into brute force methods. Do they take suggestions on how to solve it well or do they clam up (signs they don't work well with teams). Do they recognize patterns quickly or does it take many iterations. I want to know what kind of TALENT they possess, not just the chronicles of where their career path has taken them which I can always check references for.

    It might make for a tough interview, but it's the only time you have to vet someone before you let them in the door (always hard to remove someone once they're inside).


  • Good writing is the greatest display of clarity on the planet, as well (in my humble and biased opinion as a writer). When looking at code, clear communication of what is going on in a memorable way is golden.

    Good stuff, Boaz. Stumble across any great, unknown writers?

  • Brad,

    Thanks for pointing this out. My son just turned 7 and I am teaching him how to program using Python's turtle library. He is really getting into it. I think he is fascinated by the immediate feedback, which I am sure is what attracts most of us kids to the craft. I think that framing a task in a context of a story is a great way to connect his creative and logical thinking and keep him engaged. I will definitely give it a try. If I screw this up, I have a second chance with my daughter. She will be 5 soon. If she only knew whats coming…


  • Jim H

    Brings back memories. I was part of a pilot program from IBM to teach programming to high schoolers in 1962, starting on 650s with tubes! That followed several years of building speed model airplanes and working on cars under my father's tutelage. In the following 48 years (has it really been that long?), I've never been not doing some programming or at least high level usage of computers or project management and always involved in hands-on projects, including almost 40 years or racing sports cars. I never considered the processes of programming or systems development to be much different from modifying model airplanes or cars for more speed – simply analytical processes aimed at a final goal.
    At one point I took an IBM programmers aptitude test and aced it. The guy giving it to me (this is ~65) said he preferred to hire english or philosophy majors rather than science, engineering or math types, for their better organized approach to programming.
    When my boys were 2 and 4, I used a Compaq Luggable to write software for them, including a program using MIT LOGO to teach them how to keyboard by drawing the characters on the screen the way they were supposed to print them. They learned fast. They also crewed for me at the races, working on my cars.
    One got an industrial design degree – learned how to build furniture and welds like a pro – but still programs databases and web applications and the other got a degree in animation and programs for movies (just finished Alice in Wonderland) and has been too busy to keep up any hobbies except photography.
    I'm surely convinced that working with the hands helps working with the mind…

  • I don’t know if good storytellers also make the best lawyers, but… good legal writing should aim to tell a story. That’s probably obvious when writing a prospectus or a brief. But it can also be applied to writing almost any agreement. The result is a more readable and better organized agreement,; the agreement is also less likely to be repetitive or omit a provision.

  • Great example.  I love hearing LOGO stories – it was so ahead of its time.

  • Mike Pino

    I think that any good introduction to programming ought to start from the logical explanation of the execution of commands, but to me that can be accomplished just as easily in a team by engaging in semi-staged theater/script-readings than mere story-telling. In any event, I agree with you that acting out functions to help people grasp order, conditionals, and reference is a great introductory exercise. There comes a time, however, in which this approach (just like reading out loud) needs to be internalized. I do think, however, that great programmers often have a creative way to see patterns and to remove unnecessary code (perhaps in a similar fashion that seasoned editors can apply a blue pen to punch up a text).

  • Charlie Caban

    I think the storytelling approach is a great filter. Today’s young people are so multi-tasking that they often have no clear view of where they are going – just how many balls they are juggling. It takes a bit of linear thinking to tell a good story and also to program a PLC or write software. I come from rural South Carolina where storytelling is still passed from Grandpa to Grandsons and I this act of teaching definitely helps the growing brain develop pathways that help the child be a more effective (less scrambled) person in later life.

  • screendoor

    I completely agree that kids would benefit tremendously from more (ok, at least some) exposure to coding. Part of the problem, though, is that for today's kids, computer technology is so ubiquitous, so "un-magical," that it's not fascinating to them. They don't get excited about coding for the same reasons most of us didn't get excited about learning how a light bulb works — there's no wow factor.

    I think this is an aspect of the problem that people of our generation don't appreciate. It doesn't occur to us that smart kids might not think coding is cool. My ninth grade son is a complete math/science geek. Loves it all. But when he and I started programming together a few years ago, it just didn't take. He just didn't find it fun or interesting. I was more than a little surprised, but he basically says that most of his friends feel the same way about it.

    Maybe he and I should try to take apart a lawn mower. 😉

    It's kind of like have a ninth grader and a seventh grader. I fooled around with them

  • Interesting post. I can see some good programmers who are writers and a good speaker but many of them are silent type of person. They are fun of doing something like reading, writing anything but not sharing of emotion. They love to solved problem.

  • I've noticed an interesting pattern in that many of the jr high and sr high kids I've interacted with that are into coding are doing it in the context of robotics. The FIRST robotics competition has had an incredible impact here.

  • Parker Thomas

    Brad –

    As usual, great post. I've been thinking about this a lot too now that I've got a 2 and 4 year old running around. As a kid, I was a sometimes tinkerer, but didn't learn too much about mechanical things until about 10 years ago when I somehow got it into my head to build an airplane. The logic was straightforward: I wanted to be a good pilot (bad pilots are short lived), good pilots have to fly a lot to be good, flying is really expensive, the cheapest way to fly is to have an airplane you built and maintain yourself. Let's just say it made sense at the time. Not knowing any better, I bought a kit, bought the tools and set to work.

    It turned into one of the defining experiences of my life. It seemed similar to the entrepreneurial roller coaster of emotions in starting a company. I experienced the the depths of despair thinking there was no way to ever finish and the height of excitement as I watched it take to the air 3000 hours later. I learned determination, humility, tons of mechanical skills and a profound appreciation for the people who keep machines going in our society. And now I want to do it with my kids so they can learn the same things earlier in life.

    I agree with Andy's comment above – buy a set of wrenches and dive in. The same mind that can solve a problem with code can do the same with an engine.


  • Jim H

    My son the programmer for computer animation started wanting to be in special effects for the movies when he was 5 or 6, creating his own monster models, about the time video games and drawing/animation software became available. It was a simple progression to create effects using some simple software, then he realized he could do it better himself. By 12, he was programming in 4 languages, using Maya in high school, left HS early and latched onto a guy from Pixar at college and where he went was able to create his own degree program, senior thesis using Renderman. He's been in the biz for 6 years now and I'll bet you have seen a lot of his work (Spiderman III, Beowulf, Alice, G-Force, Narnia, etc.)
    However, the work burns you out meeting deadlines – he has done 70-90 hour weeks for the last few months of every movie. When he finished Alice, he loaded a backpack and said "see 'ya in 6 months. He's now in Egypt.
    We met up with him in London a few weeks ago where we had lunch with a friend whose son wants to be – ta da – a computer animation programmer…

  • Jim H

    I forgot to mention, he's a very accomplished writer. (Not just Dad speaking…) Here's his travel blog:

  • Spot on. In my experience, teaching programming to young kids can be tricky I think. To do it well you need people who actually know how to program and can give a library of tools and let kids piece things together in a creative/problem solving way that educates the student on best practices as opposed to the GradeBot way of guess what the teacher is thinking. The problem solving is the skill, programming is just the language spoken. In short, you can't automate it, it'll do more harm than good. And in the absence of automation, how do we put it into schools?

  • Pingback: Tweets that mention Are Storytellers The Best Programmers? --

  • Pingback: Storytelling Before Bed, Sportswriters, Motion, Leadership, Cynthia Kurtz & More()

  • Pingback: Why I Like Story-Tellers As Programmers « The Digital Tiger()

  • Boaz Fletcher

    First off, thanks Brad for the post. I've enjoyed the comments both on and offline but since I think I have a lot more to add to the subject I'm going to post to my (brand new!) blog (
    Mr. Vogelsang you will find an answer to your question there…


  • Boaz Fletcher

    Apparently there is a problem with the link, hopefully this will work:

  • Boaz Fletcher

    Apparently there is a problem with the link, hopefully this will work:

  • You know why you have so many Indians as software engineers (apart from family pressure).. Most of them have learnt to program in their middle school. I remember having started writing addition/subtraction programs in BASIC when i was in 6th grade. And this was for all the students in the 6th grade.
    And because of competition between the schools pretty much every school had these courses.

    No this doesnt make everyone software engineer. But what this does is remove the fear in one that computer programming is just for geeks or too tough.

  • Dan B

    Great comments by all – particularly Andy and Parker’s on the value of hands-on tinkering. I have been fascinated by the current “tinkerers’ movement”, addressed philosophically in Matthew B. Crawford’s short, provocative work, Shop Class as Soulcraft, and practically by Make magazine and others. It seems to me that there are also important social components to maintaining/restoring this traditional form of American innovation <a href="http://(” target=”_blank”>(

  • Dan B

    Great comments by all – particularly Andy and Parker’s on the value of hands-on tinkering. I have been fascinated by the current “tinkerers’ movement”, addressed philosophically in Matthew B. Crawford’s short, provocative work, Shop Class as Soulcraft, and practically by Make magazine and others. It seems to me that there are also important social components to maintaining/restoring this traditional form of American innovation (

  • Pingback: Program me a story()

  • Pingback: Thinkin’ o’ Tinkerin’ « The Digital Tiger()

  • lawn mower and book into the garage, take the motor off the deck and and start taking it apart.
    Don't make any goals, just take it apart and make sure you put your hands on everything. You're gonna make a mess, get dirty, and learn a ton.

  • Pingback: Often the best content for blogs is in the comments « Altaloman @ltaCITIES()

  • Pingback: Are Storytellers The Best Programmers? « Computing Education Blog()

  • for me, the storytellers is very useful.

  • It's a difficult thing to listen to feedback from your initial users, the first 25,000, and do the opposite of what they recommend. You alienate your "support base" etc etc. Tough situation.

  • Pingback: cheap car insurance in fresno ca()

  • Pingback: auto insurance()

  • Pingback: Cash Advance Payday Loans()

  • Pingback: Plattsburgh()