How My B.A. Prepared Me for Learning to Code
This article was inspired by Lucy Sabin’s article of the same name. I thought it would be interesting to read more stories about how our different paths through life influenced us as programmers. Here’s mine!
When I had the opportunity to take a programming class in high school, I took a creative writing class instead. I wanted to be an artist working with ideas and possibilities, and I had seen the power of words to create positive change. I had no idea what a programmer did all day. In college, I majored in English. My first full-time job after I graduated involved editing content for a website aimed at increasing the number of women in STEM fields. I learned what a programmer did all day. A few years later, I was switching careers.
In college, a single English course could assign several novels per week. I learned to identify when it was safe to skim and when to take my time. With the onslaught of tutorials, videos, articles, courses, newsletters, and forums for every topic imaginable, comfort with the fact that I have time to study less than 1% of everything there is to learn is one of the most helpful things I’ve ever learned.
Meanwhile, I was writing multiple essays each week. The most memorable demanded that we propose and defend an argument in 500 words or less. I practiced writing clearly, to avoid the need for repetition, so that each sentence took my argument farther. It took hours of drafting and revising, and in all this, knowing when to quit. Breaking down a complex idea into related chunks that build on each other in sequence to accomplish a goal — succinctly — on a deadline — without sacrificing readability? Got it.
There were writing workshops. I learned that no two minds think alike: we disagree on what is obvious and what is mysterious; what is lovely and what is tedious; what punctuation is appropriate under which circumstance. But if the sole response to my writing is about grammar, either my writing is uninspiring or the commenter is a bore. An eslint config allows me to spend less time on formatting and more time solving real problems. More importantly: I never assume my code is self-evident. I name things clearly, favor consistency, and document as I go. The easier it is to understand my code, the more constructive feedback I will get.
I learned linguistics and the rules of syntax — riddled with historical exceptions and nuances surprising even to fluent speakers. I also learned poetry — exploiting patterns and irregularities to the limit of comprehension, and frequently exceeding it. Even with programming, learning a language takes patience; mastering a language takes creativity.
Speaking of creativity, I studied Shakespeare, his influences, and writers who later were influenced by him. Familiar material is relatable to the audience; it certainly doesn’t preclude innovation. Reading other people’s code solutions is a great way to learn, but I know better than to copy/paste code I’ve googled without understanding it and tailoring it to my project.
All this (and more) assisted me not only in learning code, but how to code well. When it came time to switch careers, I found coding came naturally. But then again, maybe I had spent an entire degree preparing for it.
What I loved about Lucy’s article was how it invited you, if you’re thinking about switching to programming from another discipline, to consider that your skills may not only transfer to coding, but will make you a better coder.
What in your experience has made you a better programmer?