Code As Communication
Introduction: The Problem
I have a problem. I graduated from college with a bachelor's degree in English, and when people hear that, they think I got a degree in reading books, which is, of course, not entirely false. But my training for that degree involved courses in linguistics, philosophy, critical thinking, professional communication, technical writing, and editing. I completed two undergraduate capstone courses: one in literary criticism (it’s like unit testing and debugging a book) and one in writing.
I spent three years in graduate school workshopping a book-length manuscript that required crazy amounts of research, discipline, and critical and organizational thinking. Plus, the workshop setting required collaboration and openness to feedback that has yet to be demanded of many new graduates without work experience.
Yet, as I’m transitioning to a new career in tech, I struggle with a mostly-self-imposed inferiority complex. It’s a plight familiar to English majors. Despite the perfunctory annual or semiannual publication of articles and blog posts assuring English majors that their skills are, in fact, more in demand than ever, there’s no denying we’re still the butt of myriad jokes on campus. The aforementioned articles are, after all, probably written by English majors. Because, shockingly enough, most of what is written is written by writers.
We’re Not So Different, You and I
Software engineers and writers should be natural commiserators. Both specialize in something so ubiquitous that they can expect to have their work criticized by people who think they understand the craft much better than they actually do. In the case of English majors, it’s maybe a little more likely that people will think, because they can use your product, they could have made it themselves if they had put their mind to it. But, in coding, as with writing, so few ever do seem to put their mind to it.
I love coding, but I also loved teaching and writing. This is easy to square for me because coding uses most of the same muscles I’d been building as a teacher and writer. My prior work taught me to tolerate uncertainty long enough to find answers, reason through things, seek feedback, revise. It taught me to juggle a lot of ideas and dependencies at once (i.e., “if this paragraph gets cut, all of page two would cease to make sense” is a very similar concern in my mind to “if I don’t import this module, my code won’t compile”).
In a 2012 paper titled “Programming is Writing is Programming,” Felienne Hermans and Marlies Aldewereld argue that both writing and programming can be described as “the translation of a high-level idea into low-level sentences or statements.” Both involve using language to achieve some result whether it is to receive some return value, transfer knowledge, change the position of the salt in state, etc.
Part One: Audience
In writing this, I struggled with one question more than the others. It’s a question my academic experience trained me to ask, a question that I, in turn, spent several years training others to ask: “who is my audience?”
A few months into my job search, after putting an incredible amount of passion and effort into changing careers, I’m tempted to direct my message at a hiring manager, or a gatekeeping, traditionally-trained software engineer. In this version of the blog, I could rail against the implicit biases against nontraditional job training and liberal arts degrees. But this would be a quixotic mission.
My detractors would, of course, be a strawman I set up. No one has told me that I can’t succeed in tech. Quite the opposite. I’ve seen article after article asserting that tech knows it has a diversity problem, and that companies are eager to reconcile. I’ve seen press releases and apprenticeship copy positively gushing about big tech’s commitment to fostering nontraditional talent and leveraging diversity of experience.
There are even flurries of articles specifically targeted at people like me: former writers, former educators, English majors, and other liberal arts refugees. Tech needs clear communicators. Tech needs creative solutions. Tech needs different viewpoints. Plenty of lip service is paid.
Maybe my audience is the authors of those blogs and articles. Maybe it’s the part of me that believed them and jumped in with both feet. Or it’s people like me who are considering making the same leap. This isn’t to say I would dissuade anyone. This has been an incredibly rewarding year of growth for me. I felt deeply engaged with Flatiron School’s curriculum, an experience no more or less demanding than my graduate education. I learned new skills that have changed the way I think about problems and processes.
However, it’s also been a year of struggle and isolation. It would have been much harder without the support and guidance of my instructors and cohort members. But the fact is, I didn’t graduate, as was implicitly hoped, into a job market that’s so desperate for my experience that I’m fielding offers and setting my own terms. The job search has been as demanding as the education. It’s been disheartening and lonely and required as much, maybe more, shameless self-promotion as/than a career in the arts.
In the end, I think my thesis is this: liberal arts education is excellent preparation for a career in software not least because it offers the skills you’ll need to convince understandably time-starved, risk-averse hiring managers that that’s true.
For the next few weeks, I’d like to explore the ways a writing education prepared me for life as a software engineer. I’ll draw comparisons between scholarly texts about writing and the coding books I’m reading now, like, at the moment, Robert Cecil Martin’s seminal “Clean Code.” In doing so, I hope to persuade hiring managers, gatekeeping CS majors, and self-doubting English majors who love language, logic, and problem solving, that an education in writing is valuable to tech.