• LibraryThing
  • Book discussions
  • Your LibraryThing
  • Join to start using.

Computer Programing for Librarians?

Librarians who LibraryThing

Join LibraryThing to post.

This topic is currently marked as "dormant"—the last message is more than 90 days old. You can revive it by posting a reply.

Aug 11, 2011, 12:55pm Top

Lately, I've become really interested in learning computer programing. I feel like it could be an incredibly useful thing for a librarian (especially a cataloger). And it's not something I really learned a lot about in library school. (I had a bit of XML and HTML, and that's it.)

I was just wondering if you guys had any thoughts or recommendations on where to start.

Aug 11, 2011, 1:29pm Top

Also, I completely spelled programming wrong. How embarassing!

Aug 11, 2011, 2:21pm Top

It's okay. You also spelled embarrassing wrong.

Aug 11, 2011, 2:36pm Top

Truly, I do not deserve to be a librarian. heh.

Aug 11, 2011, 2:39pm Top

The great thing about programming is that the compiler or interpreter will tell you when you make an error, not a person ;)

Aug 11, 2011, 2:41pm Top

I think it's a great thing to do. Personally, I'd get yourself the Dummies book for PHP and start whacking away at it. Others would say Python or Ruby.

Aug 11, 2011, 3:21pm Top

I took the old fashioned route of QBasic - C++ - Java, and dropped out around that point, so I don't know if things have changed so much that such a thing is obsolete now.

I personally never could learn by just going through a book. It puts me to sleep every time. I pick a project and study whatever I need to in order to complete that project. What you actually want to do will also dictate what languages you will want to learn. PHP is probably a good start since you can kind of conceive of it as an extension of what you know in HTML. I'd also poke around javascripts, but I hate javascripts. I don't know, has dynamic HTML finally replaced that crap?

Some Resources:

http://girlswhogeek.com/ - Not just for girls. Web design focused
http://oreilly.com/ - The foremost publisher of coding manuals out there.

It really depends on what you want to do with your coding though. The fundamentals will be the same throughout, but the syntax and quirks will all be different. If you consider yourself a true programming noob, you might want to check out languages that are designed specifically to teach basic concepts to students:


My point is basically that there are -many- ways to go about getting into programming. The essential ingredients are internal; a problem solving personality that's more obstinate than whatever language you end up with is what will ultimately make you a successful programmer.

Aug 11, 2011, 7:10pm Top


Nope - you still need to know Javascript if doing web sites. It is a very capable language but people get it mixed up with the browser, and it seems to rub some people up the wrong way.

One of the popular languages both for proper programmers and learning amateurs is python. There are tons of references for the non-programmer at http://wiki.python.org/moin/BeginnersGuide/NonProgrammers

There are of course other languages.

The right language depends a bit on what you want to do. But the bigger hurdle is learning how to think in the right way.

Aug 11, 2011, 8:28pm Top

I had a Python class in grad school and found it was a lot of fun, if not directly applicable to my current job.

Edited: Aug 11, 2011, 8:33pm Top

Hi #001,

Just though I might mention my own experiences with Programming and Librarians.

Whilst I was "doing" my own degree in programing, in the
early 1970's. Yep, only Mainframes. :-)

I do remember that there was a "small" coterie of people,
About a fifth of us (all 20 or so, in total) who were NOT Programmers. Ie. not "nerds" in todays parlance!

They were "LIBRARIANS". The only reason I noticed them was that some of the Girls were...very attractive.
What is it about Librarians and "attractiveness"?

But I do digress.

They (librarians) were the first group I was ever aware of who were "Computer Literate", when computers were "strange".


Aug 11, 2011, 10:32pm Top

Thanks for the input everyone! This will help me figure out a good starting point.

andyl, I totally get what you're saying about thinking the right way. That seems to be my biggest problem at the moment.

(I think I spelled all that correctly this time.)

Aug 11, 2011, 11:39pm Top

You know what would be fun? An online "PHP for librarians" course. I've actually been thinking of doing something like that for Abby and Jeremy, and Kate if she wanted.

Would you be interested SylviaO?

Aug 13, 2011, 12:41am Top

>12 timspalding: - if she wouldn't, Tim, I would.

Aug 13, 2011, 1:07pm Top

12: I would love to see something like this. I know there's a need at my LIS program for it. I've done similar things for HTML/XML but my classmates are constantly complaining that they have to deal with a language that they never get real training on.

Aug 13, 2011, 10:16pm Top

If your library card lets you access Sarfaribooksonline from home, you can save a bundle on pricey computer books and use their video tutorials as well.

I'm learning Perl and MySql because I'm messing around with koha. But this seems as good a place as any to ask:

What are PHP and Python particularly for? The "P" in LAMP stack (Linux, Apache, MySql, Pxxx) can be any of them, so why one rather than another? Or, perhaps another way of asking, why is koha written in Perl?

Aug 14, 2011, 2:23am Top

>15 librorumamans:

