Well, when a mommy blog post and a daddy blog post love each other very much… Wait, wrong question. Sorry!

In all seriousness, the answer to this question is different for every blogger.

Antonio Cangiano’s book, Technical Blogging, and associated blog have lots of ideas about where content can come from.

At the risk of going meta or being too introspective, I’ll talk about where my blog posts come from, because I think there are some valuable takeaways.

It Starts With a Commitment

The root of all of my posts is a decision I made more than three-and-a-half years ago. I decided then that I was going to start blogging, and that I was going to publish a new post every Tuesday morning.

Some weeks, my commitment to that goal is all that has kept me going. There are weeks when I don’t feel like I have much to say, but I know myself well enough to know that if I let myself off the hook one week, I may not come back to it. I have taken one or two breaks for holidays or vacations during that time, but for the most part, I’ve published at least one new post per week going back to January, 2013.

I find that making a commitment to something is often the most important step in accomplishing it. It applies to life goals like losing weight or getting out of debt, but also to programming. The first step in writing tests for a tricky piece of code is to decide that there is, in fact, a way to write tests for it.

What’s important to you? What goal do you want to accomplish? Make a decision to go after it, and commit to yourself that you’re going to do it. If you need additional support and motivation, find an “accountabili-buddy” to help keep you on track.

The Background Thread

Once I decided to post weekly, I knew that I’d need a steady stream of content ideas. I started stepping back and paying attention to what I was doing moment-to-moment in my work and side projects.

I now have a background thread constantly running, asking questions like: Did I just learn something new? Did I just explain something to a co-worker that they didn’t know before? Are there other people that could use that knowledge? Is there a blog post or tweet that’s worth talking about? Is this tool something I could introduce others to? Did I just figure out a tip or technique that could help others?

Whenever the answer to one of these questions is “yes”, I make a note in my idea file, and try to capture enough information to get the idea back in my head when it comes time to write about it.

This is something that all of us can do, no matter what stage of our career we’re at. As Mr. Rogers reminded us, we’ve all got something original and important to say. Perhaps you could start sharing what you’re learning?

As I was discussing the idea for this post with my wife, a writer and artist, she said, “Your industry has more shared knowledge than any other I know. So many people are sharing what they know with others.” I’m so used to it by now that I don’t really notice it any more. Her outside perspective reminds me that this part of our field is unique and special. It’s important to keep that going, so we all need to pay it forward.


I read a lot. I tend to have more time to read than I do to sit down and play with things, so I do most of my learning by reading. I read books, blog posts, articles, whatever I can find. Often, I’ll get ideas for posts by synthesizing ideas from what I read.

Our industry changes so fast that we have to keep learning and growing. Of course, if you’re reading this post, you’re already moving in this direction, so I encourage you to keep at it. Not everyone has as much time available for reading and learning, but I recommend making a commitment to reading more and then making some time to follow through on your commitment. Even reading one blog post a day will add up to a lot of new ideas over time.

Follow the Arc

If you go back through the archives on this blog, you’ll see that my topics have followed the same arc as my career. This arc shows a history of learning new things; some of that comes from reading, but a lot of it comes from working in an environment that allows and encourages learning.

Because I now work at a consulting company, I work on several different projects every year. Every project brings an opportunity to learn something new, and that’s reflected in the topics I write about.

Early on, I wrote mostly about Smalltalk and C++, because those were the languages I was using every day in my job.

As I began using Ruby more and more, I started writing about that.

I’ve since written a post or two about Swift, and lately I’ve been writing quite a bit about JavaScript, because those are the languages I’ve been using in my day job.

This is a side-effect of the background thread I have running. If I spend most of my development time in a certain language, that’s where my post topics are going to come from.

I’ve talked about the value of learning multiple languages in my series and conference talks on affordances. Even if you learn a language that you never use on a real project, there are so many ideas and techniques that you can apply back to your primary language. That cross-over will make you a better programmer.

If you’re relatively new to programming, don’t feel like you need to do this right away. Make sure you’ve got a good grounding in your primary language first. But once you feel like you’re on reasonably solid ground, try to find a way to branch out to new languages.


Even if blogging is not your thing, I encourage you to find a goal to commit to, to work mindfully, to continue to learn and improve, and to find a way to share your knowledge with others.