Before the Day of Code
These are the step-by-step guides for the Day of Code. You're going to get some programming experience, and leave having built a real website. This article explains the background to the day.
Scope of the day
Today is a chance for you to roll up your sleeves and write real, working, book-trade-specific software.
You won't become a programmer in a day, although all journeys start with a single step, and today might be the first of many days where you cajole a computer into doing what you want with code.
Today, you'll discover that modern programming has more parallels with storytelling than maths; that a certain facility with language and a natural attention to detail – skills found in any publishing professional – are more important than a technical mind. You will realise that your existing knowledge of the ins and outs of your particular bit of publishing (your "domain knowledge") are arguably more difficult, more nuanced, and harder to acquire than programming skills, whilst being a critical component of writing software. In other words, you'll learn that you have a distinct advantage in writing publishing software over dedicated software developers.
Coding in publishing is a controversial topic. Some people think that publishers should leave technology to vendors. But no-one raises an eyebrow when production people go round a print factory. And no-one expects those production managers to be running the factory the next day. However, there is an expectation that such research and investment of time will lead to better decisions, greater insights, and an ongoing interest in learning more about an important part of the supply chain. Today is intended to be a familiarisation, in the same vein, to prompt the same sorts of insights and lines of enquiry: "Hey, I can see that the binding line splits here... does that mean we could print the paperback and hardback book block on the same run, split them on the binding line and save on the make-ready?" We expect you to leave today being able to make the same sort of non-expert, but curious, observations that come from increased agency and might just save some money. Next time you're commissioning a website, and the developer says they can't use your ONIX feed as a data source for "technical reasons", you'll be able to say that once you attended a coding day where you did exactly that, and that the developer should perhaps look again. By being here today, you've shifted the balance of power in your favour.
Over the summer of 2019, the Consonance team ran an online club called #SideProjectSummer. For a few years now, every Friday afternoon we put aside time to work on side projects, and over the summer we quietly encouraged others to join in. The results were so heartening, and I'd encourage you to visit Twitter and review some of the things publishers have carved out time to do. Some of the people behind these projects are coaches, today, and they include:
- an editorial assistant who controlled Excel with VBA
- an editorial assistant who consumed the Consonance product metadata API to create a beautiful website
- a metadata manager who wrote a React app
- a number of people who got familiar with HTML, and some who untangled their in-house ONIX XML
- a seasoned editor who wrote multiple Rails apps
- a marketing assistant who used XSLT to parse his ONIX to produce marketing sheets in InDesign.
The people who participated in #SideProjectSummer were publishers using code to solve their immediate publishing problems. That pragmaticism, rather than "learning to code" in the abstract, is crucial, and what we hope to encourage today.
Thank you to the technically-literate publishing people who have given up their time to join us as coaches today. Ten years ago, it was difficult to rustle up even two or three people from within the industry who had both technical confidence and deep, hands-on publishing knowledge. Today, we are legion, and we're so pleased to gather so many of these people together today who have taken the time to increase their knowledge and share it with delegates.
What you are going to build
You are going to build a website that lists your books, build from ONIX data kindly provided for free by Nielsen to Day of Code, and which allows users to click through to buy the book. You're going to use various technologies, such as HTML, CSS, and Ruby. You're going to use your publishing knowledge to write software that's pragmatic, beautiful and useful. It will look a bit like this.
Code of conduct
Please make sure you read and adhere to the Code of Conduct. We will take action if anyone breaks this code: please keep Day of Code welcoming and enjoyable for all.
The overall timings for the day are here and we have provided rough timings against each article in the Guide, too. If you fall behind, you'll likely be able to catch up but do keep an eye on the clock as there are plenty of rabbit holes you could find yourself down!
Any questions or feedback? Email firstname.lastname@example.org.