In the first post on this blog I looked at why coding in general has grabbed my interest. Learning to code in schools, as as a hobby and in the workplace has momentum. But does that make it useful to a librarian or information professional? Carving out time to develop new skills is hard work, is it worth the investment in time?
I’ve taken my first tentative steps towards learning to code this year. Part of the motivation is work related, although there is no direct impetus from my employers to take this up. I should also make it clear that I have neither the desire nor, I strongly suspect, the aptitude to become a programmer. This quote from an introductory book on learning Python that I recently bought sums it up, I am one of the ‘everyone else’:
“…the demand for people who can code has skyrocketed. Countless books, interactive web tutorials, and developer boot camps promise to turn ambitious beginners into software engineers with six-figure salaries.
This book is not for those people. It’s for everyone else.
On its own, this book won’t turn you into a professional software developer any more than a few guitar lessons will turn you into a rock star.”
“Automate the boring Stuff with Python” https://automatetheboringstuff.com/
Andromeda Yelton, a librarian, technologist and a ‘Director-at-Large’ for the Library and Information Technology Association sets out four broad reasons why librarian’s should learn code (python in particular) on her website. I’m going to set them out here and add my own thoughts on them.
1. Optimizing workflows.
“Librarians do a lot of work with data processing and web stuff, frequently involving repeated, predictable, or systematic steps… things that could be implemented with a dozen lines of code.”
Andromeda starts with what I would say is the biggy. Librarians work hard, we’re like swans; effortless & calm above surface but underneath our legs working like crazy. Quite frankly, most of us can’t work much harder, but we could often be looking for ways to work smarter.
Simple repetitive tasks, particularly involving messy data, that we think ‘oh this is tiresome but I just have to get it done, even if it’s the convoluted way I’ve always done it in EXCEL’. I’d love to automate these tasks, or at least elements of them. James Baker shared this image at the Library Carpentry introductory session, and it’s always been a suspicion of mine that something along these lines is true.
We get put off automating tasks, or seeking ‘clever’ solutions, because the initial effort to do so is so great. So, we just plough through. Maybe armed with a bit of coding knowledge it might work out better?
2. Improving usability.
“A lot of service provision happens through software and is constrained by what that software can do, which may not be what librarians want or need. We can make it suck less.”
Librarians spend a lot of time finding out what their users need and wondering how best to meet those needs. We’ve put in the effort to know what our Services should look like, increasingly we’re are embracing UX practices to get even better at this, so it’d be great to also be able to deliver the output. A lot of Library Studies courses include learning HTML. Why do we learn HTML? Because it enables us to tailor and tweak our websites to best suit our patrons’ needs. Now apply that to everything else we deliver online/virtually. Or…
3. Communicating with IT and vendors.
“Libraries need to work well with IT and get good service from software vendors, but communication problems are widespread. You can communicate with anyone better if you speak their language… It lets you be more a collaborator, less a supplicant.”
… if we really can’t do it ourselves (again, I don’t aim to be a programmer) then let’s know how to ask the people who can do it for us and what we need to ask. As librarians we will (and should) be involved in software development more and more, after all we know our business. As soon as you start getting involved in developing any large records system (such as a Library Management System) then you realise the importance of this. Looking back on my own student administration projects I worked on in my previous life, its easy now to see where a little more knowledge of what was actually possible would have helped the developers and myself meet in the middle more efficiently.
This rule doesn’t just apply to developing software, it also applies to communicating with those responsible for delivering reporting functionality in your library system. “Know your data” is a good maxim to live by, one that I am personally striving to improve upon. I think ‘Know who gets your data, how they get it, and how you want it to look’ is a slightly less catchy version, but is nevertheless also true.
4. Insight, dreaming, and creation.
“… Code lets you see. Learning to code lets you notice things you hadn’t seen before, or had believed to be immutable facts of the universe, and recognize that they are real things and you can optimize them. “Empowerment” is a cliche but that is quite literally what learning code gives you: the power to see and change more of your world”
I like this one. The realisation that code wasn’t about Maths but was in fact an exercise in creativity and problem solving (albeit with an emphasis on logic) is what has convinced me that it’s worth a try. Again, creativity is another aspect of librarianship that I see in Cambridge all the time. There is a lot of creative problem solving going on, partly by necessity due to the collegiate nature of Cambridge, which makes for some unusual library setups and locations. But also due, I think, just because librarians are often creative, enthusiastic folk.
5. Keeping up with the Joneses
I’d also add a fifth reason to Andromeda’s list, and this is one I think she has touched on elsewhere; simply keeping up with trends in IT. Librarians are very influenced by technology, a lot of the changes in libraries in the last decade have come about due to technology (e-books I’m looking at you) and there is no reason to believe that this is going to slow down. Navigating our users’ requirements for Big Data and exploring the possibilities of cataloguing in the Semantic web (I don’t know what I’m talking about on this one… shh, no one noticed) may well require us to become even more tech savvy. Perhaps coding will become an integral element of information literacy? Perhaps it already has and we haven’t noticed? If so, we may well find ourselves supporting it within our libraries.
Looking under the bonnet
Of course, learning a full programming language is not the be all and end all. What I found so compelling about the Library Carpentry sessions I attended last year (Software Carpentry aimed at librarians) was the idea of looking under the computer’s bonnet to see the shortcuts. This goes back to what I said in the first post about how coding is being taught in schools. With some basic knowledge of the fundamentals of coding, of the principle of solving problems logically and algorithmically then some of the above may be achievable.
Not a panacea
Well to be honest, I’m a practical person. Until I use some code that I’ve written, or adapted, that improves user experience, or improves efficiency, or does something, then I’m not going to be a complete convert. As yet I haven’t, I’m just starting out, I’m still noodling. The message I am getting so far is that the best way to learn code is to start with a project, something you want to improve, change or create. As with many things in life, coding is apparently best learnt by getting on and doing it. So that’s what I’m seeking to do. I hope that in a year’s time that I will personally have found some of the above to be borne out in practice. Watch this space. A good place to see how it actually has worked out for others is the Andromeda Yelton authored ALA Library Technology Report (Open Access), which sets out practical, accessible examples of coding solutions in libraries: https://journals.ala.org/ltr/article/view/5671