Geek / Technical

Keeping a Programming Journal #nfjs

Yesterday at the No Fluff Just Stuff conference, I went to the Learning to Learn presentation by Raju Gandhi.

He talked about the nature of knowing and learning, and he shared a number of techniques for learning more effectively.

But then he said something that especially piqued my interest. He mentioned keeping a programming journal, partly to be able to celebrate what you’ve accomplished, and partly to have something to reference when you inevitably forget a key detail.

Whenever you learn something new, log it.

And I thought, “Blog it!” That way, you aren’t the only one who benefits from your new education.

It’s something I already do, but not consistently. For instance, when I was implementing my own physics code for a game, I ran into a crash bug when sorting my objects, and when I realized what I had done wrong and fixed it, I wrote about it.

What’s funny is that later in the week, I ran into the same exact problem at the day job and knew exactly what was going wrong.

Five years ago, I wrote up all of my research into component-based entity systems when I was looking into implementing it for my own game project, and people still find it useful today. Heck, I still find it useful today. Thanks, Past Self!

Sometimes I do things that I haven’t written about. For instance, when I ported my existing game engine code and cross-compiling build scripts from SDL to SDL2, I didn’t blog about it. I had to do some research and figure out what’s really different, but for some reason I thought it wouldn’t be interesting enough for anyone but me. Now I wish I had a way of seeing how much effort there was to do so because most of it is forgotten.

So going forward, whether I deliberately set out to learn something like a new programming language or learn how to fix an annoying bug, I’ll make sure to publish it, both for your benefit and for my own.