Writing is magical thing that I’ve enjoyed, since I was a kid. I’ve always been creative, but I struggled at creating in a freeform environment. What I mean is that writing gave me the building blocks to be creative where drawing, which I tried but struggled with, gave me only a blank piece of paper. Writing starts with words and you put some words with some other words, following syntax and grammar, and you have a sentence. Combine those and you have a paragraph. Or a sonnet, or lyric. Writing gave me building blocks to work with and that’s probably why I enjoyed it in the same way that I enjoyed playing with LEGO. I was creating something out of other things.

Even as a musician, I used building blocks. Improvising on a jazz piece, to me, was a matter of playing notes that fit with the chord progression or blues scale of the piece. If you played a wrong note, as my music teacher taught me, play it again a few times. Then it sounds like it belongs there.

Eventually I started writing software, and that’s when things got really fun. And profitable. See, no one has ever paid me to write words, but people do pay for me to write software.

Writing software is really like describing a conversation you want to hear. If you make a mistake, the CAGradientLayer’s setColors: sentence is brutally interrupted by a null pointer exception (how rude).

I still enjoy writing words even though I’m paid to write code. Both give me building blocks I can combine to make something beautiful. No one would argue that relying on the pre-made blocks of words makes a writer any less of an artist. I would argue the same applies for good software writers. When you have an abstract idea and you make it into something concrete and beautiful, that’s art whether you’ve sculpted a statue or built an intuitive interface.

And I still suck at drawing.

Please submit typo corrections on GitHub