I'd buy the books. If this stuff is worth anything at all, it's worth 20-30 bucks. Some day ebooks may be as flexible as paper books. They aren't even close now.

What are PHP and Python particularly for? The "P" in LAMP stack (Linux, Apache, MySql, Pxxx) can be any of them, so why one rather than another? Or, perhaps another way of asking, why is koha written in Perl?

So, all three languages have different histories, feels and strengths. Here are my impressions—no doubt not perfect ones.

Perl is still going strong, but it's past its heyday. When Koha was first being programmed, in 2000, it was somewhat more popular than it is today. Perl's strength is in text processing, and in the speed with which you can bang out programs. Its weakness lies in its tendency to encourage spaghetti programming—code that's hard to read, disorganized and sprawling. Relatively few modern web applications are written in it, and few are started in it today. I started as a Perl programmer, and I still love it. But I wouldn't want to do a very large project in it.

PHP has many of the same faults as Perl. Its focus is on making web pages and applications, and it's hardly ever used for anything else. While no longer the sexiest language out there, PHP hit a sweet spot of ease and ubiquity, and this has ensured its vibrancy; tons of people know it and tons of websites are made in it. It's not as popular among the largest of websites. But Facebook and Wikipedia are written in it, for starters. It has excellent online documentation.

Python is sexier than either, taking some of the simplicity of Perl and PHP but also the rigor of languages like Java. While you can do something in Perl in dozens of ways, Python tends to have one way to do it. An unusual feature of its rigor is that Python is rare is making indention a feature of the language. In PHP and Perl you can indent however you like. In Python indentation is semantics--there is only one way to do it. Good early-career programmers today tend to regard Perl programmers as eccentrics or fossils, PHP programmers as hacks or dabblers, and Python programmers as real programmers. Although great for web stuff, Python can be used for other stuff too.

The missing language here is probably Ruby, or rather Ruby on Rails, a Ruby framework. I haven't used it. It's sexy and has an extremely strong culture around it. It is known for being a great way to get more done, but gets knocked for not scaling well.

Aug 14, 2011, 6:53am Top


Roughly right.

The main difference is culture and feel.

Perl still is very useful for writing Unix stuff that isn't web apps.

There are more than one way of doing things in Python, but usually it is clear which way is the Pythonic way of doing it.

I think that the FUD about Ruby scaling is exactly that. I think all the languages you mention will start to creak at the extreme end, but most importantly scaling up to massive levels is far more about getting your architecture right. With an awful architecture even Java or Scala or C# would be slow.

Not that any beginning programmer should be overly worried about scalability of language.

Aug 14, 2011, 8:43am Top

Tim, that would be awesome. I would definitely be interested in something like that and I'm sure there are tons of other librarians who would too.

Aug 14, 2011, 9:04am Top

>16 timspalding:

Thanks, Tim. That explanation helps a lot.

Aug 14, 2011, 7:30pm Top

>17 andyl:

I don't think it's entirely FUD. Certainly of the four languages Ruby is the only one whose scalability has been the subject of considerable debate. Labelling this as "fear, uncertainly and doubt" rather than "no longer an issue" or even "wrong" is, I submit, the sort of defensiveness you see in a zealous and tightly-wound community.

Aug 15, 2011, 12:07pm Top


Well I'm not a ruby user so it isn't defensiveness on my part. I have heard the same story of the language being too slow, or non-scalable, for a number of languages. From Lisp to Smalltalk, Java to Perl.

Yes twitter did move substantially away from Ruby on Rails. However using Ruby with Rails is like using PHP with one of the big web frameworks (maybe CakePHP). Also twitter is ginormous, your normal average sized web application, even large ones like LT, would run perfectly acceptably if developed in any language (using the appropriate idioms for that language) commonly used for building websites.

Edited: Aug 15, 2011, 12:40pm Top

>21 andyl:

I basically agree. Frameworks can be limiting, but it's the framework not the underlying language. But it's also true that whatever you're doing, Moore's Law is on your side, and scaling web apps much better understood now than it was some years ago. LT is a weird site—much more dependent on structured data than most. So we aren't taking advantage of the new non-SQL databases that so many others have used. But I don't know what we'd do without memcached—and memcached was only invented two years before LibraryThing.

Edited: Aug 15, 2011, 12:57pm Top

> 1

If you're a cataloger and want to learn programming, you might want to focus on a language that has some MARC libraries and learn how to manipulate those. Perl and python both have good libraries and I believe Ruby is getting pretty good. PHP has File_MARC as well, but most introduction material to PHP is centered around web-application design and could introduce a lot more concepts at one time than languages that have a little more simple learning curve. (Not a lot though, more just a cultural thing.

I'd also advise anyone interested in computers to try to find out more about how both computers and the Internet works. I've seen a lot of people get into shaky ground because they didn't really understand how the underlying systems work. Don't have many book recommendations here, most of my learning was from the net or coursework for the fundementals.

