Wow. It’s been two months since my last post. But I can explain. You see, back in January we got a new roommate and in between dealing with his insomnia and his incontinence I just haven’t had time to sit down and think about library stuff.
Anyway, a few days ago I came across a couple of posts about the relationship between librarians and coding. From March 5, Wayne Bivens-Tatum explains why he ignores the calls for librarians to learn how to code. In contrast, at Library Journal on March 6, Matt Enis reports that programming and coding skills are fast becoming essential for librarians. So, which is it? Must a librarian know Python or Ruby in order to be successful as a librarian or to improve a community? Or, is the clarion call for coding in librarianship just another manifestation of misguided technological solutionism?
Well, it kind of depends on what we mean when we say that coding is “essential” for librarianship. On a weak interpretation, that just means that it’s something librarians should be familiar with at some minimal level. That is, coding is weakly essential in librarianship if only some librarians need to master coding and the rest just need to be able to understand what coding is, how it relates to libraries, what can reasonably be asked of code, and whatever threshold concepts are required in order to work alongside the people who actually write the code. On the other hand, coding is strongly essential in librarianship if all librarians need to be able to write and use workable code themselves to solve problems and/or create new services. Put another way, if coding is weakly essential for librarians, then all librarians need to learn the basic principles of coding. If coding is strongly essential, then librarians need to learn the principles of coding as well as learn one or more programming languages.
Coding and strong essentialism
I’m going to start by looking at the strong view: librarians should be able to write code. For example, last December, Bohyun Kim described the state of the art of coding in libraries this way:
Librarians’ strong interest in programming is not surprising considering that programming skills are crucial and often essential to making today’s library systems and services more user-friendly and efficient for use. Not only for system-customization, computer-programming skills can also make it possible to create and provide a completely new type of service that didn’t exist before.
Compare to Andromeda Yelton’s four reasons librarians should learn to code: to optimize existing workflows, to improve usability, to communicate with vendors and IT, and to empower librarians to create new services. Kim and Yelton are both appealing to the same two overarching arguments in support of strong essentialism about code in librarianship. First, there’s the maintenance argument: most library systems and services require constant attention, so librarians need to learn how to code to maintain their systems, to talk to vendors, to improve efficiency, and so on. Second, there’s the forward-thinking argument: it is only by embracing coding that librarians can provide new, forward-thinking services to patrons like makerspaces, hackerspaces, 3D printers, and more. And these justifications are, by and large, correct: library systems do, in fact, benefit from librarians who can code and libraries are, in fact, pursuing forward-thinking projects like LibraryBox and attracting forward-thinking coder communities built around things like maker culture. But, are these really arguments that all librarians need to know how to code? I’m not convinced they are.
You see, both the maintenance argument and the forward-thinking argument for strong coding skills rest on a fundamental category mistake between the librarian and the library. What these arguments show is not that all librarians need to code, but that all libraries need coders. Same goes for most of the skills we encounter in librarianship: there is no universal set of skills that are strongly essential in librarianship, but there are skills that are strongly essential for libraries. And it’s probably worth pointing out that maintaining systems and creating forward-thinking digital tools are not the only things libraries do. Libraries might also need readers’ advisory skills, instruction skills, reference skills, archiving skills, collection development skills, and so on. And all of these skills are only weakly essential insofar as a library only needs some librarians to master them, so long as the rest of the librarians meet some threshold understanding.* Basically, there are a lot of great skills out there, and it would be great to learn them all, but we’ve got to prioritize. I would love to learn to code, but my time is spent learning about assessment, classroom management, information literacy, pedagogy, and whatever else is going to help me do my job better. It’s not that coding is unimportant, it’s just that in my role within the library coding is less important than other concerns. As Bivens-Tatum put it in his post, “If I had needed to learn to code for work, I’d have done it. The thing is, that’s true for most skills.” Really, I see no substantive reason to consider any particular skill strongly essential for librarianship.
“But wait,” the objection goes, “then what’s the point of library school, if not to provide a common skill-set?”
And my response is that if the reason you go to library school is for vocational training, then you’re doing it wrong. And if your library school only taught you to be a practitioner, then shame on your library school. Library school is (nominally) graduate school and the focus should be on cultivating the principles, values, and knowledge that undergird librarianship. Yes, there are some threshold concepts to which all librarians should be exposed: organization of information, archiving, research methods, and, yes, coding (and a great many more). But these are only weakly essential and are adequately covered in the five or six survey courses every LIS program requires. Now, we might decide to specialize, in which case coding could be an extremely important skill in digital content management or archives (to name but two). But, other tracks might need to prioritize other skills. Again, it’s our shared principles and knowledge that should be universal, not any specific skill-sets. (For more on what these principles may be, check out my posts on expertise.)
Long story short…
Some librarians need to learn how to code and pick up one or more programming languages, but most librarians don’t. And while most librarians might not need to learn how to code, all librarians should understand the basic principles and foundations of coding, if only so that they can better communicate with those who do learn and apply programming languages.** Heck, even Wayne Bivens-Tatum’s dismissive attitude towards code is only possible because he has a basic understanding of code: the very ability to “steal the code I need to fix any problem I might encounter” requires some understanding of what coding problems look like, what correct code looks like, and so on.***
So, coding is a weakly essential skill in librarianship: all librarians need to know what a programming language is, how to talk about it, and what coding can and can’t do. But, then again, that’s how it is with every other skill in librarianship. The only things that are strongly essential in this profession are our values and principles; our theories and concepts. Show me a skill you think is strongly essential for librarianship, anything from coding to cataloging, and I’ll show you a great librarian who nonetheless lacks that skill. And the next time someone says that “all librarians must have skill X”, ask if they really mean “all libraries need someone with skill X.” I bet you’ll find they actually mean the latter.
[In the meantime, if you want to brush up on your coding skills, join me on Codeacademy.com: I just started Ruby and we'll see how it goes.]
* (Of course, the number of discrete skills required of each librarian goes up as staffing levels go down to the point where a library that only employs one librarian might need that librarian to be skilled at everything. But, that doesn’t affect my larger point.)
** (And, from a pedagogical standpoint, it could be that teaching a programming language is the best way to teach the principles of coding. But, that’s a pedagogical tactic, not a tacit admission of strong essentialism. )
*** (Also, just to be clear, HTML is a markup language, not a Turing-complete programming language. So, strictly speaking, WBT’s position on HTML is irrelevant to the issue of coding in libraries. Still, the same “learn it on the fly” approach to programming languages is popular, so for my purposes it’s a distinction without a difference.)