Simon Willison’s Weblog


Notes on public speaking

24th November 2005

I’m pretty inexperienced as a public speaker, but somehow I landed two speaking gigs in as many weeks recently and learnt some useful lessons about presenting in the process.

I gave a talk at d.Construct in Brighton on the 11th, entitled “Ajax and the Flickr API”. d.Construct was a Web 2.0 themed conference and you don’t get much more Web 2.0 than Web Services and Ajax; as luck would have it, Flickr’s Ajax implementation makes use of the site’s public web service API to do its magic. The talk I gave described the basics of the API, showed some examples and described the basics of how the Ajax on the site works. The slides are available, as is an MP3 of the talk itself courtesy of Drew McLellan’s skilfully compiled d.Construct podcast series.

d.Construct was a great event, and I’m proud to have been a part of it. There are a bunch of photos from the event on Flickr; pictures from my talk are here.

The second talk was “An Introduction to Django” at the London Web Frameworks Evening on the 17th (slides here). Unfortunately I was less well prepared for this one, which was a bit of a pain since there were 200 people there (as opposed to 100 for d.Construct)! I felt the slide bit of the talk was adequate but thankfully the demo went down a storm—when you’re demonstrating it’s hard not to put on a good show.

Here’s what I learned about giving presentations:

  • Run through a talk at least once, and preferably more. I ran through the d.Construct talk three times in total, and each time I made substantial changes. The Django talk wasn’t finished in time to have a full run through and suffered as a result.
  • Show, don’t tell. The most valuable part of the Flickr talk (according to feedback afterwards) was the demo of the API explorer; the Django talk was completely saved by the demo at the end. Next time I talk about Django I think I’ll start with a demo and then discuss how Django was used to build the site.
  • Never, ever put up a whole slide full of code. Half the audience will be scared off and stop listening; the other half will start trying to decode it and stop listening. Either way you’ve lost your audience. My Django slides make exactly this mistake. The correct way of presenting code is to do what Matt Biddulph did in his excellent Rails presentation: reveal one line at a time and omit anything that isn’t directly relevant.
  • Have a backup of your slides in a neutral format (I use PDFs exported from Keynote) on a USB thumb drive. It’s amazing what can go wrong at the last moment—my VGA-to-DVI dongle failed at the frameworks evening and I had to switch to Matt’s laptop minutes before my talk (thanks Matt!).

I really enjoyed both events (both as a speaker and an attendee) and I’m looking forward to future opportunities to be enthusiastic in public.

Previously hosted at