How fantastic would it be if every small library has an in-house developer? We will be all using open-source software with custom feature modules that would perfectly fit our vision and the needs of the community we serve. Libraries will then truly be the smart consumers of technology not at the mercy of clunky systems. Furthermore, it would re-position libraries as “contributors” to the technology that enables the public to access information and knowledge resources. I am sure no librarian will object to this vision. But at this time of ever-shrinking library budget, affording enough librarians itself is a challenge let alone hiring a developer.
But why should this be the case? Librarians are probably one of the most tech-savvy professionals after IT and science/ engineering/ marketing folks. So why aren’t there more librarians who code? Why don’t we see a surge of librarian coders? After all, we are living in times in which the web is the platform for almost all human activities and libraries are changing its name to something like learning and ‘technology’ center.
I don’t think that coding is too complicated or too much to learn for any librarian regardless of their background. Today’s libraries offer such a wide range of resources and services online and deploy and rely on so many systems from an ILS to a digital asset management system that libraries can benefit a great deal from those staff who have even a little bit of understanding in coding.
The problem is, I think, libraries do not proactively encourage nor strongly support their in-house library staff to become coders. I am not saying that all librarians / library staff should learn how to code like a wizard. But it is an undeniable fact that there are enough people in the library land who are seriously interested in coding and capable of becoming a coder. But chances are, these people will have no support from their own libraries. If they are working in non-technology-related areas, it will be completely up to them to pursue and pay for any type of learning opportunities. Until they prove themselves to be capable of a certain level of coding, they may not even be able to get hands-on experience of working in library technologies/systems/programming. And when they become capable, they may have to seek a new job if they are serious about putting to use their newly acquired programming skills.
It is puzzling to me why libraries neglect to make conscious efforts in supporting their staff who are interested in coding to further develop their skills while freely admitting that they would benefit from having a programmer on staff. Perhaps it is the libraries that are making the wrong distinction between library work and technology work. They are so much more closely intertwined than, say, a decade ago. Even library schools that are slow to change are responding and adding technology courses to their curriculum and teaching all LIS students basic HTML. But certainly libraries can use staff who want to move beyond HTML.
At the 2011 ALA Midwinter, I attended LITA Head of Library Technology Interest Group meeting. One of the issues discussed there was how to recruit and maintain the IT workforce within libraries. Some commented the challenge of recruting people from the IT industry, which often pays more than libraries do. Some mentioned how to quickly acclimate those new to libraries to the library culture and technology. Others discussed the difficulty of retaining IT professionals in libraries since libraries tend to promote only librarians with MLS degrees and tend to exclude non-librarians from the important decision-making process. Other culture differences between IT and libraries were also discussed.
These are all valid concerns and relevant discussion topics. But I was amazed by the fact that almost all assumed that the library IT people would come from the IT sector and outside from libraries. Some even remarked that they prefered to hire from the IT industry outside libraries when they fill a position. This discussion was not limited to programmers but inclusive of all IT professionals. Still, I think perhaps there is something wrong if libraries only plan to steal IT people from the outside without making any attempt to invest in growing some of those technology people inside themselves. IT professionals who come from the general IT industry may be great coders but they do not know about libraries. This is exactly the same kind of cause for inflexible library systems created by programmers who do not know enough about the library’s businesses and workflows.
So why don’t libraries work to change that?
One of the topics frequently discussed in librareis these days is open source software. At the recent 2011 Code4Lib conference, there was a breakout session about what kind of help would allow libraries to more actively adopt open source software adn systems. Those who have experience in working with open source software at the session unanimously agreed that adopting open-source is not cheap. There is a misconception that by adopting open source software, libraries will save money. But if so, at least that would not be the case in any short tem. Open-source requires growing knowledgeable technology staff in-house who would understand the software fully and able to take advantage of its flexibility to benefit the organization’s goals. It is not something you can buy cheap off the shelf and make it work by turning a key. While adopting open-source will provide freedom to libraries to experiment and improve their services and thereby empower lirbaries, those benefits will not come for free without investment.
Some may ask why not simply hire services from a third-party company that will support the open-source software or system that a library will adopt. But without the capability of understanding the source and of making changes as needed, how would libraries harness the real power of open-source unless the goal is just a friendier vendor-library relationship?
In his closing talk at the 2011 Code4Lib conference, Eric Hellman pointed out the fact that many library programmers are self-taught and often ‘fractional’ coders in the sense that they can afford to spend only a fraction of their time on coding. The fact that most library coders are fractional coders is all the more reason for having more coders in libraries, so that more time can be spent collectively on coding for libraries. Although enthusiastic, many novice coders are often lost about how certain programming languages or software tools are or can be applied to current library services and systems and need guidance about which coding skills are most relevant and can be used to produce immediately useful results in the library context. Many novice coders at librareis who often teach themselves programming skills by attending (community) college courses at night at their own expenses and scouring the web for resources and tutorials after work can certainly benefit from some support from their libraries.
Are you a novice or experienced coder working at libraries? Were/are you encouraged to further develop your skills? If a novice, what kind of support would you like to see from your libraries? If experienced, how did you get there? I am all ears. Please share your thoughts.
——————————
N.B. If you are a formally trained CS/E person, you may want to know that I am using the term ‘coding’ loosely in the library context, not in the context of software industry. Please see this really helpful post “after @bohyunkim: talking across boundaries and the meaning of ‘coder'” by Andromeda Yelton which clarifies this. Will K’s two comments below also address the usage of this term in its intended sense much better than I did. I tried to clarify a bit more what I meant below in my comments but feel free to comment/suggest a better term if you find this still problematic. Thanks for sharing your thoughts! (2/22/2011)
I’m writing up my five year professional development plan for class and all of my plans revolve around learning how to code. I’m fairly decent at HTML and CSS, but I lack training in Javascript, Ruby, etc.
If I can work in an academic library that pays for you to take a class each semester, I’ll probably try to obtain a degree in programming.
Pingback: Tweets that mention Why Not Grow Coders from the inside of Libraries? – Library Hat -- Topsy.com
I’m a novice coder looking for work in libraries. I suspect my coding skills are actually above-novice when benchmarked against libraries, but I’m married to a software engineer, so as far as I’m concerned I’m down here in novice-land ;).
I’d say my school both helped and obstructed my development as a coder. It let me petition out of the intro tech class I really didn’t need and replace it with databases, which has been extremely useful to me. However, the petition process was vague; I got conflicting input on whether it was even possible, different professors’ syllabi covered such different topics it was hard to know what to address on the petition, and the process was really set up for people who have taken an equivalent class elsewhere (whereas I’m moderately autodidact, as I suspect are most libraryland coders). And LIS student’s tech background varies so widely that the databases class had to be pitched at the lowest common denominator; those of us who came in with tech skills really could have learned twice as much that semester. In theory we were allowed to take classes in other departments — like CS — but in practice I didn’t know anyone who was doing that, and I didn’t either.
(I also think the classes in CS departments are not necessarily what we need. I’m not looking to write large-scale software and I don’t know that I need to know a ton about algorithms, even though it might be fun. I need to know about APIs and mashups, interfaces, how to bang out a couple hundred lines of quick and dirty and functional code.)
I also think there’s a super-important social facilitation effect here. What really helped for me is I went to an engineering school for undergrad, where everyone took at least one programming course and if you wanted to learn another programming language or run a Linux box as your desktop machine or whatever, you did, and *of course* you taught yourself. And now I have a lot of CS people in my social circle, so I continue to have that “of course” assumption, plus which I have tons of people I can go to for help.
At the same time, though, I find the idea of, e.g., joining an open source project pretty intimidating. I don’t know if my code skills are at a place where I can contribute anything useful and I don’t know what the social norms of participation are. I don’t know if I’m cool enough to be in code4lib. I need a handholder. And given that I am relatively tech-savvy and generally highly confident about that sort of thing…I’m guessing intimidation is a factor for a lot of would-be coders. *Especially* in situations where you might be the only in-house coder, and you have to look outside the institution to find someone to hold your hand.
As I think we discussed, a lot of us are in a weird position of being the person who knows the most about technology at our libraries while at the same time being acutely aware of how little we know compared to others. So we feel an internal pressure to keep learning, and our colleagues figure we know it all already. To me working at a smaller place where I get to do everything is a great advantage, even if I know I could be doing more specialized work.
Andromeda, you *can* and *should* be involved with code4lib. Don’t even worry about it for a second.
@Amanda A lot of budding librarian coders go through the same path I think. Good luck!
@Andromeda Excellent point. I think libraries/lib schools tend to shy away from IT/programming issues. Pointing to the CS dept or recruiting solely from the outside and not having systematic supporting and developing interested staff, I think, are typical examples. I agree that the classes in the CS department are not necessarily what librarians need. We have quite different needs than traditional developers. I think those who are interested in coding will pursue their interests through self-learning whether there is support or not. But the problem I see is why libraries wouldn’t play a role here when supporting those folks can greatly benefit libraries. I really think libraries can make a big difference if they do. It may be really more for social/cultural/conventional issues than anything else? The majority of librarians and coders tend to have very different mindsets & attitudes. This may explain some of those intimidation factors (and I fully acknowledge that I am affected by it just like you :-)).
@Margaret Our ‘weird’ position is an excellent position that pushes us to learn further. But there is a steep learning curve from learning a few scripting languages to producing a product usable in libraries no matter how small the product is. I want to see libraries encourage and support internal staff who are trying to overcome this learning curve. This will so much benefit libraries themselves.
I think this is a great post. I’m a student in library school and we had a guest speaker who said that he thought that the MLS was going to be extinct in the future because of it’s lack of technological training, something that is necessary in our field. I think that there needs to be more training on coding in school because many people don’t have that background going in.
Interesting thoughts and good question. I think one reason libraries don’t grow coders is that library administrations often harbor a suspicion of technologists. IT people appear overpaid, inarticulate, and they couldn’t possibly understand the complexities and values of librarianship (I’m being facetious here). Maybe some of this impression is justified, but I see capable IT people repeatedly ignored when they could offer valuable input.
A second thought I’d offer is that while it may appear to an LIS person that “coding” is easy enough for any motivated librarian to learn, quality IT work (which includes much more than “coding”), isn’t that easy just to pick up in your spare time. Sure someone with a modicum of patience for arbitrary syntax (which should include all librarians!) can learn to throw together some HTML or PHP or whatever. As an IT manager, I would avoid hiring that kind of person for a software development job.
Consider, for instance, how nearly all library job openings begin with the requirement “MLS from an accredited…”. From the outside looking in, library work looks really easy compared to coding. Any technical person should be able to pick up librarianship pretty easily. Okay, so I’m being facetious. But I hope you get the point. Just as library school is more than learning how to do a few repetitive tasks (catalog new item, answer reference question, direct patrons to rest rooms…) so also computer science and software engineering are more than being able to figure out how to hack some code.
And finally, I agree with you very much when you say this: “It may be really more for social/cultural/conventional issues than anything else? The majority of librarians and coders tend to have very different mindsets & attitudes.” I work in a library…I used to work in the high-tech industry. They are different cultures–very different. And they attract different personalities.
That said, I would love to see more respect for IT people in libraries. But treating IT as something anyone can pick up on the side seems to me to devalue the work, not value it more.
I love that you wrote this, Bohyun. There is a big gap in library school between what we’re taught and what more we need to know. When is there time to get this further training (and money)? I’d love to teach myself some coding (like Amanda, I’m just at HTML and CSS) but don’t have as much time as I’d like and nowhere to look for guidance really. On top of trying to keep up with other aspects of librarianship that apply to my job and other library-related things I’m involved in, I just am not sure when I’d have the time. Sure, not everyone needs to know how to do this, but more and more, positions are taking on more technology. If I think of a useful tool for reference or instruction, it would be nice to work on it a little myself instead of having to track someone down in a different department. I really agree this would benefit libraries a great deal and open up creativity for librarians, since we would better understand how to do it and how it works.
I suspect this is also related to the library culture and how the said library relates to the central IT within the institution. I think there are differences between encouraging librarians to learn how to code (sandbox approach) and encouraging librarians to learn how to code *and* produce an app for use by the library. The first one is something that can be achieved quite easily, IMHO, and I totally support it. The second one is trickier because it would require some formal collaboration with the IT department including contingency plan (who would fix if it’s broken? who would fix if it’s broken and the said librarian is away for a conference? who would maintain if the said librarian leave? etc.)
Sadly, there may also be gender issues lurking. I have been steered away from continued IT involvement by my own management, and while I appreciate that THEY appreciate the breadth of my skills, I also wonder how many other women that’s happening to. It’s hard to climb the learning curve when your own management is dragging you down it!
All of the standard barriers for women interested in advanced technology also apply; see the Geek Feminism blog and wiki for more on this.
In generally I find there are very roughly 3 categories of competent programmer/cs types out there, allowing for all sorts of overlap and fuzziness:
1. Problem solving programmers/hackers. These are people that know enough code to make their lives easier, and see programming as just part of solving a larger problem. For example almost all physicists that I know fit in this category, and the same goes for people that do professional data/statistical analysis.
Ideally anyone claiming to be an ‘information professional’ should be in this group. It just makes sense, at least for academic librarians, to have enough coding skills in their tool kit to say automatically grab some data from the web, or automate some of the many tedious tech services processes. Honestly I think the profession views programming as way too sacred, anyone can code to solve some problems, and every librarian should know how to.
2. Software developer/engineer. These are people who primarily work on team created, large scale software. Their main concerns should be writings sustainable, maintainable code that can be worked on by a large, changing team. Librarians always make the mistake that any programmers in this category we hire should be both software engineers and librarians but this is an insane requirement. All librarians should be in category 1 (imho), and it should be rare to find any one who is both a competent librarian and a competent software engineer, so don’t require both (if you can get both great, but don’t require an mlis for software dev. positions). These are the people libraries should hire to contribute to open source projects.
3. Computer Scientists. This doesn’t simply mean someone with a CS degree, this means people who get paid to work on the hard problems in computing. People who do machine learning work, natural language processing, information retrieval etc. In my opinion there are virtually none of these working libraries and it’s one of the biggest failures of the profession in the last 50 years (one exception to this would probably be people doing research in semantic technologies). I remember the moment I got interested in studying CS was talking to a researcher I worked with who was doing work on Support Vector Machines for auto-classification of texts. He had the exact same concerns and goals that a good cataloger would have only he was essentially approaching the problem from a different century.
I just want to be clear here, there is no hierarchy in this and there is can be a lot of overlap. The tl;dr version is: All libraries probably should be in no. 1, stop hiring librarians for no. 2 (it would be like requiring your library lawyer to have an mlis), and we need more people in no. 3 if we’re going to continue to be information professionals.
Your article hurts my head. For every article that is written on why we can’t simply replace librarians with volunteers speaks to why librarians are not the same as coders. There is education that IT people take to learn how to code things right. Yes, librarians are smart enough to take the same classes, to self-teach on how to write simple code but does it pass w3c standards? Will it be accessible? Will it make sense to anyone outside of a library? Does a programmer with good specifications on a product to be built really need to understand how a library functions? I don’t think so.
I get that there are many librarians who are talented and technically minded. They have learned how to run servers, write code and maintain vendor applications that have been purchased for library use. I’m not saying it can’t be done. I am however disturbed by your breezy attitude toward the effort and knowledge needed to perform IT work effectively, efficiently and correctly. As a computer engineer who spent 4 years learning about how computers work and how to program them, it is as offensive as the people who say “Oh, I’d love to be a librarian and read all day” or ” Why do you need a master’s degree to check out books?”
Also, at my library, maybe a third of the librarians are capable of truly understanding technology. Sure, they can search the databases and indexes like the pros they are, but the creation of the database or the effort to create the interface is beyond them. Some of that is because they aren’t interested in knowing. Those who are interested could learn, but then please truly emphasize that it is about obtaining a different degree in a different field and not simply expanding the definition of what a librarian is. Librarians are experts at finding information and converting it into knowledge. IT people are experts and storing data and creating interfaces to make it findable by the information experts. We work together to assist others.
I get that budgets are tight and by combining two roles, money will be saved. I just don’t want people to think that picking up a little html on the side is the same thing as being a programmer any more than being able to pick out the books I like makes a person a librarian.
I’m an academic librarian striving towards category #1 listed above, and I agree that the programming side of a “librarian programmer” should not be treated breezily — however, working at an academic library, lots of of my colleagues have both MLSes and advanced degrees (many times PhDs) in subject areas – so having an MLS and an MS in a computer science discipline, while costly and time-consuming, compares to the requirements for just about every academic reference position. However, it should be treated with the same respect. I can’t count how many times I’ve heard snooty librarians call IT the “wheels on the bus” or something similar. Then they wonder why IT doesn’t want to work with them on their pet projects. In today’s world IT knowledge can be just as helpful as advanced subject knowledge and I would really like to see both treated with respect.
I would like to thank “Computer Engineer & Librarian”, above, for saving me the time of typing what would have ended up being the exact same comment — including the part that some of us find offensive (just as a metadata librarian should find offensive the notion of developers making decisions about metadata, and so on).
Computer Engineer & Librarian + JM
I think I get the spirit of what you’re saying, and discuss to what extent I agree with it in my previous comment re: software engineering.
However anyone really can be a good programmer it’s really just a function of time and practice. I’ll link to the classic Norvig article rather than reiterate his points here: http://norvig.com/21-days.html
Additionally a formal background in CS or CE is absolutely not required to make an excellent programmer, in software development, above most fields, formal education is a poor indicator of quality. Of course in research jobs a background in CS/E can be essential (although even in research intensive companies I’ve seen exceptions to this).
I think a better message would be that librarians can become really good developers, but it takes hard work and a continous time commitment. However keep in mind that if it’s 10years/10k hours to expert it’s likely that intermediate not nearly as far away (I would say 1-3 years of consistent practice).
So while I agree that it’s foolish to think that you can just point to a librarian and say “okay go develop OSS for us†it’s equally so to act as though it were a near impossibility for a dedicated and interested librarian to become a proficient software developer.
@Annie: It’s a good point how more and more technology skills new librarian jobs seem to require and there is such a lag between the MLS curriculum and those new jobs. Not every librarian needs to become a coder but if someone in pursuing the interest, I think the school should provide appropriate offerings.
@An IT Person: Thanks for sharing your thoughts! From my experience, I can tell you being a librarian is like running a small shop with limited resources and equipments with best intentions, fixing everything breaking along the way everyday. The real librarianship comes from the field not from schooling. (Isn’t coding somewhat like that also? Schooling may initiate you but it’s up to your efforts to become proficient.)
I was surprised to see that some IT/programmer folks saw disrespect to IT/programming in my post. I wanted to make a point that novice librarian coders should not be scared away. While doing so, I gave a wrong impression that picking up coding skills can be a breeze. No, picking up coding skills is difficult and time-consuming and hair-splitting. But I believe that librarians can become good enough coders to achieve something simple that can be still significant in the library context as long as they are willing to learn and practice as much as needed.
I would like anyone in library IT/programming know that those novice coder librarians are also the first ones who would fully admit what they do ‘not know’ compared to fully-trained programmers/IT folks and would be the strongest advocate for IT professionals/programmers in libraries. There are librarains who look down upon IT (and gosh, I know librarians who look down upon other librarians doing IT/technical work). But the novice coder librarians are most certainly do not fall under that group.
@Nicole: The time commitment is one of the hardest part in picking up coding skills. It’s easy to go through syntax. But then you are nowhere near building anything practically useful. Just like librarianship, coding is practice-driven and learned best by doing repeatedly making lots of mistakes. But I wanted to say that the libraries should encourage librarians who are interested to try precisely because it is difficult. You know, we (I mean librarians) don’t attempt to be a wizard; we just want to automate some process and display some data nicely because often we have no access to the Central IT who are far too busy. It may not be up to the industry standard but making something out of nothing is better than making nothing out of nothing. 😉
@ranti: I agree. Yes, there is a big difference, but wouldn’t it be nice to see some motivated librarians to move from learning how to code to producing an app for a library’s use? I understand it will be mostly a matter of the person’s willingness to learn and practice coding but what puzzles me is why libraries wouldn’t tap into those people who become interested in coding because of their desire to fix things for libraries. I believe that the succession issue is shared by both library and IT. It requires good documentation and smart succession planning/strategy.
@Dorothea: Thanks for bringing up that issue! I experience my interests in coding and general IT issues, which cannot be avoided since I work at libraries dealing with technology every day as the only tech person without an IT dept, are often downplayed because I work at a library and because I am female. Yes, I should be able to overcome by doubling my efforts but why should there be such an absurd barrier in the first place? My guess is that the whole situation may be different if librarianship were not a profession in which the majority of librarians are female.
@Will, @Computer Engineer & Librarian, @JM:
I really appreciate both of Will’s comments as I realize that I used the term ‘coder’ rather loosely and mostly in the library context. So I understand where the comments of @Computer Engineer & Librarian and @JM are coming from. But the audience of this post in my mind was those librarians who already dabbled with some coding for purely practical problem solving purposes at libraries and know fully well how little they know in terms of coding. Those people are, in my opinion, also the strongest advocates for and ardent collaborators with formally-trained IT/programmers. My remark was not intended to be read as “learning how to code is a piece of cake” since anyone who made a serious attempt at learning how to code would know immediately how false that is. See also my response to @IT Person above.
That having been said, I do disagree with the comment that a programmer with good specifications on a product to be built do not really need to understand how a library functions. Absolutely not. How do you even know whether the given specifications are good or not if the system designer is not willing to learn what users will do with the system and simply rely on some specifications? (Unless the idea is that drawing up specifications is an analyst’s job and analysts are not ‘real’ coders. 😉 ) Nor do I agree that learning how to code requires proper schooling. Much time investment and practice – yes; a steep learning curve – yes; overcoming a huge gap between knowing some syntax and building a useful application – yes. But it is not a matter of whether someone majored in CS/E and has a degree in it, just as the real librarianship is not the same as a mere MLS degree.
IMHO, coders and librarians should work together as they have different expertise, but the common interests in these two groups have been often neglected and under-appreciated. The librarians who want to work together with coders are the ones who have the most respect and appreciation for ‘real’ coders who can do the heavy-lifting. I hope there are the equivalent in the coder community – at least those who work at/for libraries. Many novice coder librarians becomes interested in coding primarily because they want to solve some ‘library’ problems. This and their interests in and enthusiasm about coding should be appreciated and encouraged to grow, not to be used as a point to dismiss them as amateurs who lack proper schooling.
@Michelle: That’s an excellent point. There are snooty librarians and there are snooty IT. But I want to think that those of us – the librarians who want to learn and understand some coding – and those of formally trained IT/programmers who are willing to talk to and collaborate with librarians regarding the design / functionalities of information systems can bridge the gap and achieve something greater together than what they can achieve as separate groups.
I’m curious which coding languages would be useful for librarians? I’m currently unemployed, so have plenty of time to learn something new!
Also, when you say coding, are you referring only to software programming? Or is web coding included in that?
Excellent post and an area I’ve been frustrated by for many years. For me there are three issues:
1. Management buy-in. If there isn’t a culture of nurturing development of staff in cross-disciplines then staff are usually happy enough (or not unhappy enough) to stay within their comfort zone. I have tried many times to enthuse staff to support me in asking the management to let me run a ’23 things’ course, but I get very little positive feedback. I don’t blame staff for this, it is the fault of management for not investing more time in staff development.
2. IT people (of which I class myself) can be very protective over their knowledge. There is a tendency for IT people to present computing in its many forms as a black art or a highly complex subject. Like most specialised areas some of it is highly complex, but the vast majority is just as simple and learn-able as every other job. Libraries in that respect are far better in terms of experience sharing than IT departments, which is one of he reasons I hope to remain in Libraries rather than go back to a Computing Dept.
3. In my experience Library people (and in particular Librarians) tend to view the role of the IT guy and the role of the Librarian as completely separate. I have been personally battling for the convergence of these two roles into a ‘Information Professional’ role for some time. I think titles like ‘Librarian’ and ‘Library Computing Officer’ only reinforce the stereotype that we need tow individual roles within Libraries to perform tasks that could be shared.
I’d argue that generally society should consider an understanding of computer programming as a basic skill – like literacy or numeracy (perhaps not quite as core as those two, but at that kind of level) – in the UK at least this seems less true now than it was when personal computers were first starting to become common in the 80s.
I think in the world of Information Management the issue becomes more pressing – as the computer/program is the main tool for manipulating information. I can think of countless occasions when I’ve seen library staff carrying out work that could have been simply automated if they’d had the right tools and skills to hand.
This isn’t necessarlly about building systems from scratch and heavyweight programming – but can be about being able to use a set of tools to do jobs better and/or more efficiently. This can be at a very simple level of being able to exploit tools like Excel, or Google Refine, or being able to write macros to automate tasks (I guess this reflects to a large extent how I’ve learned and what I’ve found useful)
These ideas were a large part of what inspired the concept of ‘Mashed Libraries’ in the UK – see http://www.mashedlibrary.com/ – a series of events aimed at bringing together coders and librarians to share skills and knowledge and to do interesting/fun stuff.
@Computer Engineer & Librarian: You ask, “Does a programmer with good specifications on a product to be built really need to understand how a library functions?” I think that almost never happens, particularly in a library environment. If the software is used by humans, then the development needs to be based on user research, it needs to be iterative, and any specification is going to be provisional at best. Someone needs to bridge the gap between user needs and technical implementation. It helps if programmers have some of these skills or at least an awareness that such skills are needed.
@Laura: I addressed that question on my blog: http://www.andromedayelton.com/wp/2010/10/10/which-programming-language-is-best-to-learn/
I think Andy Ekins summed it up well. May not be a lack of interest from librarians, but a management decision.
I’m going to flip @IT Person’s original comment “I think one reason libraries don’t grow coders is that library administrations often harbor a suspicion of technologists” around. I think another reason libraries don’t grow coders is that library *IT* administrations often harbor a suspicion of librarians. Some of my colleagues have to ask for IT help to install a new version of a browser plugin on the computer on their desk. Not because they are incompetent (OK there may be a few who are), but because their department insists that their desktop computers be locked down to that point as the default. I pay out of pocket for a commercial hosting service that lets me get my fingers dirty.
It’s about trust. Both sides could use a little more, IMNSHO.
@Laura: See Andromeda’s post that she put the URL above. Also I recommend the following Code4Lib listserv responses: Newbie and A Long Way to be a Good Coder in Library
@Andy: You make a great point! I love working with knowledgeable IT folks but yes they tend to present computing as a black art or pure magic. I had to work hard to prove myself before IT can trust me as an OK person to trust with technology. The trick I learned from experience is introducing myself to IT as someone who does IT stuff at libraries. But don’t I know they are not easily persuaded! I really hope IT folks become more aware of the fact that libraries are tech-centers just like IT, only that libraries may push more for access, openness, and innovation/experiment while IT focuses strongly on security and what they can support with their limited resources/staff.
You are correct in that librarians are much more open to sharing their skills/knowledge, but the weak point of librarians is that they often regard IT/computing as magic just as some IT folks advertently or inadvertently make it appear so to the outsiders of IT. And often, not all but the majority of the library management tends to lack a deeper understanding of how IT functions and library functions are so closely inter-connected. Or even when it does, the library management tends to be completely baffled about what to do to support and take advantage of such inter-connectedness between library functions and IT functions (I am actually quite sympathetic on this and think library technologies should assist more the library management in this respect). Maybe library directors should be given a title of Chief Knowledge Officer. This would place them next to the CIO in an organization, which is a cutting-edge title for the head of IT. 😉
@Owen: Thanks for the link for ‘Mashed Libraries’! It’s always good to know what’s happening outside of US. I agree that eventually computer programming will be like literature in education in the sense that everyone will need to know at least a bit to understand the world. Very simple/elementary coding can go a long way in libraries as they have lots of repetitive tasks and tend to have much information that needs to be more efficiently managed. distributed, and made more easily accessible. I also completely agree with you about the difference between the need for non-sophisticated coding skills in the library context and heavyweight programming. And I meant by ‘coding’ the former, not the latter.
@An IT Person: I fully agree and thanks for making this comment as an IT person. All specifications are provisional and need to be continuously tested through user-research.
@Andromeda: Thanks for posting this link to your blog post. I was about to just do the same. 😉
@Tim: The library management decision is important because it can make or break growing more coders in libraries. I really wish we could hear some thoughts from library administrators on this topic…
@Jenny: You are so right in that libraries suspect technologists while IT doubts today’s librarians’ understanding of technologies. Many IT folks (including web folks whom I dearly like to talk to) actually are not library users, have no idea what a contemporary library is like or how much its goal resembles that of IT in some respects, and get really surprised to see librarians turning up in meetings that discuss web design, coding, and other wider IT issues often with a shocking amount of experience and knowledge on those subjects. But who knows outside IT more than librarians about a proxy server, single-sign-on, Active Directory, and things like Shibboleth? It’s a high time for IT to know that librarians are ‘IT in research’ who advocate users’ interests. Librarians and IT work in the same field from a different angle and should complement each other instead of suspecting out of ignorance.
Being a coder is pretty self-selecting. If you want to learn how to do it, the resources are free. I think anybody with a fairly logical mind and decent writing skills can do it. All it takes is a ridiculous investment of time.
Most people don’t want to make that investment, so instead they shop for excuses — I’d do it if only somebody would pay for the training, or only if my work environment encouraged me.
People learn to code because they want to for their own reasons and they’re willing to do the work. Everybody else makes excuses. Anybody who thinks they need someone’s blessing to become a coder: fine. I bless you. Now go forth and hack.
http://greenteapress.com/thinkpython/
@Casey: Thanks for the link and sharing your thought. I am glad you said this, because I was actually expecting to hear a comment like this. I won’t argue against your point that one can become a coder by putting lots of time using free resources on the web and the strong self-determination will be the ultimate test. It is true. But it is equally true that this process can be also significantly expedited and facilitated by social factors. My question is NOT ‘what librarians should do to further develop their coding skills’ BUT ‘why don’t libraries see the opportunity to benefit themselves by supporting novice librarians coders, thereby producing the library staff who will be able to contribute to and/or produce better library mash-ups, software, systems, products, etc. In this context, whether one is making an excuse or not is simply irrelevant. Libraries endorse and support technology openly, but their role is still no more than a buyer and provider of existing technology systems and products. And often those systems and products do not function very well together as they were developed by outsiders. I think some librarians are interested in changing this, but libraries do not seem to see how they can play a role in that. And no matter how mighty an individual can be, there are things only institutions can do.
In my remarks at Code4lib, I asked how the experimentation leading to change in libraries could happen, and I suggested that the people in the audience were the ones who would make it happen. I didn’t say that because the room was full of librarians who would suddenly start writing software, I said that because the room was full of software developers and librarians who were reaching out to each other by learning each other’s skills and talking each other’s languages.
I think that computer science should be underlying library science in the same way that mathematics underlies engineering and biology underlies medicine. innovation will be driven by people who understand many strands of knowledge and can connect them. Library organizations that segregate development roles from “library” roles will never be able to adapt to the rapidly changing environment that we live in today.
I think this article is still a pretty good summary of how I feel about “coders” in libraries. Get used to the idea- librarians must become coders.
The library field is changing rapidly and morphing more and more into “technolibrarianship.” Don’t want to sound like a downer, but not everyone is cut out for or able to do coding. Nor has everyone experienced the tech classes in library school. For those of us who’ve been out of library school for awhile, it is downright expensive and very time consuming to take classes in these areas. And we all know how big library salaries are
and the fact that employers are no longer picking up continuing ed costs.
I think a big issue is that libraries don’t pay enough. so for a developer to select working at a library over a higher paying job in a for profit company makes it less attractive. and you’re right, now with all these budget cuts i think libraries i trying to survive. i really wish we could find a solution. :o( i would LOVE to have a developer in my team.
@Will T et al; I don’t fundamentally disagree AT ALL with shared skills, needs, desires, and abilities — just reacting to something that I read as “it’s a piece of cake” because I’ve seen this similar topic/question/response come up before (and often) so it’s sort of a hot-button topic for me. Plus, regardless of intention, words like “coder” do have meaning in and of themselves, and I can’t divorce them from context (IOW, to me a coder is a coder is a coder no matter where the person is located).
As background, I have as much formal training in libraries and archives as I do in application development, which is to say zero. So, I am aware of and sympathetic to just about all the possible avenues of inquiry and concern here, and am as committed to finding solutions to common problems as anyone responding here.
I’m actually not trying to be antagonistic at all.
I’m a software engineer. Before my (publishing-related) startup got off the ground, I would have happily taken a contract or full-time position coding in a library setting. I joined ALA and looked at a lot of job listings. As someone comments up-thread, “MLS required…” started every technology-related post. I realize in an era of constrained budgets that a jack-of-all trades hybrid librarian/developer would be ideal, but surely in some organizations there’s room for a technologist who focuses on code while the librarians supervise and provide requirements based on their own expertise.
Excellent article and very enlightening comments. As someone who “does IT work in libraries” but have neither an MLS nor any sort of CS/CE degree I often feel like I snuck in through a door someone forgot to lock. There are a lot of good points above that I agree with and learned from. One that I’d like to add to is about communication. In my role as feral librarian/archivist/IT person I have had to learn to speak library-ese and discourse on all the good metadata TLA’s but I have also had to pay attention and sound smart when learning about the forests and trees of Active Directory and the ins and outs of programming plug-ins and add-ons to yet another OSS that doesn’t quite do what we want. I am in no way a programmer, but my ability to communicate with programmers and network techs and sys admins without rubbing them the wrong way has frequently allowed me to avoid costly misunderstandings that developed between library staff and the developer they hired to do some task.
I agree that the biggest factor in library and archive professionals learning to code or at least think and speak it is time. In my experience, if I have time and the will then I can learn to do something – other resources are not necessary. In fact, some of the best learning experiences come from having to make do in a period of budget cuts.
Pingback: Miksei kirjastolaisten keskuudessa kasva koodausosaaminen? « Riippumaton asiantuntija
Pingback: Links and Thoughts for the week. | Matt Phillips
@Eric: Thanks for the comment and the link to your blog post. It think many disciplines are related to libraries. Computer science may be more pertinent nowadays since libraries have to find a way to free all their bibliographic data locked in MARC to the web, which is the common access platform. I don’t think all librarians need to learn how to code but at least one librarian at each library should have someone whose knowledge goes beyond that of a sophisticated technology consumer.
@Nadine: I don’t think ‘all’ librarians need to learn how to code. There will always be work for librarians who have expertise in other areas such as marketing, design, particular disciplines, etc. My point was that libraries will significantly benefit by encouraging those who are ‘already’ on their way to developing their coding skills and by successfully retaining them in libraries.
@Monica: I agree that the pay for libraries is low particularly considering the education level of usual librarians (often previous professional experience in other fields and a Master’s or Doctorate other than in LIS.) But the budget is only going down. I don’t know what may break this trend. But the low pay issue is a significant problem because it means that libraries will always have a problem in recruiting the brightest into the library field. And the brightest people are needed at libraries more than ever as they go through the crisis of identity and budget.
@JM: I didn’t think anything was antagonistic! I appreciate sharing your thoughts. 😉 It is good to know that the word ‘coder’ can be so sensitive. But surely there is a very wide spectrum of coders unless there is a clear cutting point at which someone qualifies as a ‘coder’? I thought that ‘programmers’ mean software developers and ‘coders’ can include novices, but not I am not sure at all. I would be really interested in knowing what more accurate/neutral/less sensitive term is, which would convey the sense of what I am referring to by ‘novice coder’ …
@Liza: That is a great point! I think that for libraries to be really innovative, they should start recruiting and supporting people with different backgrounds than LIS. ‘MLS’ should be optional for developers (in particular) who apply to work at libraries IMHO. I believe that the hierarchical structure of libraries do more harm than good particularly if it has the effect of dividing their staff into librarians and non-librarians.
My ideal library would be a place where librarians and developers work together ‘as peers’ with somewhat different expertise but with shared interests and some common knowledge about systems and software products. And such a team should be comprised of librarians who have a basic understanding of programming and of developers who will be willing to work together with librarians relying on their knowledge in library resources and services. Some libraries have developers supervised by librarians. But I think that if those supervising librarians do not understand programming at all, the supervision would be unsuccessful and/or ineffective. The worst part is that there is going to be no synergy from librarians and programmers working together.
@Derek: I believe that work experience + knowledge + understanding gained on the job can equal a degree and mean even more than a degree. A degree is often a step that let one in into a certain field, so that you can get experience and deeper understanding. Libraries are good at supporting their staff to get an MLS degree but I would like to see libraries equally support those who are interesting in programming to become more proficient in it.
I full agree that the strongest motivation to learn how to code often comes from the desire to solve a concrete problem in hand. In that sense, novice library coders have abundant learning opportunities if they are willing to take advantage of them. But librarians are very short on time and money on both fronts. So support and encouragement from libraries – no matter how little – may expedite the process of novice library coders overcoming a steep learning curve from picking up a language to actually building something no matter how small it is.
Pingback: Meeting in the Middle | Metadata Matters