Jake Worth

I'm writing a blog post series about preparing technical talks; the introduction is available here.

Today, I'll be covering the second part of my process: brainstorming.

Brainstorming is the most important part of the process. It's the foundation for everything that follows, and it has two parts:

  1. Thinking deeply in a subject on a completely open-minded way, paying attention to ideas that cross my mind, ideas in the world, and relevant ideas of my colleagues and friends.
  2. Recording everything.

Here's a little more about each step.


To prepare a good talk, I need to generate a lot of ideas.

Stephen King's On Writing: A Memoir of the Craft contains a useful anecdote. As a young writer, King faced rejection after rejection. After much failure, one editor took the time to offer some advice, writing on his manuscript something like Get rid of 10%. King removed 10% of the words from his manuscript, began submitting it again, and soon landed his first publication deal. Cutting 10% (sometimes again and again) became one of his most valuable tools.

In other words, kill your darlings.

For every idea that makes it into a talk, I've rejected four or five. This ratio is possible because I think deeply in a subject in an open-minded and non-trivial way. Listening to technical news and blog posts, reading code, listening to the people around me, and non-judgementally writing things down. With this mindset, I can cultivate a long list of ideas which will help me fill out the time and hopefully keep the audience engaged.

Leading up to a talk, I like to solicit ideas from my coworkers and the general programming. I had some great conversations and received many ideas through our company Slack. The Tweet below did the same thing with the community outside my office. I think borrowing ideas from others makes your talk stronger against the inevitable blind spots we all possess.

Here is my current brainstorm list for my talk next month. I check off an idea when I've researched it, regardless of whether or not it survives and makes it into the final presentation.

### Reactjs + Vim Talk Ideas

- [x] Build the talk from a blank virtual box
- [ ] Writing JS in Vim – Alex LaFroscia – Medium
- [ ] Investigate `.eshintrc` settings
- [ ] Go top to bottom through a JSX file and find optimizations
- [ ] Vim nnoremap: `\p — :! prettier %`
- [ ] Technologist often arrive at the same idea independently (PrettierJS)
- [ ] Linting solves needless churn and technical debating
- [ ] Ale plugin
- [ ] CLTab
- [ ] `CTRL X + CTRL L` - tab complete import statements
- [ ] Vim-surround plugin for JSX
- [ ] Who even use Vim?
- [ ] What is Vim?
- [ ] vim-react-snippets
- [ ] https://github.com/epilande/vim-react-snippets
- [ ] https://github.com/epilande/vim-es2015-snippets
- [ ] match-tag-always (vim plugin)
- [ ] Vim-projectionist projections
- [ ] Neoformat with javascript
- [ ] Neoformat fixes code
- [ ] Neoformat tells you when it’s poorly formatted
- [ ] Neoformat easier PRs to review, less churn
- [ ] Neoformat - Don’t save early
- [ ] Look at office vimrc.local's for inspiration

Not all these ideas are good. But they will give me a lot of potential paths to take.

Record Everything

I use GTD for taking notes in a physical notebook. Whatever your method, be sure to capture every one of the great ideas you generate. Without a rigorous system of note-taking, I would lose a lot of the ideas to simple forgetfulness.


Thinking deeply about a subject, while also being a sponge to the world, combined with an effective system of note-taking, is how I get from an idea to the first draft of my talks.

The next post in this series covers an important subject, researching and preparing slides.

Aug 29, 2017

← Previous Post Next Post →
Hi! I'm Jake Worth, a developer at Hashrocket, based in Chicago. I co-organize Vim Chicago. Read my blog, learn about my work, follow me on Twitter and Github, get in touch.