E-Scribe : a programmer’s blog

About Me

PBX I'm Paul Bissex. I build web applications using open source software, especially Django. Started my career doing graphic design for newspapers and magazines in the '90s. Then wrote tech commentary and reviews for Wired, Salon, Chicago Tribune, and others you never heard of. Then I built operations software at a photography school. Then I helped big media serve 40 million pages a day. Then I worked on a translation services API doing millions of dollars of business. Now I'm building the core platform of a global startup accelerator. Feel free to email me.

Book

I co-wrote "Python Web Development with Django". It was the first book to cover the long-awaited Django 1.0. Published by Addison-Wesley and still in print!

Colophon

Built using Django, served with gunicorn and nginx. The database is SQLite. Hosted on a FreeBSD VPS at Johncompanies.com. Comment-spam protection by Akismet.

Pile o'Tags

Stuff I Use

bitbucket, Django, Emacs, FreeBSD, Git, jQuery, LaunchBar, Markdown, Mercurial, OS X, Python, Review Board, S3, SQLite, Sublime Text, Ubuntu Linux

Spam Report

At least 236325 pieces of comment spam killed since 2008, mostly via Akismet.

Teaching Non-programmers what Programming is Like

How do you comprehensibly explain to non-programmers the challenges of programming? Why can't you "just tell the computer what you want it to do"?

A classic teaching tool for this is the "make me a peanut butter and jelly sandwich" demo.

Put out on the table a jar of peanut butter, a jar of jelly, a loaf of bread, and a knife. Tell them you are a robot (computer) that is physically capable of making a peanut butter and jelly sandwich, but you need instruction (programming). That's their job.

If they say, "OK, put the peanut butter on the bread"... put the jar of peanut butter on top of the loaf of bread.

And so on.

In your supremely patient robot way, show them that while you make no inferences and have no common sense, you're happy to follow specific instructions.

To get you to spread peanut butter on a slice of bread, they'll learn they have to tell you to...

Getting all the way to the end may be more than is needed (and more than you or they have patience for).

But once they've gotten the idea, you can explain that if they had guided you all the way to a complete sandwich, all the instructions they gave you to achieve that would amount to the first, alpha version of the program. A version which doesn't yet account for things like what to do when you run out of peanut butter or jelly or bread, or what to do if the bread tears...

(Full disclosure: I have not taught this lesson yet myself!)

Saturday, March 5th, 2016
+ + +

Post a comment

Thanks for reading! Please note: Your comment will not appear until approved, which may take a few hours or more. Spammers will be torpedoed.


(Will not be shared)

(Optional)