It seems I haven’t blogged since moving to New York to work at 10gen, three months ago. I guess all my writing hours have been going towards writing MongoDB’s ever-improving documentation. Now that things are quieting down a bit, and I am only semi-weekly embroiled in a well of git/docs build-enduced despair, I’m pleased to be getting back into the swing of things.
Last night, the New York Perl Mongers meetup took place in our offices. Mike Friedman, one of my coworkers who works on MongoDB’s Perl driver, among other things, spoke about the Perl API, which apparently allows you to use C to do stuff for you more quickly, and Damian Conway gave an excellent talk on giving better presentations. While Mike is lovely, I probably wouldn’t have attended just to hear his talk – I know very little about Perl and less about C – but some of my coworkers had heard Damian speak previously at OSCON and highly recommended we attend, so attend I did. Both Mike and Damian were fantastic speakers, and I learned a lot from both… I’m not about to start writing Perl code (let alone using the Perl API), but I took some notes from both talks, and figured they might be worth sharing.
Mike Friedman: Perl API for the Mortally Terrified
“Using C gives you a better appreciation of how powerful dynamic languages are.”
I must admit that this talk went well over my head: not knowing much of anything about Perl, other than that it was another programming language in the family of Python and Ruby and such, I certainly missed some of the more nuanced points. Nevertheless, Mike listed a number of reasons why the Perl API might be something you should look into, which boiled down to:
- you can make things faster by writing bits of your program in C
- the Perl API lets you work with the myriad of C libraries that people have already helpfully written
- the Perl API lets you do fancy stuff that would be hard/impossible in Perl
He then spoke about the Perl API itself and how you work with it. I did not take notes on that, but I did draw a very confused thought bubble that said “Why are none of these function names actually meaningful?” If you’re a Perl developer and you’re interested in starting to use the Perl API, Mike suggested you check out Practical C Programming by Steve Oualline and the infamous K&R C Programming Language book… so I suggest that too.
Damian Conway: Instantly Better Presentations”
I had no idea who Damian Conway is. I googled him during the pause between Mike’s talk and his, and it seems he’s a well-known Perl developer, and an extremely well-known speaker. I cannot speak to the first thing, but I can say he is, indeed, an excellent speaker. I like to think that I give a pretty decent presentation – I was always well reviewed when presenting in school, at least – but as a person early on in my career who has (no longer) secret aspirations to speak at conferences and share my knowledges with the world, it seemed like it would behoove me hear what he had to say.
Without diminishing things, I have to say that his tips are not earth shattering. They were, however, incredibly well-packaged and well-delivered, which truly hammered home the need to focus on preparing a talk. His approach to choosing topics is incredibly practical, and he provides a strategy that a stressed, slightly panicked speaker-to-be might follow gratefully. He advocated spending 20 hours of prep time per hour of speaking time, though confessed he usually spends more like 100 hours. So that’s certainly something to think about.
According to Damian, being a good presenter boils down to 7 things:
- Talk about what you know and are passionate about. If you’re passionate, other people will listen, even if they don’t care about what you’re talking about
- Tell a story – either historical, procedural, or anecdotal. This helps to ground the talk and make sure it has good flow
- Don’t search for topics: select them. This was a big one for me – Damian advocates writing down everything you can think of about a topic on a piece of paper. A big ol’ brainstorm. Then when you’re ready to figure out what to talk about, you can winnow it down to the core topics
- Less decoration, more focus. Almost all of Damian’s slides had five or fewer words on them, in a nice large, easy-to-read font, with a plain background. No extra junk. Slides should emphasize what you’re saying, not distract your audience.
“The use of a laser pointer will convert your primate audience to a feline audience.”
- Manage questions. Appear keen to take them, but make sure they happen when you want them to happen.
- Animate code demos. This one was pretty cool. Damian went through some elaborate Perl grammar thing and it made complete sense to me while he was explaining it. The parser tree was revealed incrementally, and then the groups in the tree moved around to map to their equivalent code blocks, and it was very cool. For normal code presentation though, simply highlighting segments as you go through is a great way to keep people from getting confused or lost in your explanation. This was the highlight for me.
- Harness your anxiety. I’m not a terribly nervous speaker, but I am a worrier, so this one resonated. Funnelling one’s anxiety and nervous feelings towards productive ones is, apparently, as simple as telling yourself over and over that the feeling of terror is actually a feeling of excitement. Eventually, he says, you’ll start to believe it, and your anxiety will overflow as enthusiasm and audiences will love you forever.
Damian provided the link to his talk’s handout, which you can find at damian.conway.org/IBP.pdf. I highly recommend it, and if you have the chance to see him speak, I would jump at it.