A Liberal Arts Major’s Guide to Coding

As programmer and tech journalist Ciara Byrne noted in her op-ed “No–You Don’t Need to Learn To Code”, learning to code is not always fun, easy, or even useful for every career path. Nonetheless, programming can develop several soft skills that translate across a broad range of professions. In addition to increasing your digital literacy, learning to code teaches you to solve problems, to seek out collaborative solutions when you are stuck, and (in my experience) to endure lots of frustration for the sake of future rewards.

The benefits of learning to code are especially tangible for information science students. Programming knowledge equips you to customize content management systems, create sophisticated reports in an integrated library system, develop mobile apps, manage databases, implement open source software, navigate user experience design, customize or create a web presence for your institution, and collaborate more effectively with IT professionals.

You may be thinking, “But Sam, I am not a programmer. It just doesn’t come naturally for me.” Well, join the club. My undergraduate degrees are in history and political science! Although I grew up in a very tech-friendly home, I never had any ambition to be a programmer. After I started working in libraries, however, I found that some kind of coding knowledge is necessary for many of the jobs I want to pursue. It hasn’t always been fun and it has rarely been easy, but I have made it a priority to learn these skills. Over time, I have actually learned to enjoy coding.

Here are some guidelines that have helped me endure the tough times:

Make a map
What languages or programs do you need to know to pursue your dream job? No single language will allow you to do everything, but you may find that some languages are more widely applicable in your field than others. For starters, look through job ads to see what skills employers are seeking. Talk with peers on social networks to see what they have found most useful in their classes or internships. Read technology centered career posts from Hack Library School and INALJ.

In my case, I want to be able to navigate open source software, manage databases, create mobile apps, use GIS software, and customize content management systems. I keep a running list of languages and programs that will help me achieves these goals, including PHP, SQL/MySQL, Python, C++, XML (EAD, KML), Javascript, and HTML/CSS.

Don’t know where to start? Check out:
Web Development 101 – The Basics | Hack Library School
Why I Learned To Love the Command Line | Hack Library School

Know Yourself
What educational environment will you thrive in? As long as you are learning, you can’t go wrong. Some people enjoy collaborative learning networks that feature loose structure, like Codecademy’s Code Year or The Mechanical MOOC: A Gentle Introduction to Python. Other people prefer the rigor of formal coursework. If you’re not satisfied with the courses offered through your LIS program, consider OpenCourseWare programs like MIT Open Courseware, Udacity, Khan Academy, or Coursera. Many of our Hackers also recommend Lynda.com, if your graduate program or company maintains a subscription.

Additionally, many options exist for aspiring programmers who like to fly solo. This recent INALJ post includes many great resources for teaching yourself web design, while this 2012 post from The Next Web blog highlights several destinations for teaching yourself to code. Personally, I recommend Zed A. Shaw’s Learn to Code the Hard Way series, the O’Reilly Animal Books (available in Kindle or print editions) and Codecademy, which also features a great sandbox platform for tinkering in Ruby, Python, and JavaScript. These options worked best for me because they get you coding really quickly and emphasize lots of practice.

I tried many different methods of self-teaching before I entered graduate school, but ultimately I knew I would learn better in a structured classroom environment. I made it a priority to seek out LIS programs with a strong computing emphasis. I designed my degree plan to incorporate a heavy concentration of technology courses that support LIS objectives, including coursework in database management, software development, GIS, web design, electronic resource management, digital preservation, and information retrieval systems.

Find A Community
Even if you prefer to work alone, it is often helpful to have a community for support, motivation, and collaborative troubleshooting. Websites like GitHub and StackOverflow allow you to collaborate with students and professionals all over the world. You can also find or create communities on Codecademy like Archivists Code or join an organization on your campus. I recently joined the Drexel Women in Computing Society to meet like-minded students outside the library program. Twitter can be a great place to meet other library school students. You can find current and former HLS Hackers on Twitter here.

Practice, practice, practice
You may have heard of Malcolm Gladwell’s “10,000 hour rule”, the notion that it takes at least 10,000 hours of practice to master a skill. It’s just as true for learning to code as it is for learning Russian or picking up a new instrument. You probably won’t feel like coding every day, but you can set goals that will help combat the tedium of repetition. Musicians use this same trick; it is much easier to make yourself practice for two hours if you are perfecting a new piece than it is if you play the same scale over and over.

Programming is a means to an end. If you are happy with the product of your work, the process won’t seem as onerous. Just remember: everybody gets discouraged, frustrated, and fed up.

“Writing Code” from @WSWCgradschool

That’s why it’s helpful to know your long-term goals and have a community to draw encouragement from. If you find yourself really truly stuck in a rut, it might be time to try something new. Find an application for your burgeoning skills that is fun and rewarding even if it is not “practical”.

Here are some creative ways to stretch your brain and even give back to your community:

What are your favorite resources for learning to code? What approach has worked best for you? How do you stay encouraged when it becomes frustrating? Let us know in the comments!

11 replies

  1. For my Information Technologies course, I had to hand code a personal website using HTML/CSS and it has been the most valuable thing thus far to me this semester, as it made me excited about coding and forced me to produce a product! I am planning on working through a few Codecademy courses this winter during the break from school. I appreciate the resources you listed, and would be curious to hear from others as well about what got them excited about code!


  2. Reblogged this on Anti-Quotidian and commented:
    Ever find a post that reads like it was written just for you? That is how this post feels for me. As a Liberal Arts major, I thought for a long time that I wasn’t made of the right stuff to code more than a static HTML page. Now I have days where I wonder if I’ll ever be able to code without Googling instructions for every other line.

    Thanks, Sam!


    • Allison,

      I’m so glad this post resonated with you! I have the same experience with Google, especially when I’m working in an unfamiliar language. Kudos to you for tackling this!


  3. Pingback: Allison Ringness

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s