Algorithmic Thinking: A Problem-Based Introduction Homepage for the book Algorithmic Thinking: A Problem-Based Introduction

What I Learned Writing Algorithmic Thinking

Hi everyone,

I’ve been hard at work on my next programming book. (Sorry, Algorithmic Thinking readers: it’s not a more advanced algorithms book. Maybe one day…)

I spend a lot of time on my writing projects, so I wanted to reflect here on why. Perhaps this will be useful to some writer or would-be writer out there. Here are five things I learned while writing Algorithmic Thinking. I think these are what keep me coming back.

1. Teaching Others

Any time someone picks up my book, it’s a teaching opportunity for me. There are dozens of ways of explaining this material. We all have them. If mine works for you, then game on: there are 400 more pages where that came from. If mine doesn’t work for you, then that’s OK, too – keep searching and reading, and you’ll find it.

2. Teaching Myself

Hmm? Teaching myself? I must have known all of this stuff before writing the book, no?

I remember as a student learning how books not only have the capacity to transform the reader, but also the writer. When you write, new connections may present themselves. For example, in Chapter 6 on binary search, I made connections back to trees, dynamic programming, and other material from earlier in the book. The way that Chapter 6 cohered happened as a result of the planning and writing process. From the outset I had the outline of what I hoped to do, but the writing itself made everything so much more explicit for me.

3. It’s What I Do Anyway

Often when I have some free time, I find myself going to a programming judge website and trying to solve a problem. Whenever I find one that I like, I bookmark it. I feel like Algorithmic Thinking was just me geeking out in text on the problems that I wanted to talk about and teach with! The bookmarks really helped me with the “umm, what do I write now?” block that can happen when starting a new book. Perhaps this can help you, too: if you pursue an interest and might work on a related book one day, it can’t hurt to organize your thoughts/resources as you explore and learn. You never know how you might later benefit from that organization, whether it’s for your own understanding, for teaching others, etc.

4. The Challenge of It All

I want to provide readers examples they haven’t seen before. I want to synthesize the material into a coherent whole. I want to explain things in new and clear ways. I want to use everything I’ve learned from my educational research to help the reader. I want the reader to feel empowered. Go, reader, go! Learn everything in here and then move on, move way way on. I want to make the reader laugh.

This is my challenge. I will succeed or fail at these goals to varying degrees in each book. But I hope to keep improving. And the only way for me to do that is to keep writing.

5. No Two Days Are the Same

Wait, what? Isn’t every day just writing stuff down?

I haven’t found that at all! Putting these books together is part writing, teaching, reading, learning, advertising, small-businessing, programming, introspecting. There’s quiet while I work, or music. There are exercise breaks. There’s copyediting and marketing and interacting with readers. There’s writing and editing and fine-tuning. There’s somehow staying focused on one book when there are so many more to write.

Thank you for helping me do this. I hope these books help you learn and maybe even play some small part in your next adventure. They have done that for me.