You might want to join the Code4Lib mailing list and perhaps even stop by in the irc channel at some point. See http://code4lib.org for more details.

Aug 15, 2011, 12:57pm Top

>23 JonathanGorman:

Right. But you can't talk about those things until you have a strong programming background generally.

Aug 16, 2011, 9:03am Top

> 24

What things? How networks and computers work? Why not? I know plenty of people who know how machines and networks work without actually knowing how to code.

Aug 16, 2011, 12:23pm Top

No, I mean things like MARC processing. Someone who does library coding may want to get into that. But it's not something you should touch until you have straight-up competence in the language.

Aug 16, 2011, 12:52pm Top

>23 JonathanGorman: - I found The Tao of Computing and The Internet Under the Hood helpful in those levels of basic understanding.

Aug 16, 2011, 3:28pm Top

>26 timspalding:

Ah, I see.

I don't know, it might be complicated, but I also like learning a language via practical projects and example. There's a fair amount (if not good or great) of MARC library examples out there and I known some catalogers who have started via MARC libraries and also learning some basic XML manipulation combined with MARC-XML.

I don't know if I'd advise going it alone, but that's why I also suggested the Code4Lib community ;).

Aug 16, 2011, 3:53pm Top

Thanks, Jonathan. I've been sort of following Code4Lib for the past year or so, but I'm going to try to get more involved with it. :)

Nov 9, 2011, 6:49am Top

1. Lately, I've become really interested in learning computer programing... I was just wondering if you guys had any thoughts or recommendations on where to start.

Have a look at Alice.

Alice is an innovative 3D programming environment that makes it easy to create an animation for telling a story, playing an interactive game, or a video to share on the web. Alice is a teaching tool for introductory computing. It uses 3D graphics and a drag-and-drop interface to facilitate a more engaging, less frustrating first programming experience.

Nov 9, 2011, 9:51am Top

I've touched basics with a number of programing languages - javascript, php, perl, mySQL. They're all fairly useful, but the one I intend to actually learn because I see it as being the most practical for my library job is PHP - that's because /most/things I want javascript to do I can crib and adapt from somewhere else, most things I want to do with mySQL I can use a GUI for (albeit sometimes with a manual open), and most things that I want to be able to do for our patrons are web-based.

So most the projects that present themselves to me are a good fit for PHP. For example, I recently wanted to take a text-based index (nearly 200 pages ahhh!) and turn it into a searchable database. Another librarian kindly guided me through some Perl to parse the text into a manageable format. phpMyAdmin made it easy to upload that format into a mySQL database. But it was the PHP that made the searching and the actual project run, and that was what I needed to (and continue to need to) tweak as I want to make changes (in addition to the CSS, of course).

So my advice would be to think about what you want to DO with coding. Why do you want to be able to code? What do you want to use it for?

Like many people I think, I find learning these things much more motivating with an actual project in front of me. Coding can be an exercise in beating your head against the wall trying to figure out which piece is broken, but it's also (in my opinion) intensely rewarding when you figure it out and have a beautiful, useful finished product. It's the vision of that finished product that makes the head banging worthwhile to me. So if you have one in mind, that's a great place to start!

Nov 9, 2011, 11:02am Top


With a bit of extra experience the parsing of the text file and the insertion into the database part of that kind of thing can be easily done in PHP too.

A database like mysql (or Postgres or even Oracle or Microsoft SQL) is complementary to the programming language. The program in PHP (or nearly any other language you choose) can access the tables and fetch data. You may need to know a bit of SQL to get by - it all depends on how complex your data structures are.

But I would agree that an actual project is helpful - but don't start too large. Getting disheartened because you have taken too big a bite to begin with can be a problem. You want small well-defined problems to solve.

Edited: Nov 10, 2011, 8:16pm Top

#31. So my advice would be to think about what you want to DO with coding. Why do you want to be able to code? What do you want to use it for?

Chances are the wheel you want has already been invented.
There's no need to go re-inventing wheels.

Look for an active project DOING the things you want to do, get it going out-of-the-box where you are, join the supporters and developers, learn by improving the documentation and squashing the bugs. Then contribute code, if you like. It helps to know the concepts behind object-oriented programming, structured programming and to solve problems in pseudo-code before applying the semantics/syntax of the target language and library.

Have a look at a demo of Codify for iPad.


up in the cloud

Edited: Nov 12, 2011, 5:16am Top

You could aim at winning a prize.

There's this opinion that "M is a *perfect* language to learn about fundamental programming principles" and to then go on to Java.

M has a HOROLOG special system variable counting from 1841.

-- add link to Java in 21-minutes quick start guide

Group: Librarians who LibraryThing

9,759 members

16,670 messages


This topic is not marked as primarily about any work, author or other topic.

You are using the new servers! | About | Privacy/Terms | Help/FAQs | Blog | Store | APIs | TinyCat | Legacy Libraries | Early Reviewers | Common Knowledge | 116,088,029 books! | Top bar: Always visible