The concept of “computational thinking” can describe what librarians who aren’t programmers (both metadata experts and user service designers, in my opinion) still are going to want to learn about computers/software/programming.
Computational thinking isn’t programming exactly, but it’s being able to understand problem-solving using computers, to architect computational solutions.
Google says: “Specific computational thinking techniques include: problem decomposition, pattern recognition, pattern generalization to define abstractions or models, algorithm design, and data analysis and visualization.”
Jeannette Wing, who coined the term, wrote this introduction to the concept.
Computational thinking isn’t the same thing as computer science, although it consists of some of the perspectives and approaches at the heart of computer science. And it isn’t programming exactly, although you might need to do some basic programming exersices as part of learning computational thinking, as the obvious operationalization of it, and the language of algorithmic specification.
I think the ‘computational thinking’ approach is exactly how to think of what non-programmer librarians will want to usefully learn, not to be programmers, but to be able to plan out the role of software in libraries (and software is involved in nearly every aspect of a library these days), look forward and conceive of how technology might help us even more in the future, and generally control their own destinies when dealing with vendors and programmers (internal and external).
But I’ve had trouble finding actual curriculum’s or lessons to reccommend to non-technical librarians who want to develop their computational thinking skills. But Google now has a page on computational thinking which looks quite good; especially the “Lessons” and “Resources” section. I haven’t looked at it in depth, but I recommend taking a look if you want to develop your ‘computational thinking’ skills. If you try out some of the lessons and readings, let us know how you found them in comments if you like!
Specific computational thinking techniques include: problem decomposition, pattern recognition, pattern generalization to define abstractions or models,algorithm design, and data analysis and visualization.
It looks like many of the lessons use the Python computer language. I don’t know Python very well myself (I prefer ruby), but I think it’s a fine language for getting started. The lessons might be a fine place to start even if you do want to learn programming, but I think there are many librarians who don’t ever need to learn to write software well — but who do need to learn more about the capacities and techniques of writing software, a basic introduction to computer programming can be seen with that end, not with the end of eventually becoming an expert programmer.
(Thanks to this blog post/newspaper article by Tom Crick for bringing up computational thinking again, and directing me to the Google page)