It was with a fair amount of trepidation that I accepted the position of PyCon program committee chair for 2016 and 2017. I've always found the PyCon schedule to be chock full of awesome talks, and trying to support the team that is tasked with maintaining that quality is a daunting challenge.
Since my involvement with the program committee began, I've been asked dozens of times how to get a talk accepted to PyCon. I figure having a single essay that lays out my personal views will potentially help everyone, from aspiring presenters (which should include you!) and those who help on the program committee itself (which should also include you!).
When we are evaluating PyCon talks, I think there are three areas we consider.
The decision to give a talk slot at PyCon is based on the proposal you submit. Incomplete or rushed proposals will get you weeded out quickly. Think though what you want to talk about and how long it will take to present all the things you want to talk about. Make sure your thought and preparation shines through in the proposal itself!
The SpacePug proposal example is a great place to start. If your proposal isn't at least this thorough, you'll be rejected at an early round.
Give the committee the information it needs to make an informed decision!
The most controversial consideration is subject matter. A good PyCon talk subject is
A coherent, technical presentation, mostly about Python or the Python community, that puts butts in seats.
Good talks are about one subject. A common bad talk proposal is a smorgasbord, a collection of half-a-dozen ideas, none of which were quite good enough to merit their own talk. Another bad proposal is the case study, where a high level discussion is had about lots of ways you tried to do things without success.
The easiest way to judge coherence is to consider your talk as a story, with a narrative. Is there a beginning, middle, and end, with a theme that ties it all together? That's coherent.
How can you rescue a case study or a smorgasbord? Find a single nugget of truth that's interesting enough that you could talk about it for half an hour and have your peers riveted to their seats. What's the one little piece that gets you truly excited? Talk about that.
PyCon is a conference for those who program in Python or aspire to program in Python. We tend to say talks should "be about things that are of interest to Python programmers", but this is our way of special casing talks about the Python community. What we really mean is "talks should pretty much be about Python or the Python community".
Please don't pitch a PyCon talk about a new Agile Methodology, or a talk about your new NoSQL database written in something other than Python.
At the end of the day, a successful talk schedule is one where the typical PyCon attendee is overwhelmed with multiple choices per talk slot. For the program committee, this is victory!
Things that don't put butts in seats include arguments or advertising.
A PyCon talk is not the place to argue over some PEP, advertise your new library, or otherwise try to sell something.
What do you do if you want to start a conversation about an important topic? Take advantage of the open spaces!
The least important consideration is the presenter themselves. There are a handful of folks who have done an amazing presentation at PyCon every year, always bring an A game, and are generally educational and entertaining. If you've been doing awesome presentations at PyCon for a decade, that's going to weigh in your favor. Nobody gets a free pass, but folks who've had exciting and widely enjoyed talks in the past get a bit more leeway than those who haven't.
On the other hand, we love first time presenters! The Python community is always growing and expanding, and there are always more voices we should hear from! If you have an appropriate topic (more below) and a passion, you should talk at PyCon! There are plenty of folks who want to help you do an amazing presentation, and there are lots of meetup groups for you to test your talk out on before giving it on the big stage. One of the things I like about Python is how welcoming and friendly the community is, and you should take advantage of this community to grow as a professional.
Giving a talk at PyCon is a really fun way to learn and grow. The best way to really learn something is to teach it to others. The best way to get better at public speaking is to speak in public. A PyCon talk is a powerful growth opportunity.
The PyCon program committee is an interesting way to get a handle on the Python community's interests and direction. Browsing through a couple hundred proposals can give you a solid feel for the zeitgeist.