Recently a few friends of mine have been asking me for speaking advice and I figured such advice would be useful for others as well. This post is going to cover a bunch of different areas on technical public speaking. Some of this advice is on the computer you’ll use to present with, some will be on the presentation deck itself, body language, crowd control, etc.
I've given dozens of talks throughout my career with 18 of them given in 2017 alone (I was doing a book tour that year for my third book, Advanced Microservices). I've been going to Meetups and conferences for several years, sometimes three a week, and I've certainly amassed opinions as an audience member as well.
If you have a longing to advance your career, have learned something really cool that you want to share with the world, or simply have a mean boss who’s making you give a talk, then this is the post for you.
Always try to save time for questions at the end of the talk, unless you’re speaking at an event which explicitly requests no questions be asked (this is more common at conferences than Meetups). If your talk is about an hour, try to save 10 minutes, or save 5 minutes for a half hour talk, etc.
Some presenters like to get questions during the middle of the talk. Others only like getting questions at the end. Either way is fine, but make sure you state your preference at the beginning of the talk so that the audience knows your expectations.
If you are speaking at a conference then wrapping up your talk 5 or 10 minutes early is totally fine, especially if you’re speaking right before lunch. If you’re speaking at a Meetup, the timing schedule usually isn't as important (or adhered to), and most talks seem to go longer, so cutting a talk short is usually beneficial. It can keep the overall event from running over.
If someone does ask you a question that you don’t know the answer to, state that you don’t know the answer and ask the audience if someone knows the answer. This is a great way to A) get their question answered and B) increase audience participation. There’s nothing wrong with not knowing the answer to every question!
Try to walk around the stage during a presentation, especially if you have a handheld or clip-on mic (of course, a mounted mic will hinder such movement). Continuously look around the room at the audience members, looking at someone in the eyes for a few seconds before moving on (if you dart around too quickly you’ll look like you’re pretending, and if you stare too long you’ll creep someone out). Never stare at your screen, at your feet, or the same person for an entire talk.
When displaying content on a slide which you’d like to emphasize, avoid running up to the screen to point or otherwise making weird gestures. Try to either move the mouse pointer to point out the content, or use a laser pointer if you have one (though laser pointers can be hard to see, and the pointer usually bounces around too much to be useful anyway). Really, the cursor is the best way to point out content, especially if the screen is being recorded as part of the talk.
If you ever get the choice between a clip-on mic or a handheld mic, choose the former. It’s very easy to slowly drop the mic lower and lower during your presentation, which results in the volume decreasing (I've done this my fair share of times!)
If you’re speaking at a Meetup with beer, go ahead and drink one! It can help loosen you up, and drinking a beer with your peers can help you come off as being more approachable. However, never drink more than one beer before your talk. Being too relaxed during a presentation will make it look like you don’t care about the event and your audience won’t enjoy the talk as much.
Hecklers and “Question-braggers”
I've had a few not-so-respectful audience members throughout my career and if you give many talks then you’ll run into a few of them yourself! When you do encounter one of these folks you just have to learn to brush them off and continue without letting them disrupt the flow of your talk too much. Usually these situations happen during the Q&A portion of the talk, which isn't as bad because it causes the least amount of damage, but it is possible to get a mid-talk heckle as well.
I was once presenting at a game development Hackathon in SF called “Beta Breakers”. The game I had spent the weekend building was a real-time grid-based card combat game. While describing the game I said “it’s like a multiplayer version of Go”. One of the audience members also had an idea for a multiplayer Go game and accused me of stealing his gamedoc from his computer. This accusation happened during my presentation and essentially shut the whole thing down. It’s pretty hard to recover from a situation like that, and even though it’s likely nobody in the crowd believed his accusation it still left me pretty embarrassed and distracted. The rest of my talk then suffered.
However, in another situation I was able to recover better. I had just finished giving a talk on HTTP API Design at SF Microservices. The first question that someone asked was literally “So, your talk isn't really about microservices, is it?” I was able to recover by explaining how proper API design is vital, how most microservices are speaking HTTP, and how the talk was based on content from my recent book, Advanced Microservices, which I was going to give to a random audience member. The interesting thing about explaining this to the audience member is that the important part isn't that I satisfy that particular audience member, but instead that I justify to myself that the talk was pertinent to the audience and that the audience member was out of line. This kept me from stressing out.
Have you ever been to a technical talk, and then someone raises their hand to ask a question, and then proceeds to explain something or otherwise brag about their accomplishments for five minutes, before finally wrapping it up with a tiny question relating their statement to the talk? I've encountered this enough times at the events I've attended that I think it deserves being called out. I’m not sure if there’s an industry term for this person, but I’m going to call them a Question-bragger (QB). It’s a situation where someone who fears giving a talk of their own but also enjoys mansplaining feels the need to interject their knowledge all over a captive crowd. If this does happen to you the best course of action is to cut the person off after they’re about a minute into their spiel. You can say something like “I’m sorry, but that’s not a question. Does anyone have a question?”. If you don’t address the situation then there won’t be time for any real questions and the QB will have sabotaged the entire Q&A period. Don’t worry about cutting them off either; everyone in the audience hates a QB.
My Personal Philosophy
The rest of this post is about my personal philosophy when it comes to presenting. I don’t know if they’re necessarily “good” or “bad” practices, but you might find them interesting to consider.
Never give a presentation with funny pictures (e.g. cat pictures, memes, etc). They just sort of feel like a low effort / cheap shot approach to getting a laugh from the audience. A well placed pun, or dead-pan joke will be harder to pull off, but the humorous effect is a more authentic IMO.
Speaking of which, I feel the best kind of joke during a presentation is a subtle one. If you ever tell a joke, and it falls flat, and you have to explain that it was a joke, then you've done something horribly wrong! If you tell a subtle joke, and a few people giggle, or nobody laughs at all, then there’s no need to explain that a joke was said. (Also, never say “no pun intended”. Either it was actually intended, or it wasn't intended and nobody minds anyway).
I hate it when I go to a talk and someone is pitching a module they built and at the end is asking for people to contribute. It seems a bit selfish; instead of teaching an audience about something useful, perhaps the presenter is instead trying to simply increase their own exposure. I dislike this so much that I've vowed to never do the same thing.
Advanced programmers are better at researching and learning new things than beginners. For this reason I tend to cater my presentations for beginners; they simply need more knowledge! I also try to sprinkle a bit of high level / advanced concepts so that all members of the audience can walk away having learned something. If there are beginners in the audience then never give a presentation and feel that the content you’re discussing is too simple or beginner oriented. That said, you do need to know your audience, and if everyone has at least intermediate experience on a topic, feel free to gloss over the beginner parts.
I prefer to make all of my presentations available online, hosted publicly, written in HTML, using a URL that I can very easily memorize and type in. This is useful because there’s always a risk that your laptop will die or some other technical glitch will happen. If an issue does arise then it’s possible for me to ask an audience member to borrow their laptop. Almost all of my presentations are done with RevealJS, and I’ll grab a color scheme from Adobe Kuler to keep each presentation from looking the same.
And finally, try not to swear. Don’t tell racey, racist, religion-based, or sexual jokes. Try not to bash on any particular language or platform. Doing any of these will alienate a speaker from someone in the audience. Knowledge, and its proliferation, must always transcend stereotypes, and such knowledge should be approachable by everyone.