I have a double degree in Computer Science and Creative Writing. This came about kind of by accident. I enrolled in my college, Carnegie Mellon, as a Computer Science major, but there’s also a required minor. The traditional path was to minor in Electrical Engineering or some such, because it had a lot of overlap with CS, but writing sounded like more fun so I went with that. Once I got the minor, I discovered a) getting the second major didn’t take that many more classes, b) the classes it did take looked fun, and c) I had some time in my schedule senior year, so I finagled things a bit and managed to qualify.
The plan, such as it was, was that CS would be my day job, and writing would be my hobby. I’ve always loved to write, but back then I didn’t think I’d be able to make a living at it. Fortunately, I also loved programming and computers, which seemed like a much more marketable skill. The art of programming has some real similarities with writing, but also some big differences that take a bit of getting used to.
The biggest similarity, I think, is in the mental state that it takes to either write or program. People in both fields talk about getting “in the zone” or “into the flow”, reaching a place where words or code just seem to come without effort. They often get a bit mystical about this, but for me it was always about short-term memory—when I really focus on writing or programming, there are hundreds of tiny details that I’ve crammed into my head to be available at a moment’s notice. (Names of variables, positions of characters in a scene, arrangement of computer memory, the frequency of use of words or phrases.) It’s all stuff that you can find out or look up, but having it in your head is so much easier that when you get to that state, it feels like magic. This leads to another similarity between writers and programmers—they both hate being interrupted. It feels like being a juggler who gets tapped on the shoulder to talk about his income taxes; by the time you’re done, all the balls have hit the floor and you have to start over.
The difference that took me longest to get used to is the lack, in writing, of any kind of objective yardstick of quality or function. At the most basic level, when you program you feed your work to a compiler, which is a machine that converts human-readable code into binary, computer-readable bits and bytes. Modern compilers are very smart and have lots of rules and checks to make sure that what you’re feeding in is actually valid code—a bit like a spelling and grammar check, but way, way more reliable and comprehensive. The actual process of programming often involves a lot of staring at lists of compiler errors and fixing them until the thing works.
Even then, if you’re a good programmer, you have tests that you run on your code—unit tests that make sure it does what it’s supposed to do, and performance tests that measure how quickly it does it and how much memory and so on it consumes. So when the time comes for debugging and polishing, you have a bunch of relatively objective markers to steer by–it compiles, or it doesn’t; it outputs the right thing, or it doesn’t, it runs in the required time, or it doesn’t. It’s not perfect–coding is hard!–but it’s something.
In writing, by contrast, you have very little to go on, and what you do have is fantastically unreliable. I’ve learned the hard way that my feelings about a book while I’m writing it have almost no connection to its quality. I’ve ended up disliking stuff I loved while I was writing it, and stuff that I hated at the time I think turns out to be my best work. Letting a draft sit and cool off for a while is crucial, but even then my opinion is a shaky barometer at best. Getting feedback from others helps, but introduces another set of challenges, because everyone has a different idea of what “good” looks like and they don’t always match up with mine. (A good beta reader, who gets what you’re trying to do and is helpful, is worth her weight in gold. If you find one, grab on like a limpet and never let go.)
The result is that while some of the skills I developed for programming, especially the discipline and memory, transferred over surprisingly well, there was a whole set of new things to learn when I got to the point where I was trying to take writing seriously. The best part of my writing degree was that it forced me to take a whole bunch of workshop classes, which develop that critical critique giving and receiving instinct and thicken your skin. More than anything I learned in class, that’s probably the thing I’m most happy to have under my belt a decade later.
(As an aside, if you’re a programmer and you can write, you’ll never be unemployed–it’s a rare skill combination! Companies always need tech writers to explain to the non-geeks what the geeks are up to.)
About the Author
Django Wexler is a self-proclaimed computer/fantasy/sci fi geek. He graduated from Carnegie Mellon University with degrees in creative writing and computer science, and worked in artificial intelligence research. He left his job at Microsoft and now writes full-time.
Written by Django Wexler
Publisher’s Synopsis: When Alice’s mysterious Uncle Geryon sends her to help capture a rogue apprentice—a boy who has the same ability Alice has to Read himself into stories—she knows to expect a wild and unpredictable trip. But even though Alice has visited the magical realms inside libraries before, this adventure is far more dangerous. Because Torment, the magic creature holding this library together, has gone mad.
But he might also have information about Alice’s missing father.
Ages 10 and up | Publisher: Kathy Dawson Books | 2015 | ISBN-13: 978-0803739765