I have tracked the rise of the “coding movement” in librarianship with great interest. It began over 10 years ago with groups like Code4Lib, consisting of tech gurus and programmers who had a love for libraries and were working in or working with libraries on programming, website creation, and other IT-heavy projects. Markup languages like HTML and XML were starting to be taught in ischools and LIS programs. There was a great deal of buzz a few months ago about whether coursework in coding should be part of the LIS curriculum for all students. Finally, I have watched with great interest the DEV DEV Summer of Code camp for teens play out at the Chattanooga Public Library lead by the talented Justin Hoenke. My take on all of this is that it’s great for libraries and great for librarianship.
First a bit of background on my experiences. It must have been about 1982 or 1983 when my father signed my younger brother and I up for “computer courses” at Radio Shack. My father the visionary knew that computers were the future, and he wanted to make sure that we had the skills necessary to meet this “brave new world” head-on. We learned BASIC and LOGO and how to do the most rudimentary of coding. We got books and magazines filled with programs and came home and tried them out on our Apple ][e. We tried, through trial and error, to make the programs better, and fix typos or oversights that the original authors had made.
But more importantly, we learned how to think in a structured, ordered, and organized way. As I progressed through high school and college, my knowledge of computers, coding, and systems analysis grew, and my appreciation of learning “how to think like a programmer” increased. I learned Unix shell scripting, FORTRAN, and C++. I tried my hand at HTML 2.0 and created the most rudimentary of web pages. I learned TeX and BiBTeX to format documents for large academic printing jobs and my term papers. But above all, I learned how to think like a programmer.
Learning how to think like a programmer not only made me good at working with technology or learning programming languages, but it made me a better problem solver. After all, coding and programming is simply a means of solving problems in a technological way, and learning this new “language” was deeper than just learning C++ or BASIC. It was learning a new way to problem-solve. As I learned about loops, and flow charts, and regular expressions, I also learned about solving problems in a systematic, regularized, heuristic way using algorithms and logic. Approaching problem-solving with this new way of thinking ultimately makes me a better librarian.
In addition, this new way of thinking proved invaluable as the Internet took off and technology seemed to creep into every corner of our daily lives. I prided myself on being able to “bridge the gap” between the techies and librarians and library staff in my first two post-MLS jobs working for library automation vendors. My master’s degree taught me how to think like a librarian, but my coding skills taught me how to think like a techie, and this was sorely needed then and now. This ability to operate in two worlds simultaneously — the tech world and the world of librarianship — is something I feel has become incredibly important and a necessity in 21st century librarianship. We are often called upon as librarians and library staff to not only be masters of information, but masters of information technology as well, and training in coding, programming languages, and system analysis and design goes a long way to make sure that librarians are well equipped to operate wherever they are needed.
I am grateful that my father planted the seed that fostered the need in me to understand technology and work with it on an intimate level at an early age. Additionally, I think that all librarians and library school/ischool students benefit from learning this new way of thinking and new way of problem-solving we call “coding”. Coursework in system design, programming, and coding should be part of the LIS curriculum, not to make librarians into coders, but to give librarians an understanding of the way coders think and problem-solve and the way that information technology functions on a level beyond that of an end-user. The only way that libraries and librarians can master technology is to truly understand it, and understanding comes through learning how to code: learning how to think like a coder and problem-solve like a coder.