Get with the program: Why and how to start coding

You work in publishing, right? You think you’re creative? What do you spend most of your time at work doing? If you’re in a low-level position, Snowbooks and Bibliocloud founder Emma Barnes suggests your answer is likely to comprise a list of decidedly uncreative tasks.
In a witty, insightful and inspiring talk at the Galley Club this week, Barnes bemoaned the publishing industry habit of hiring bright, creative people and then getting them to do dull and repetitive administrative jobs. As she wrote in the Bookseller last year, if you joined publishing because you wanted to create wonderful books, you’re left wondering “why copying and pasting between Excel, Word and InDesign feature so heavily in this ostensibly creative process”. But Barnes isn’t just a bemoaner, she’s a problem solver. Her solution to this problem? Get coding. Because if you can code, you can automate some of these dull jobs and free up time to do the fun – and important – creative things publishers should be doing.
For many publishers, the word “coding” is almost as terrifying as “maths”. Certainly, when I used to introduce a 2-hour MA Publishing session on coding at Kingston University, the response was usually a mixture of fear, disinterest and irritation that I was forcing students to spend time doing such a dull and difficult thing. If these are your natural responses, try replacing “coding” in your head with words like “carpentry” or “poetry”. Writing code, says Barnes, is “the modern equivalent of being a carpenter”. It’s an opportunity not just to come up with ideas, or to shape them (as editors do with authors’ work), but to make ideas happen yourself.
Coding can definitely be challenging (Barnes uses the phrase “mind-bendingly awful”), but you don’t need to be a maths geek to be good at it. Barnes has publicly admitted to being “useless” at arithmetic. Instead, she brings a love of patterns, words, symmetry and brevity to the activity. “Writing code trips many of the pleasure centres in my brain,” she says. “And I love feeling that I’m doing something meaningful, creating something out of nothing. Plus, the inherent difficulty of writing good code is a source of huge pride”. My former students, when they made things appear on screen in a browser in a matter of minutes, often shared this pride – evidence that if you can get over the fear or disinterest factor, this undeniably creative pursuit can be extremely satisfying. What’s more, publishers’ natural tendency to grammatical “correctness” makes them excellent coders.
Our love of pedantry feels like a perfect match for a pursuit based on strict rules and zero tolerance for inaccuracy. And our love of words reinforces the idea that publishers are natural coders. As Barnes points out, code is written, just like poetry and books are. Code is even created in narrative arcs, which Barnes likens to “reading the best novel ever” if done well. If you appreciate “the careful crafting of a narrative flow, or the finely-edited end-result of a piece of prose, honed and whittled and buffed to perfection,” says Barnes on Digital Book World, then you’ll appreciate good coding too.
For me, Barnes’s almost evangelical talk of creating things and sending them out into the world was enough to get me thinking I should sharpen up my own coding skills. But the value of coding isn’t just this personal satisfaction. If you can code, you can start to automate those decidedly uncreative tasks that fill up your day. And then you can find time to get down to the collaborative, creative business of publishing. What more encouragement do you need? If that’s truly not enough, then the doomsday scenario suggests school-leavers in a decade or so will all be able to code and your old-fashioned spreadsheet skills will look positively archaic on your CV.
So, how to get coding? Here are some of the ways Barnes’ suggests you “start to dabble with code”:

Try Scratch – a free coding app, designed for kids, that helps you think systematically and build simple games, animations and interactive stories.

Read Michael Hartl’s Rails Tutorial – Barnes claims that if you work through it for half an hour every day for three months, you’ll have built Twitter.

Sign up to a Codeacademy or Code School course – free online courses on programming languages. Barnes recommends learning Ruby.

Join a coding community like Rails Girls or Code Bar – offering help, advice and events (including free workshops). Barnes and the Bibliocloud team volunteer at Rails Girls.

As a result of attending Barnes’s Galley Club talk, I’ve applied to participate in the free Rails Girls London workshop in June. If I get accepted, I’m expecting a day packed with creativity, challenge, making and – I hope – a sense of pride and achievement. Oh, and a newly enhanced CV too. See you there?
Anna Faherty is a writer, publisher and teacher. She collaborates with global publishers and museums on digital, print, exhibition and training projects and has taught on publishing programmes at Kingston University, Oxford Brookes University and University College London. Anna blogs at http://strategiccontent.co.uk/blog and tweets as @mafunyane.

Comments (2)

I applaud Emma’s advocacy for greater coding proficiency within the publishing industry, I really do. When I worked at Pearson writing programs to speed up tedious tasks was a daily occurrence. (It turns out there are a *lot* of tedious tasks in publishing!)

I program in Ruby/Ruby on Rails almost everyday. Therefore it may be surprising that I strongly believe that it’s not the best language to choose to begin learning program. Whilst there’s no “perfect” language, without doubt in my mind, the best language for beginners is Python.

Python is simple, clean, easy to understand, and readable. It’s not some esoteric academic language used only for teaching but no real-world applications: it’s a major platform used widely across all industries.

There are often two types of course/tutorial for programming languages: 1. Learning how to program in Language X; 2. Learning how to program (using Language X).

The former is typically for people already skilled at programming and wish to get to grips with all the facets of a particular language. The latter is better for beginners because they typically teach the general concepts of programming and illustrate with examples in a particular language to allow practical understanding.

Andrew, thanks for taking the time to comment and for posting some links. I agree that those new to coding should choose a course that teaches them as much about the fundamentals of coding (so that they may apply these in other contexts) as the actual programming language (your second option above). Having not (yet) programmed in Ruby/Ruby on Rails or Python I can’t comment on which is more suited for beginners, but I suspect it may depend on the learner and the approach they feel most comfortable with. Your links are therefore a very useful addition to those included in the post, so people can check out additional options before they sign up to anything. Thanks again.