Editor’s note: This is part 1 of a guest post by Bryan J. Brown. Part 2 will be posted on July 30.
If you’ve been paying attention to the librarian blog scene at all, you’re probably familiar with the infamous “Should librarians learn to code?” debate. Maybe “debate” isn’t the best way to describe it; it’s more like a dead horse that bloggers give a few extra whacks to every couple of months. Well, now it’s my turn. It’s 2013, y’all. Of course you should learn to code. In case you haven’t noticed, pretty much every aspect of librarianship has been completely revolutionized by the web and that’s not a trend that will lose steam anytime soon. The web isn’t the future anymore, it’s already the present. The role of the digital librarian is to leverage all available technology to enhance access to information worldwide, and I don’t care whether you work in reference, collection development, or tech services, we are all digital librarians now simply by virtue of being librarians in a digital age. If you choose not learn to code, you are choosing to limit your competency with technology, and that’s not something anyone should choose to do (especially if you are a grad student looking for a job). Choose to play an active role in the exciting world of digital librarianship. Choose to be unlimited. Choose to code.
I can certainly understand why some people wouldn’t want to learn to code, it looks pretty scary from the outside. Programming is one of the most intimidating subjects around, but the thing you have to realize about it is that it’s only as difficult as you want it to be. Let’s compare it with learning to fix your car. That’s a scary prospect because cars are really complex, but no mechanic ever started out by rebuilding a carburetor. They probably learned to deal with the easier problems first, like changing the oil or replacing a dead spark plug. These problems don’t require much mechanical skill or knowledge, yet they end up being the most common issues that auto owners have to deal with. For some people, that’s all they are interested in learning, and that’s totally fine. At least they are now that much more knowledgeable and capable than the person who decided that working on cars AT ALL was too scary and avoided the subject altogether. Some knowledge is always better than none. Similarly, nobody is saying you to become an expert programmer, but everyone should be able to fix simple errors on a web page, and these are the most common coding problems of all. The more you know about coding, the more opportunities open up for you. Every new thing you learn is another thing that you don’t have to rely on someone else to do for you, and the ability to do things yourself is truly powerful (and truly impressive to folks who can’t do it). With this in mind, realize that how much programming you learn is entirely up to you, but it is always in your best interest to learn all that you can.
Enough already with this propaganda, you get my point: code good, fear bad. You want to start, but you don’t know where. What’s the best point of entry into the awesome world of web development? The answer is HTML and CSS. HTML and CSS are the most important things to know for any librarian (or anyone interested in coding in general) because they are the foundational elements of the web and surprisingly simple. To go back to the mechanic analogy, HTML and CSS are they oil changes and spark plug replacement skills of the web development world; they are easy enough for anyone to pick up quickly, but they do require a bit of courage to get your hands dirty. No matter what area of the library you work in, there is a very good chance that you will have to create or fix a web page at some point in your career, and HTML and CSS are the languages you will use. If you have no clue what these crazy acronyms mean, just think of HTML as the text that appears on a web page and CSS as the “rules” that determine it’s appearance.
Writing HTML and CSS is definitely “coding”, but it doesn’t have the complex logical skills of true “programming” (although it will teach you some basic skills that will come in handy later if you end up doing some real “programming”, like how to use a text editor or connect to a server). A basic knowledge of HTML and CSS will give you the skills to create a simple static web page from scratch, and even though there are a lot of other things you can learn that will supplement these simple web pages to make them do some really cool stuff, they are pretty useless if you don’t know HTML and CSS first. Some top notch places to learn HTML and CSS are (in order of my personal preference): Codecademy, HTML Dog, and W3Schools, but the web is overflowing with other resources as well (YouTube videos are also great if you are more of a visual learner). Fire up your text editor (you even can use the default text editors on your system, like Notepad on Windows or TextEdit on a Mac), copy the examples from tutorials and play around with them until you feel like you understand them, and then try to create some new pages from scratch. You don’t even need a server, just save the files to your desktop and open them in a browser. If you want to show off your shiny new code babies to your family and friends, you can even put them up on the web using Dropbox.
Be sure to read part 2 of this post, Beyond the Basics, next Tuesday, July 30.
Bryan Brown is a second year MLS/MIS student at Indiana University’s School of Informatics and Computing in Bloomington, IN with a focus on digital libraries. He works as a Web Development Assistant at the Lilly Library, and as a Scanning Technician for IUL Digital Collections Services. His professional interests include library metadata, web development and digital preservation, but he also plays a mean banjo. Find out more about him on Twitter (@bryjbrown) or from his blog (www.bryanjbrown.com).