So, just to start somewhere, what did people talk about last time?
- general programming stuff
- functional programming
- algorithms and data structures
- specific tools and applications
- unix pipelines for quick and dirty data hacking
- Chef for laptop configuration management
- people stuff
- need-driven development
- open source project management
- Nashville Software School
- things all developers should know
These are still great places to start. What have you been working on lately? Is there a tool or library or language feature you've been using that you really like and want to share?
Here are some other ideas:
- more core programming stuff
- a library you use that does something awesome
- a tool that turns out to be more flexible than you thought
- a technique that your favorite programming language makes possible
- how things work inside
- a favorite insight
- random example: “authentication and spam detection are the same problem” (now can’t remember where I heard this, or I’d drop the link)
- tell your story
- what learning was like
- how everything was simpler once you looked at it the right way
- what you've done outside computing
- mistakes made, lessons learned
- little-known gems of computer science
- graph algorithms
- information theory
- nerdy topics outside software development
- science, art, language, technology, pop culture, etc. Sometimes these talks have a nice hook back into programming. But it's not necessary.
Another way to find a topic is to ask yourself open-ended questions:
- What have you been thinking about lately?
- What do you know that other programmers should know?
- What stories do you have to tell?
- What bit of conventional wisdom do you disagree with?
- What is your favorite insight in programming?
- What was the coolest thing you learned in school?
- What have you been doing at work lately?
- What bothers you about programming?
- What have you read or learned this week that surprised you?
- What do you like to think about that isn't programming?
- What book or idea changed the way you see things?
- Do you have some perspective or experience most programmers don't have?
- Is there something you've seen the inside of that most people haven't?
If you’re not sure whether a topic is suitable, or which topic is most interesting, submit them all. Let the organizers decide.
Well, first of all, not your company's agenda. Right? The worst talks are the ones where somebody wants to sell you something. Everybody hates that. Like this talk right here, the worst thing about it is that I'm totally trying to convince you to do something right now. But let's gloss over that.
What does make a good tech talk? It's interesting, sure, but what makes it interesting? I think logically there are only two things a talk can really offer.
One is the experience of being there.
So if a talk is funny, obviously that's gold. If it has a clever twist, great. If you can give the audience the snap of a sudden insight, or the good feeling of learning something neat, that's great. Just talking about something we usually don't talk about, something we usually don't see because of tunnel vision, is invigorating. And sometimes a talk gives you "the view" -- the speaker brings you up the trail to a vantage point where you're looking out across the entire valley, and you can see what's possible, or what there is to learn, or simply how another person thinks or feels. All these are experiences that a talk can give you. As a speaker, you can plan them, or at least recognize them as the good stuff in your talk and focus on them.
So, what makes a good tech talk, one, the experience. The other thing is what the audience takes away.
If your audience goes away with a new idea in their head, that's brilliant. Or maybe they get something they want to try later, or something they want to read. Or the beginnings of an education on some topic, the hooks that later information will attach to. This is why people go to a Talk Day.