Archive for February 7, 2012

Why I am Learning to Code

This week I mentioned my involvement in the Codeyear project. I also attended a great introductory workshop in Python programming sponsored by PhillyPUG, Philly Pystar, and Devnuts.

Why learn to code?  Two of the best responses to this question are already answered on the web:

    1. Shana McDanold, e-resources and serials cataloging librarian at a major US research university, answers this perfectly for librarians and catalogers in her response “Why am I learning to code?”.


  1. Randall Degges, a computer programmer, answers this question wonderfully for programmers as he explains “How I Learned to Program“.

So why am I learning to code?  Here are some of the reasons:

  • Digital Librarianship

Part of working in a digital library or archive means having to having to manage and manipulate tons of files: image files, born-digital documents, scanned manuscripts, oral histories, video clips, and more.  Being able to code and understand the concept of regular expressions means that you can write scripts to manipulate these files in a systematic way, which can save you lots of time in the long run.  You can rename files, check file integrity with checksums, batch-auto-correct images without an expensive license for Photoshop, and create dynamic HTML pages using CGI scripts.

In my current job, I have needed to review HTML code for problematic divs and runaway lines. I have had to research CGI and JavaScript scripts to run on webpages created by ContentDM for our future software upgrade. In my previous job, I used perl programming to rename large sets of image files, automatically embed EXIF and Dublin Core metadata into image files, and auto-correct images based on a set of algorithms, all using free, open-source software.  (See the Publications tab of this website for links to articles regarding my projects at Rutgers University Camden Law Library.) These types of projects are accessible to beginner coders and can help solve real challenges in a digital library.

  • Professional Development

Coding in different programming languages does not just let you add acronyms to your resume. It helps my professional development to be able to say that I have an arsenal of tools and transferable skills that I can bring to the table for solving problems at any type of library, archive, museum, or information-related occupation.

  • Getting “Under the Hood”

When working as an information professional, sometimes you will be called upon to troubleshoot computers and computer software on your job. If you have some basic skills of scripting and HTML, you will be able to get “under the hood” and see where a web page may not be coded correctly, or at the very least have an idea of what a 3rd-party database does when it performs a search. Now, I don’t know ANYTHING about car repair, but I know the basics of how to check the oil, view the anti-freeze level, check my tire pressure and such. I can read my car’s manual, and even if I cannot fix my car, I can attempt to converse appropriately with the service department at my car dealer.  Which brings me to…

  • Critical Thinking

Being able to code, at least a little bit, brings an information professional into the world of computer programmers. You will learn a logical way of approaching problems. You will learn new vocabularies for coding. Even if you never have to write programs for your job, you will be able to converse more intelligently with vendors and tech support personnel. I have found that this knowledge has greatly increased the sensitivity of my internal “bullshit detection sensor”. This is important when dealing with sales representatives who want to sell you the latest/greatest/shiniest new software or hardware or with technical support personnel who may not really know the answer to your problem. Thinking through problems in a logical manner is a side benefit to learning how to code which can help you both on and off the job.

  • Maintaining Mental Flexibility

Studies have been done which discuss the benefits of keeping active both physically and mentally as we age. Now, I admit that I am a “data potato” (i.e. a “desk jockey”) but I am NOT letting my brain turn to mashed potato mush.From the Franklin Institute, here is a page about exercising the human brain.

Learning to code feels very similar to me as learning a second or third language. I LOVED my foreign language classes in high school and college, and hope to continue to learn other languages in the future, even just for some basic conversation. (One of my goals is to take a Korean class one day.) Being forced to think critically, follow logical steps, look for patterns in repetitive data, associate symbols and values and learn complex syntactical combinations all exercises the brain. Coding keeps you young!  (OK and hanging out with younger nerds doesn’t hurt either.)

Having learned some perl and SQL programming and now being in the process of learning python and JavaScript, I am reaping all of the above benefits. I recommend it to anyone, and especially recommend it for librarians, archivists, and information professionals.