It's not hard to teach – you just have to be a time-traveling mind reader...

Today, while reading through my Twitter feed, I came across this absolute gem of a Tweet:

This tracks very closely with my experience writing my book on how to make more money as a developer, Refactor Your Career.

Although I know my subject matter well, that alone wasn't sufficient for me to write a good book on the first try.

The problem is, I know precisely what's important to me, relative to my context and worldview and life story.

But what helps me and what I find to be important is not necessarily what other people need to know.

For example, I don't struggle much with imposter syndrome; others I've talked to while writing the book do. I realized the book needed to address imposter syndrome by taking the time to talk with members of my audience. It would have never have entered my mind otherwise.

Knowing your subject matter is critical for writing a successful book or teaching a successful course. But just as important – possibly more so – is knowing what your audience is thinking and where they are mentally.

While teaching the content of my book in person, I've been able to address questions as they come up. But when communicating to a reader statically, that's not enough. I need to know what they're going to think ahead of time so that I can address those thoughts and questions in advance.

Learning the mindset of and the context your audience is coming from is the hardest part of writing a good book. There are no shortcuts: the only way to do this is to spend a ton of time talking to your potential readers.

This is also why it's so critical that you have a well-defined audience in the first place. Without one, you have no idea what context your readers are operating in, and you can't address their questions, concerns, and thoughts directly.