How did you learn your tech skills?
Apr 17th, 2008 by Karen
One of the questions I most often get asked when I teach or present at a conference is “how did I learn my technology skills and could I recommend good classes, books, etc”. I got this question again after teaching the AJAX preconference at CIL and thought it would be worthwhile to post a paraphrased version of response here.
Honestly, while I learned a lot about database design, web design and project management via my degrees, as far as web programming skills, I’m pretty much self taught. I have lots of O’Reilly books that I use for reference when I need to know a specific function or such. I like the W3Schools tutorials a lot but they can be pretty basic. I learned my ASP by hiring a consultant to teach me and if your director can come up with the cash this is a great way to learn. Individual instruction while working on a specific project. Frankly it doesn’t get better than this.
My staff and I have looked a a variety of web-based training opportunities but these do not come cheap. The key is finding one that meets your needs. Another option is to see if your campus has a computer science program that might offer a class or two that meets your needs or if the campus technology group does training on this level. You could also partner with campus IT to bring in training for both groups of developers (the library’s and the campus web group).
My other advice is to leverage the code4lib group. Many of the folks in this group use open source programming languages like PHP, Ruby on Rails or Python. I’ve often asked them questions in the chat room.
As I lead a department with developers I don’t do much coding comparably any more and I struggle to keep my skills up to date. Mostly it is just playing and trying stuff. For me the biggest challenge is finding the time to learn things. When you are learning in a self-paced manner blocking out the time is really hard. A class solves that problem but it doesn’t make it as “real” in my opinion.
I wish I had a better answer for you and others out there. It isn’t easy sometimes.
My personal learning model is to work on things and have someone to ask questions. One of the best projects I did in library school was for my database design class. Basically we had to build a database and all the forms to interact with it using Access. The professor gave us a book that had step by step instructions and set us to work. He was available if we had questions. I had a similar experience with my Electronic Commerce Technologies class. Although this was a less helpful experience as I already had done programming in the language the professor had us working in. Keep in mind though, most of my MLS electives were from the MS in Information Management program. (The Info School at Syracuse contains the MLS, MS Information Management, and MS in Telecommunication and networking graduate programs) It was this cross-over that eventually prompted me to get both an MLS and a MS in Information Management. Many of my technology classes such as LANs, Telecommunications, all came during my IM degree. The really unfortunate thing is that many library programs don’t teach the important things that students who want to work as web or systems librarian need to know. Although I think some of this is changing. But I’m guessing my experience isn’t all that different from many other folks who have MLS degrees and work with library technology.


All my knowledge of coding and programming has been picked up ‘on the job’, and always in response to a specific problem or project. I’ve used my fair share of ‘XXX for Dummies’ type books, and often found them useful, as well as online tutorials, I’ve always had a goal in mind - something I’m trying to do - and I think this is a great way of getting basic skills.
So, my own personal tips would be:
Find a project or problem you want to solve
Decide what language you are going to code in (sometimes this is dictated by the problem you are approaching - for instance if you want to extend an existing system written in PHP, I’d definitely use PHP). Popular at the moment in the web world are PHP, Python, Ruby
Get your coding environment setup. The one that I have found easiest on a Windows PC is PHP, using a ‘WAMP’ package - you can see a list at http://en.wikipedia.org/wiki/Comparison_of_WAMPs. I’ve used WAMP5 (now WAMPServer) and found it easy to install and use (http://www.wampserver.com/en/)
Look at other people’s code - I find this incredibly useful in learning how to do things.
I have to admit that my approach has left me with a pretty unstructured approach, and I’m missing out on some of the theoretical grounding that I think I need to really count as a ‘programmer’ - for example, although I have a vague grasp of what ‘object oriented’ programming is, and have made use of it in some cases, I’ve never really got to grips with it (this may be a reflection on my very early experiences with coding as a child which used BBC Basic - probably a UK only reference there - which used a lot of ‘go to’ statements)
I think its a shame that, in the UK at any rate, programming isn’t part of the school curriculum - a basic introduction to how computers work at this level at school I think would really make a difference to the general attitude in our society about computers.
I’ve been asked similar questions and I’m afraid my answers usually disappoint people. My background is a computer science ba from a small but excellent computer science department and mslis in library and information science at UIUC.
My cs classwork was largely a combination of theoretical and high level material taught in classes and practical knowledge and teamwork learned in outside homework assignments and projects. I learned a lot about the theory, teamwork, software engineering, planning. However, the actual technical aspects we were expected to learn on our own. Rarely were things like how to use command-line tools, version control, frameworks, or programming languages taught in a class setting. It was assumed you would invest the time in those things yourself and work with your classmates to learn them. I spent many hours in the computer labs learning things on my own. In many respects, I could have coasted more and gotten barely passing grades, but I had an amazing amount of access to knowledgeable people, free tools, and cheap learning materials.
I also taught and tutored others, which always is excellent for finding your weak spots. As an example of time spent, it wasn’t uncommon for me to spend several days in a computer lab during a big crunch time, emerging only for classes, sleep, and to grab food. There were also spaces for people to nap in the cs computer lab and people did use them.
It seems like several of the people who ask me are hoping that there’s some magic book or one or two courses out there. It’s a combination of several thing along with the willingness to explore, play, and problem-solving. I do find classes focus me, but ultimately if you are scared and need everything demonstrated step-by-step higher-level programming is likely to always be extremely difficult.
Sorry I’m rambling a bit, but there does seem to be an interesting misconceptions out there.
I am one of those pick-it-up-on-the-fly programmers. I have asked my programmer colleagues their advice on how to acquire more formal skills. It has been my experience that few colleagues expect a magic book that would answer their needs. These seek comprehensive programs, certificate or professional development-based, that combine CIS with LIS. and with the capability of choosing a focus (ie., IT Librarian/Web Designer–Developer). That is a horse of a different color that does not yet exist, I think. Though, I do believe these programs will eventually be offered. (I want them now!)
Hi Karen,
Out of curiosity, what have your programmer colleagues recommended? I’ve tended in the past to recommend people look into community college classes as well if they really want coursework, but not something as abstract or theoretical as many computer science courses are.
My programmer colleagues have recommended classes (not computer science) in particular programming languages, web based programming classes, and learning from a book. They also work with me one on one sometimes to improve my skills and sometimes I teach the programmers stuff too (like XML).