Zerø Wind Jamie Wong

Something Out of Nothing

“Well, Mr. Frankel, who started this program, began to suffer from the computer disease that anybody who works with computers now knows about. It’s a very serious disease and it interferes completely with the work. The trouble with computers is you play with them. They are so wonderful. You have these switches - if it’s an even number you do this, if it’s an odd number you do that - and pretty soon you can do more and more elaborate things if you are clever enough, on one machine.

After a while the whole system broke down. Frankel wasn’t paying any attention; he wasn’t supervising anybody. The system was going very, very slowly - while he was sitting in a room figuring out how to make one tabulator automatically print arc-tangent X, and then it would start and it would print columns and then bitsi, bitsi, bitsi, and calculate the arc-tangent automatically by integrating as it went along and make a whole table in one operation.

Absolutely useless. We had tables of arc-tangents. But if you’ve ever worked with computers, you understand the disease - the delight in being able to see how much you can do. But he got the disease for the first time, the poor fellow who invented the thing.”

Richard P. Feynman, Classic Feynman

Sometimes when working with abominable APIs, hugely complex build systems, abysmally useless error messages or things with too much damn magic, I forget why I enjoy programming. Every once in a while though, something like the leading quote of this post will nudge me back in the right direction.

Back in high school, my Computer Science teacher would occasionally find some extra work for me to do to keep me occupied. One of the first things he showed me was Conway’s Game of Life.

I remember writing my first copy of it in Dev C++ on Windows XP on the top floor of my high school. Seeing the @’s and .’s morph and move around in my little windowed cmd.exe window on my yellow-stained-white 17” CRT monitor perfectly embodies why I love programming.

The ability to start with an empty main.cpp and wind up with this little digital organism that evolves in a predictable but nonetheless mesmerizing pattern is gratifying in ways difficult to explain to anyone who’s never done it.

Game of Life Acorn

For some reason, creating something out of nothing has always given me a thrill far beyond the gratification of contributing to a larger whole. Maybe it’s the feeling of accomplishment provided by being able to explain how the whole thing works. Maybe it’s writing more logic than glue. Maybe it’s just the fact there’s some truth to the phrase “hell is other people’s code”, or perhaps I’m just too immature to feel as good about working with others’ code.

It’s these tiny projects I hacked together somewhere within a day to a week that give me the greatest gratification. It applies especially well to projects that I did to learn something. My Fifteen Puzzle and Propositional Logic Truth Table Generator are two other examples. Small, self-contained, visually interactive projects that I wrote every single line for.

None of these things are products. Only the truth table generator is even mildly useful. But damned if I didn’t have a lot of fun playing with them.

For some reason or other, I’ve felt the need to spend more time working on “useful” things in my free time as time has gone on. I need to get back to building useless somethings out of nothings. I need to re-infect myself with the computer disease.

If you liked reading this, you should follow me on twitter, take a look at other blog posts by me, or maybe even come work with me at Figma!

Zerø Wind Jamie Wong
Previously Working Remotely September 14, 2012
Up next Too DRY - The Grep Test July 12, 2013