For newcomers, computer source code can look quite alien. Librarians might be reminded of the first time they saw a MARC record—a mishmash of recognizable words and bits of information embedded in funky punctuation.
Even people who expressed an early interest in computers as children can initially find themselves discouraged from learning more as adults. Andromeda Yelton, for example, recently reflected on her experience taking a required computer science class as part of her bachelor’s degree program in mathematics at California’s Harvey Mudd College, telling LJ that “I just felt like I was so far behind that there was no point in even trying.”
But later, as an MLIS student, Yelton says she began to view coding knowledge as more of an opportunity and a necessity. “The parts of the field where there’s a lot of change and innovation happening tend to be very technology oriented,” she says. Comparing her programming proficiency to software engineers wasn’t helpful, she realized. She had a much stronger foundation in programming than most librarians and wanted to build on that.
Starting Tutorials & Resources
Bohyun Kim’s Tips for Getting Started
Catalogers and Coders catcode.pbworks.com
Code4Lib Wiki wiki.code4lib.org
Coding Questions stackoverflow.com
Java Tutorials and Resources www.greenfoot.org
Library Code Year Interest Group connect.ala.org/node/167971
Library-related Questions libraries.stackexchange.com
Official Python Site python.org
Official Ruby Site www.ruby-lang.org
Open Source Library Software foss4lib.org
Open Source Programming Community github.com
Subscription-based Training www.lynda.com
WORLD WIDE WEB CONSORTIUM News, tutorials www.w3.org
Yelton has since gone on to become a founding member and web developer for Gluejar Inc., the entity behind the much-watched Unglue.it crowdfunding project that encourages authors and publishers to release ebooks under Creative Commons licenses if specific pledge thresholds are met under a timed deadline. She has also become a leading advocate for improving coding knowledge within the library field.
For librarians already harried by their day jobs, Yelton lays out a cogent argument in a blog post on her personal website. First, she notes that programming skills can actually make many day-to-day tasks easier. “Librarians do a lot of work with data processing and web stuff, frequently involving repeated, predictable, or systematic steps,” she writes. “Edit this whole pile of MARC records to a particular standard. Provide more context in your chat widget. Anything of this nature is amenable to improvement through code, and a lot of the improvements are surprisingly low-hanging fruit” that could be facilitated with small programs.
Learning code can also help librarians customize and improve the usability of web-based resources and vendor interfaces and improve communication with a library’s IT staff and software vendors. This allows people with coding knowledge “to better characterize problems, specify goals, make intelligent cost-benefit decisions, and know when people are pulling the wool over your eyes (and when you’re asking for the impossible). It lets you be more a collaborator, less a supplicant,” she writes.
Jason Griffey, associate professor and head of library information technology for the University of Tennessee at Chattanooga (UTC) and LJ 2009 Mover & Shaker, agrees. “There’s huge amounts of utility,” he says. “The lowest possible level of utility is that you simply know how to talk to the people who are building the tools that you’re using. The ability to understand code, even if you don’t write it, comes with the ability to talk about it intelligently.”
Yelton mentioned projects by Griffey and Matthew Reidsma, web services librarian for Grand Valley State University (GVSU) in Michigan, to illustrate the potential that coding knowledge can have for the field.
Griffey says that he doesn’t consider himself a programmer and doesn’t write programs from scratch. But learning coding has made it possible for him to customize open source programs, such as WordPress plugins used by UTC, or, notably, to develop the LibraryBox fork of artist David Darts’s PirateBox project.
PirateBoxen are portable wireless file-sharing devices that allow anyone within range to upload and download files including photos, videos, music, and documents in total anonymity. As Griffey explained in an earlier interview with LJ (“Open Source LibraryBox Project Branches Out”), he thought that the underlying technology had a lot of potential for use in libraries, allowing easy downloading of Creative Commons–licensed content, ebooks from Project Gutenberg, or songs and artwork produced by local musicians and artists.
However, a totally anonymous file-sharing device could also allow illegal trafficking of copyrighted content or worse. So, Griffey removed portions of the PirateBox code that enabled anonymous uploading and has since added tweaks and user interface customizations tailored to libraries.
He started by following Darts’s step-by-step instructions to build a PirateBox using Linux-based OpenWrt firmware and a TP Link Portable N-Router. Then he explored the system and started experimenting. As Griffey notes, these types of projects can involve a lot of trial and error.
“Once I oriented myself and got a rough map of how the system was doing what it was doing, I would alter things and reload the system and see what happened. The first couple of times, I broke things really, really badly,” he laughs. “There were lots and lots of mistakes…but [breaking] things gave me other pieces of information. The negative feedback is just as valuable as the positive feedback when you’re trying to figure out how something works.”
Make it work
Where Griffey’s project explores relatively uncharted territory, Reidsma’s work with a vendor’s link resolver deals with problems that many librarians might find familiar.
“We use a lot of Serials Solutions products. I like them a lot, and I think functionally they’re great,” Reidsma says.
Yet he didn’t like the way the system’s link resolver was displaying search results. In one of the library’s first usability tests of the system, it became clear that the design was confusing to users. Rather than clicking on article links, most users were instead clicking on the name of the database from which the article was sourced.
“The layout seems to be much more useful for how Serials Solutions wants to display its information from its database, [rather] than for how users actually interact with citations,” he says. “So I wrote a script a couple of years ago. As the page loads, it just grabs all of the relevant information…and rewrites the whole page on the fly.”
With only a minor lag, the script is invisible to users, and Reidsma’s more intuitive design helps them find what they are looking for more quickly.
As the previous chair of the LITA Mobile Computing Interest Group (2010–12), founding editor of ALA’s Association of College & Research Libraries (ACRL) TechConnect blog, and active member of the LITA/ALCTS Code Year Interest Group, Bohyun Kim, the digital access librarian for Florida International University Medical Library, has become another leading advocate for librarians learning to code.
In a 2012 TechConnect post, she acknowledged that many Code Year participants are likely to have trouble fitting regular coding lessons into their busy schedules but encouraged people to build their confidence and renew their interest by jumping in and writing something simple and practical.
“There is never such a time when you already know everything needed for a project before you start working on the project,” she says. “In most cases, you discover what you need to learn only after you start a project and run into a problem that you need to solve.”
“You can get geographic data from Google Maps and health data from the U.S. Centers for Disease Control and Prevention, for example, and mash them up and present [them] in a way that you think is meaningful to your patrons,” Kim says. “I think it would be a very interesting topic for libraries, which need to play a more active role in information dissemination in ways that can capture people’s attention. In the past, libraries have been focusing on information acquisition, organization, and access and attended the needs of library patrons who visit the library to use its resources. But now that information is not scarce but abundant and people’s attention is difficult to come by, libraries will need to explore new ways to serve their patrons and address their changing information needs. Coding skills will help libraries to adapt themselves to this new environment of information abundance.”
“They’re full-featured programming languages, but they’re more approachable,” she explains. “There’s a lot of good tools out there for helping you rapidly build things that are really complicated—web frameworks getting multiuser websites that are full of dynamic content up and running without having to know a lot about security or databases or what have you.”
Over the years, the field of computer science has earned a reputation as a bit of a boys’ club in which many consider asking for help an option of last resort. That type of culture can feel unwelcoming to newcomers. While Yelton says that her personal experience had been rarely negative, she acknowledges that “in code, it’s overwhelmingly men, and some of those spaces can be intimidating to people who aren’t experts and to women.”
This is another advantage of Python and Ruby, Yelton says. “Both of those languages also have communities that do a lot of outreach to newbies, and are explicitly pro-diversity.”
For example, the Boston Python user group hosts an annual weekend workshop aimed at introducing women to the programming language in a project-driven setting. Similar programs have been offered in cities including Chicago and Philadelphia, Yelton says, and several members of the Library Code Year Interest Group have taken and/or led these workshops. Using these courses as a guide, the group plans to host a Python preconference prior to ALA’s annual conference this summer in Chicago.
“I’m really looking forward to adapting [the workshop] for librarians,” Yelton says.
Programming, in general, is becoming more collaborative and open, and Harvard Law’s Spina suggests that interested librarians explore the variety of formats that are now available to start learning.
“There’s a lot of different resources out there, and you have to know a little bit about what’s available to you and how you learn the best,” she says.
“A lot of places already have a subscription that you might not realize you have access to,” Spina says. “But there’s also a lot of things that people can do if they look around their local area. I’ve participated in both Ruby and Python workshops locally here in Boston, with organizations that aren’t geared toward librarians but are geared toward helping beginners get started with those languages. That’s great for somebody who likes to work more in a group, or thinks that that helps them to keep up with it.”
The library field also has plenty of untapped potential for building a coding community of its own, Kim believes. One goal of her November 9 presentation “Geek Out: Adding Coding Skills to Your Professional Repertoire” at the 2012 Charleston Conference was to reignite interest in the subject and inspire more librarians to get involved.
“I get this impression that there are so many people who are interested in this and so many people who are capable of learning this and doing something useful,” she says.