A couple weekends ago, I attended Richmond Code Camp and had a great time. This was different than the last code camp I went to, in the fact that I spent most of the day presenting, not watching others.
I have coded in front of co-workers before. I have given presentations to strangers before. But I had never coded in front of strangers before. There were a lot of things I learned. Here is a summary of just a few.
Know your audience
One of the two talks I gave was on Powershell. In this talk, I didn’t understand the audience that would be in attendance. I am a coder, not a system administrator. Powershell was designed for both, but a large percentage of attendees were sysadmins, not straight up developers. This assumption caused most of my examples to be irrelevant. Instead of showing how to create a Runspace and call Powershell from within C#, I should have focused more on things like interacting with a database, remoting, and common sysadmin type tasks.
Maybe next time my abstract should be a little more well-defined so that the audience and I are on the same page.
Code very little
In my NHibernate talk, I had about 25 test cases I worked through. Each of those tests started off failing, and required one or two additional lines to make them pass. I would go through each test case, explain what it was doing, why it was failing, and type a couple lines to make it pass. This strategy worked WONDERS!
In my Powershell talk, I tried to code a script from scratch that queried the Twitter API. Bomb. I got so flustered I just copy and pasted from my helper file and made it work. I had to code too much during this demo. Here is my new mantra:
The more critics, the exponentially higher chance of a typo.
(NOTE: Please don’t think I am saying use PowerPoint. Just make it hard for you to screw up the code you have to write)
Figure out how to get some interaction
If you haven’t guessed, I think my NHibernate talk went a lot better than the Powershell talk. One reason I think this is I had almost no audience interaction in Powershell. When I did, they were asking a question that I couldn’t easily answer during my talk. NHibernate had a ton more interaction, and I felt everyone left the room with more info than when they came in.
Wow factor
The wow factor is crucial. Something that is going to make the audience remember your talk.
For NHibernate, the last thing I did was switch my config from MySQL to MSSQL (just the config, no code) and all the tests still passed. Definitely caught peoples attention.
For Powershell, I data bound a WPF app with Powershell scripts. I don’t think it achieved the wow I wanted, but I think its pretty damn cool.