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

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.