Presented at the 2012 Charleston Conference Charleston Conference XXXII. November 9, 2012. An article version of this presentation at the Conference Proceedings is downloadable at: http://docs.lib.purdue.edu/charleston/2012/Tech/8/
Program description: http://2012charlestonconference.sched.org/event/b7cd8aed0d21408e6c23fd95b6162837#.UJLWcoWQkbQ
Automating Google Workspace (GWS) & more with Apps Script
Geek out: Adding Coding Skills to Your Professional Repertoire
1. GEEK OUT
: ADDING CODING SKILLS TO YOUR PROFESSIONAL REPERTOIRE
BOHYUN KIM (TWITTER: @BOHYUNKIM)
DIGITAL ACCESS LIBRARIAN, FLORIDA INTERNATIONAL UNIVERSITY MEDICAL LIBRARY.
WEB: HTTP://BOHYUNKIM.NET, SLIDES: HTTP://SLIDESHARE.NET/BOHYUNKIM
CHARLESTON CONFERENCE XXXII. NOVEMBER 9, 2012.
2. ABOUT YOU
• What kind of work do you do?
• How much coding do you do?
• What made you take interest in our talk?
3. About our talk
• How to obtain coding skills effectively
: Common mistakes, obstacles, tips, and resources
• Related resources and programs from OCLC
16. • Communicate better with the IT and the vendors!
• Better evaluate many vendor products.
• Make changes to the code in a system yourself.
• Streamline your workflow. Automate!
• Build something new yourself and create a new
library service.
18. My background
• MA in philosophy.
• No coding experience until working at a library.
• Worked in many areas but in the systems dept.:
reference, instruction, e-resources, digitization and
digital library collections.
• So how and why did I pick up coding?
: To solve everyday problems
20. • Taking classes (community colleges, online, etc.) +
• Following tutorials online +
• Reading books +
• Group study+++
• Solving a real life problem +++++
22. • What I learned vs. What I want to build.
• Keeping up motivation - self-directed learning
• Lack of immediate and visible progress and tangible
connection to the problems that I want to solve.
• Lack of time, permission, and opportunities at work.
• Lack of support, guidance, and a community for
beginners in the librarian community.
• Cultural difference between the library and the developer
community
23.
24. My personal mistakes
• Waiting until I feel that I know enough.
• Overestimating what others know.
• Not building on what I have learned.
• Neglecting to sit down to code on a regular basis.
26. • Don’t give up.
• Try again again again.
• Make time for coding. Make it a commitment.
• Write and publish your own codes.
• Don’t be intimidated.
(Librarians vs. Developers)
28. • Solve your own problem.
• Learn by doing.
• Build something new and small.
• Research, ask, and try again.
• Find a community.
• Continue to build on things that you made work.
29. Tips
• Set a goal.
• Publish your code. (e.g. Github or Your personal website)
• Be persistent. (debug debug debug…)
• Get used to syntax errors, poor documentation, and
frustration. It is normal that your code does NOT work.
• Fail many times & record successful codes.
• Network!
31. Ready to be overwhelmed!
• “Google”
• Codecademy http://www.codecademy.com/
• W3C tutorials http://www.w3schools.com/w3c/default.asp
• Safari Books Online http://my.safaribooksonline.com/
(Series: Head first / Visual QuickStart)
• Stack Overflow http://stackoverflow.com/
• Mozilla Development Network
https://developer.mozilla.org/en-US/
• Coursera (Many programing
courses)https://www.coursera.org/category/cs-programming
• Github https://github.com/
32. Pick a few, not all!
• How to design programs (2 nd ed.)
http://www.ccs.neu.edu/home/matthias/HtDP2e/
• Recommendations from people in the Code4Lib
https://listserv.nd.edu/cgi-bin/wa?A1=ind1211&L=code4lib#11
• Library Code Year IG (ALCTS/ LITA )
http://connect.ala.org/node/167971
• Catcode wiki /IRC (#catcode on Freenode)
http://catcode.pbworks.com/w/page/49328692/Welcome%20t
o%20CatCode
• Code4Lib listserv / Wiki/ IRC (#code4lib):
https://listserv.nd.edu/cgi-bin/wa?A0=code4lib
(Also: WEb4Lib, XML4Lib, SYS4Lib, FOSS4Lib etc.)
• Devchix http://www.devchix.com
• Local coding community meet-ups: Python, Ruby, etc.
33. C. How to support your library staff
who want to learn how to code.
34. Library∩Coding
I work at a
library, I wish my library
and had
I would like to a/more
learn programmer(s)
how to on staff.
program.
39. How to support the interested staff
• Identify interested staff members.
• Offer an opportunity to participate in a library project
that involves coding.
• Provide R&D time.
• Encourage communication and cross-training.
• Joint projects within a library or with outside units.
• Connect the staff’s interest in programming with the
tangible improvement of a library services/resources.
41. Take advantage of your staff whose interest and knowledge
in library resources and services will be a great asset once
their coding skills are applied to the library environment.
This does NOT mean that your library will not hire coders
from the outside of a library.
Coding librarians do NOT have to become coding ninjas.
Coding librarians can be a great interface between non-
coding librarians and programmers.
Coding librarians can be a great resource for coders hired by
a library helping them to quickly adjust to the new library
setting and creating synergy working with programmers
with no LIS background.
42. A few references…
• “Why Not Grow Coders from the inside of
Libraries?"http://www.bohyunkim.net/blog/archives/1099
• “Guess who’s winning the brains race, with 100% of first
graders learning
to code"http://venturebeat.com/2012/09/04/estonia-code-
academy/
• Harvard Library Explorer
http://librarylab.law.harvard.edu/toolkit/
• “How to make peace with error messages”
http://acrl.ala.org/techconnect/?p=1061
• “The simplest AJAX: writing your own code (1)
"http://acrl.ala.org/techconnect/?p=1821
• “More APIs: writing your own code (2)”
http://acrl.ala.org/techconnect/?p=2037
43. GEEK OUT:
Adding Coding Skills to Your
Professional Repertoire
Kathryn Harnish
WorldShare Platform Product Manager, OCLC
harnishk@oclc.org
50. Tools in the Developer Toolkit
• It all began with the WorldCat Search API
– Access bibliographic and holdings data via an
application programming interface
51. Developer Network
• As OCLC exposed more services…
• The need for community engagement and
support grew, too
52. Introducing the WorldShare Platform
• Initiative by which OCLC is systematically
exposing APIs (Web services) to libraries’ data
and business processes
• Using the cooperative data and infrastructure
of the WorldShare Platform, libraries and their
partners can:
– accelerate their ability to build new applications
– reduce the cost of coordination across large
numbers of participants in the library ecosystem
53. OCLC Coders!
• Full documentation, code samples, and more
– everything you need to make use of our APIs
• Sponsors mash-a-thons to educate and
connect library (and other) coders
• Office hours with OCLC’s coding experts
• And introducing...
54. Platform U
• Series of coding courses sponsored by OCLC
• Address a range of skill levels with different
classes
– Starting with a 5-week “Learn to Code” class
– Plan to develop more advanced programs, classes
focused on specific Web services, etc.
• Goal: provide learning opportunities and
support to library staff with an interest in
coding
55. “Learn to Code” Course
• Pilot program scheduled to begin in February
• No fee to participate, but spaces are limited!
• Program designed to develop basic, reusable
skills…and the knowledge and confidence to
learn (and do) more
58. Next Steps for OCLC
• Work with community to identify other
education/support needs related to coding
– Please let me know your ideas!
(harnishk@oclc.org)
• Explore partnerships with other programs –
e.g., Library Code Year Interest Group
• Expand Platform U – repeat “beginner”
sessions, plus provide a course path to grow
skills further
Hinweis der Redaktion
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.