Re: [CODE4LIB] Long way to be a good coder in library
Ed Summers schrieb: The first step is admitting that you are unable to understand *all* the crazy library technology lingo, and that library-technology environment as a whole has become unmanageable. :-) [evil grin] 2. Don't forget to look at trends outside of Libraryland. I think that's really an important point. But I think you won't reach that point until you have gone through all this library technology madness (I think a lot here have, haven't you?). It's not only the big trends that libraries tend to interpret their own way: I spent a lot of effort in learning a crude kind of programming language used in a library metasearch engine (maybe 20 poeple in the world have some grasp of that broker programming language or Robol or whatever it is called, it even doesn't have a real name!). Totally worthless knowledge... The same could have been done with some lines of PHP, Java or whatever, but of course, libraries are special and need special solutions :-). Same with data conversion: For things that could be easily done using some regular expressions, Perl, XSLT, even sed or whatever usual text processing tool you like, we use a product specific (again crude) kind of programming language (nowhere clearly defined or documented, of course). Our whole business depends on putting lots of effort into pretty worthless technology knowledge... And there are still people in the library scene, that dogmatically tell you reasons why you can't handle holy bibliographic library records in vulgar full text search engines like Solr... So the question is: Who has to learn? Till
Re: [CODE4LIB] Long way to be a good coder in library
Ed Summers schrieb: The first step is admitting that you are unable to understand *all* the crazy library technology lingo, and that library-technology environment as a whole has become unmanageable. :-) If all else fails, as a noise filter, you could also do worse than to track the technologies that Ed Summers is interested in, or has contributed to ... Walter Lewis part time edsu groupie
Re: [CODE4LIB] Long way to be a good coder in library
2009/7/22 Wayne Lam wing...@gmail.com: I am new in here and i am currently worked in the library too. I am always confused that when i read the post in here, there are always something i don't understand and there are so much to learn. So, the question is, hows everybody learns to be a good coder for libraries, what s the secret and what kind of technology are most important to learn? Two pieces of advice: (1) Avoid books that we 'dumbed down' (X in 21 days, Y for dummies, etc) because they tend to be full of details. These are exactly the details that change completely three years when we move from ILS A to ILS B, from language C to language D or from data format E to data format F. They're also exactly the kind of details that can be found on the web (assuming an open and non-proprietary system / language / data format). Abstract learning transcends these details and make your skills transferable. If you are in an academic library, I suggest that you try and sit in on the most abstract / formal computer science source course offered at first year level. As for which specific technology: the one with the best motivating examples in your daily job. Motivation is key to learning and if it's job-related your colleagues will be more supportive and helpful. (2) Learn how to ask questions. http://catb.org/~esr/faqs/smart-questions.html is an excellent place to start. cheers stuart
Re: [CODE4LIB] Long way to be a good coder in library
On Wed, Jul 22, 2009 at 11:14:47AM +0800, Wayne Lam wrote: Hi all, I am new in here and i am currently worked in the library too. I am always confused that when i read the post in here, there are always something i don't understand and there are so much to learn. So, the question is, hows everybody learns to be a good coder for libraries, what s the secret and what kind of technology are most important to learn? Find problems that interest you and go about trying to solve them. Ideally the problems should be of interest to the person who does your annual evaluation. This means the most important technology (sic) to learn is one that interests you and this is hardly EVER static. I would argue that a decade ago I could get by with knowledge of C. I think development today requires basic knowledge of more languages. cheers, ./fxk thanks Wayne
Re: [CODE4LIB] Long way to be a good coder in library
On Jul 21, 2009, at 11:14 PM, Wayne Lam wrote: I am new in here and i am currently worked in the library too. I am always confused that when i read the post in here, there are always something i don't understand and there are so much to learn. So, the question is, hows everybody learns to be a good coder for libraries, what s the secret and what kind of technology are most important to learn? Welcome, Wayne. I believe the path to success in this area is not unlike the path to success in other endeavors. It requires a combination of self- motivation and practice; Stuart and Mike have provided good starting points. Read lots of books, and ask lots of questions. Well-worded questions get responses. The practical nature of computer programming hits home when you choose problems to solve that are closer to your soul. Personally, I took three semesters of BASIC but nothing sunk in until I wanted to figure out: 1) how much money was I earning as a taxi driver, and 2) where Mars will be on a given day. The process requires practice, and practice requires time. It is not going to work the first time. There will be the syntax hurdle. Did you forget to put the semicolon at the end of your line? But the harder part will be the logic. If this, then that. Do while such and such condition is true. Then of course there are the data structures. Arrays. Hashes. Hashes within arrays. Arrays within hashes. Accessing relational databases. Creating and searching indexes. Begin at the command line. No graphical interface. Write the archetypical Hello, World! program. Output the result to the screen. Enhance the program so it outputs a simple letter to your Congressman. Modify the program so it outputs the letter to a file. Enhance it again so it reads the letter from the file system, changes the content in some way and saves the result. Enhance it again so the program takes input from the command line and outputs difference letters accordingly. Output letters as valid XHTML. Save many letters. Use an indexer (like swish-e) to make your letters searchable. Write a program that... searches your letters. Acquire a batch of MARC records. Parse out things like authors and titles from the records and indexes them. Write an OPAC. Move to a graphical interface by implementing all your scripts as CGI scripts. Identify a problem you want to solve -- an itch you need to scratch. Write a program that solves the problem, and when you get this far you I think you are well on your way to calling yourself a programmer. A couple of years ago I wrote a set of tutorials to address just this issue. Hmm... I wonder where they are? -- Eric Off To Search His Archive Morgan Head, Digital Access and Information Architecture Department Hesburgh Libraries, University of Notre Dame (574) 631-8604
Re: [CODE4LIB] Long way to be a good coder in library
On Tue, Jul 21, 2009 at 10:14 PM, Wayne Lamwing...@gmail.com wrote: Hi all, I am new in here and i am currently worked in the library too. I am always confused that when i read the post in here, there are always something i don't understand and there are so much to learn. So, the question is, hows everybody learns to be a good coder for libraries, what s the secret and what kind of technology are most important to learn? Hi Wayne, There's lots of projects out there in library land and I feel like I rarely know as much about all the projects and technologies as I would like. That being said, what is your background as far as programming and computing in general? Also, do you prefer to learn from classes, working with one or two people, or are you a solitary learner? I guess for now I'm going to assume you're working in a library and want to learn how to be a programmer. If you're really interested in programming and you are very new to the field, I'd say the best thing would be to take some basic computer science classes like systems architecture, algorithms, programming 101, database 101, and a software engineering course. Whenever you get an assignment where you can chose what to do, do a problem related to libraries. Programming a lot will get you comfortable with programming, learning more about how everything works and looking at other people's work should make you a better programmer. As far as languages, I'd probably lean towards ruby or python for starters or maybe Java. Then move into php after you have a grasp of good programming practice. You'll also figure out more what you like to work on. One issue is with most college-level cs courses is that they teach theory but they're not going to teach the tools that will be really useful to learn for day-to-day programming and practice. Start playing around with different Integrated Development Environments (IDEs). Maybe try to install something like Gforge onto a spare machine. Get into the habit of using a version control system like svn or git. I have a tendency to recommend having a linux computer to learn programming on, although windows/microsoft have become better again about providing tools for the learning programmer. Get comfortable using the command line, there's plenty of documentation out there now. If you already have the computer background but are more curious in library software, that's a whole other set of answers ;). Jon Gorman
Re: [CODE4LIB] Long way to be a good coder in library
Some good answers so far... First, regarding books. While the suggestion of avoiding dumbed downed books has some merit it is worth noting the distinction between books that are primarily used for reference and books that are more about theory. I haven't fund much use for reference books so much as usually the same material can be found online and kept more up to date. However, theory books on algorithms and software design can provide a good background on how, in general, to write good code. One of the best ways to learn how to write good code is to learn by example, and one of the best ways to do that is to surround yourself by others that write good code. Find an area of interest, then look for a good community open source project, then join their mailing lists, and become involved with the community. While you probably wouldn't be making too many contributions to the Drupal core, there is a lot that can be learned by following the Drupal development community to observe coding best practices, software design and patterns that experienced coders use. Drupal is just an example here. IMHO, a good software application/system begins with a good architecture, and a good architecture makes it much easier to write good code.
Re: [CODE4LIB] Long way to be a good coder in library
2009/7/22 John Fereira ja...@cornell.edu: Some good answers so far... First, regarding books. While the suggestion of avoiding dumbed downed books has some merit it is worth noting the distinction between books that are primarily used for reference and books that are more about theory. I haven't fund much use for reference books so much as usually the same material can be found online and kept more up to date. However, theory books on algorithms and software design can provide a good background on how, in general, to write good code. Very true. And the paradoxical upshot is that these days, some of the best books on programming are old ones, which a few years back would have been thought of as outdated. In particularly, I can't speak highly enough of Jon Bentley's classic _Programming Pearls_ (originally 1986, second ed. 1999), which is chatty and anecdotal yet rigorous, and will help you to _think_ like a programmer, as opposed to merely accumulating techniques. Maybe even better is Kernighan and Plauger's tour de force _Software Tools_ (1976!) In 320 pages, they start by developing a program to copy its input to its output, and end up by showing you how to design and build a macro processor and programming-language pre-processor -- covering sorting, pattern matching and a hundred other topics along the way. I know of no other book that goes from 0 to 60 so rapidly, readably and painlessly. The language that the tools are written in (RATFOR) is hopelessly outdated now, but the princples are timeless. These are books that I have come back to time and time again. They contain treasures worth a hundred time more than whatever currently trendy Design Pattern is being pushed by this month's hot book. Hope this helps.
Re: [CODE4LIB] Long way to be a good coder in library
On Wed, Jul 22, 2009 at 3:22 PM, Mike Taylorm...@indexdata.com wrote: 2009/7/22 John Fereira ja...@cornell.edu: Some good answers so far... First, regarding books. While the suggestion of avoiding dumbed downed books has some merit it is worth noting the distinction between books that are primarily used for reference and books that are more about theory. I haven't fund much use for reference books so much as usually the same material can be found online and kept more up to date. However, theory books on algorithms and software design can provide a good background on how, in general, to write good code. Very true. And the paradoxical upshot is that these days, some of the best books on programming are old ones, which a few years back would have been thought of as outdated Indeed, there are timeless masterpieces like the C programming language. Good programming language books usually follow a step-by-step approach - they introduce a couple of fundamental ideas and basic elements and give an example of a real-life (or close) problem that gets solved by that. E.g. in TCPL right after presenting the basic C syntax there is a naive implementation of standard Unix wc to illustrate that. The book does not get anywhere near pointers before the 100th page or so. Reference-like books are not worth a dime, they tend to be so boring that you don't go passed the first chapter without yawning. In particularly, I can't speak highly enough of Jon Bentley's classic _Programming Pearls_ (originally 1986, second ed. 1999), which is chatty and anecdotal yet rigorous, and will help you to _think_ like a programmer, as opposed to merely accumulating techniques. Maybe even better is Kernighan and Plauger's tour de force _Software Tools_ (1976!) In 320 pages, they start by developing a program to copy its input to its output, and end up by showing you how to design and build a macro processor and programming-language pre-processor -- covering sorting, pattern matching and a hundred other topics along the way. I know of no other book that goes from 0 to 60 so rapidly, readably and painlessly. The language that the tools are written in (RATFOR) is hopelessly outdated now, but the princples are timeless. These are books that I have come back to time and time again. They contain treasures worth a hundred time more than whatever currently trendy Design Pattern is being pushed by this month's hot book. You surely don't mean the GoF classic here, do you? It's a must-have for anyone doing serious OOP, be it Java/C# or C++. It's a rather demanding lecture and one should stay away from it unless he really feels needing it :). It's known to do more harm than good at times. Nevertheless, It does save you from re-inventing the wheel each time you have a particular design problem. Hope this helps. -- Cheers, Jakub
Re: [CODE4LIB] Long way to be a good coder in library
On Wed, 22 Jul 2009, Wayne Lam wrote: Hi all, I am new in here and i am currently worked in the library too. I am always confused that when i read the post in here, there are always something i don't understand and there are so much to learn. So, the question is, hows everybody learns to be a good coder for libraries, what s the secret and what kind of technology are most important to learn? You learn to be a good coder in a library the same way as any other environment -- pay attention to the needs of the users and the demands made by management. And all the while, keep up with advancements in the field so that you can apply the best solution to a problem. How you balance those first two things probably depends how receptive the management is to ideas that they didn't come up with. (and you can still pull the 'didn't you say something a while back about ...' trick so they can still claim credit and you can get the better solution done.) For the keeping up with advancements, I spend a fair bit of time scanning headlines on various news websites, blogs and mailing lists (which was a bad procrastination habit even before I started working for Fark), reading books, the occassional side project to test out a new language, etc. ... and it's impossible to recommend any specifics without an idea of what your overall role and background are. (are you a librarian who's been pushed into the 'systems librarian' role, or a computer science person who's new to libraries? are you working on front ends, backends, systems administration? On windows, unix, linx? are you writing new software, or just customizing existing packages for your library?) -Joe
Re: [CODE4LIB] Long way to be a good coder in library
Hi Wayne: My advice would be to find a real, do-able, and hopefully exciting problem where you work (or elsewhere) that can be solved with a bit of automation. Once you've found something to work on, fish around for the right tools(s) to solve the problem. You can use your peers in here or elsewhere on the Intarwebs to determine what 'right tool' could mean. There are very active communities around the most popular software development tools that are easy to tap into via email, irc, twitter, blogs, etc. When looking for a problem to solve, don't worry about re-inventing the wheel. Some wheels needs to be re-invented, and the process of re-invention can be great learning experiences. I think finding something local to work on as an individual rather than diving into an opensource project can prove to be more productive -- at least initially. It lets you experiment without being afraid of doing things right. It's more important I think to find people (aka stakeholders) that need something done, and who will be pleased if you can help them do it. It's kind of a rewarding feeling, and one that can keep you going as a software developer during bleak moments :-) My personal favorite book about programming is The Pragmatic Programmer [1]. I like it for the same reason that Mike suggested Programming Pearls: it helps you think like a programmer. I like it also because it helped me realize that software development isn't something that happens in a theoretical, ivory tower full of books -- it's a craft that is learned by doing: making mistakes, and learning from them ; following the advice of others, and consciously diverging from them. //Ed [1] http://www.pragprog.com/titles/tpp/the-pragmatic-programmer
Re: [CODE4LIB] Long way to be a good coder in library
2009/7/22 Jacob skoc...@gmail.com: These are books that I have come back to time and time again. They contain treasures worth a hundred time more than whatever currently trendy Design Pattern is being pushed by this month's hot book. You surely don't mean the GoF classic here, do you? It's a must-have for anyone doing serious OOP, be it Java/C# or C++. It's a rather demanding lecture and one should stay away from it unless he really feels needing it :). It's known to do more harm than good at times. Nevertheless, It does save you from re-inventing the wheel each time you have a particular design problem. No, I didn't have the the GoF book in mind! Maybe I should have taken a little longer of crafting that sentence, and eliminated the not-really-relevant reference to Patterns -- my target was really flavour-of-the-month stuff that everyone will have forgotten in 2010. Whatever the GoF book's faults, it has at least demonstrated longevity.
Re: [CODE4LIB] Long way to be a good coder in library
On Wed, Jul 22, 2009 at 8:54 AM, Jon Gormanjonathan.gor...@gmail.com wrote: As far as languages, I'd probably lean towards ruby or python for starters or maybe Java. Then move into php after you have a grasp of good programming practice. You'll also figure out more what you like to work on. Given the plaintive tone of the original post, I disagree with this advice. Development is almost solely based on confidence and experience (with the latter affecting the former and vice-versa). Good code is secondary. I would almost certainly say start out with a procedural scripting language (or at least a procedural approach) that is more common and Googleable (PHP immediately comes to mind). The nice thing about something like PHP, in my mind, is that it's incredibly easy to see immediate results without having any real idea of what's going on (that being said, I have _no_ idea what Wayne's background might be -- perhaps this advice is too novice). As many others have replied, it's so much easier to learn by solving an actual problem (rather than following the 'pet store' example in your tutorial) and, in my mind, PHP is the easiest way get off the ground. Successes breed confidence to take on bigger projects, etc. Once you've realized that this stuff isn't rocket science, /then/ break out the theory, find a different language (perhaps more suited to the task at hand -- or not!) and think about good code. Rob Styles sent this to my delicious account the other day (I'm not sure what he was trying to tell me): http://cowboyprogramming.com/2007/01/18/the-seven-stages-of-programming/ which I think sums up the arc pretty well. -Ross.
Re: [CODE4LIB] Long way to be a good coder in library
Here's another reference to add to some of the great ones so far (hadn't seen that Norvig one before Chris!). Whatever you think about Perl, it's hard to argue with Larry Wall's 3 great virtues of a computer programmer: http://www.c2.com/cgi/wiki?LazinessImpatienceHubris //Ed
Re: [CODE4LIB] Long way to be a good coder in library
On Wed, Jul 22, 2009 at 9:46 AM, Ross Singerrossfsin...@gmail.com wrote: On Wed, Jul 22, 2009 at 8:54 AM, Jon Gormanjonathan.gor...@gmail.com wrote: As far as languages, I'd probably lean towards ruby or python for starters or maybe Java. Then move into php after you have a grasp of good programming practice. You'll also figure out more what you like to work on. Given the plaintive tone of the original post, I disagree with this advice. Development is almost solely based on confidence and experience (with the latter affecting the former and vice-versa). Good code is secondary. I would almost certainly say start out with a procedural scripting language (or at least a procedural approach) that is more common and Googleable (PHP immediately comes to mind). [snipped some more good points for brevity ;) ] Good point. One of my main thoughts was that ruby and python are both hot languages right now and there might be a lot of tutorials and tolerance out there now for the hello world type of approaches. I also considered for suggesting perl, but was afraid of being stoned ;). PHP is popular and a pretty common entry language and it does have a nice feedback loop as you pointed out. One concern would be that to get a handle on the web app related stuff you'll need a web server + php. That's been getting easier and easier to set up though. Jon ps As long as we're throwing out books, I like the first few chapters of Fowler's Refactoring. It can give a good feeling how Object Orientated programming lends itself towards restructuring.
Re: [CODE4LIB] Long way to be a good coder in library
On Wed, 22 Jul 2009, Jacob wrote: On Wed, Jul 22, 2009 at 4:46 PM, Ross Singerrossfsin...@gmail.com wrote: On Wed, Jul 22, 2009 at 8:54 AM, Jon Gormanjonathan.gor...@gmail.com wrote: As far as languages, I'd probably lean towards ruby or python for starters or maybe Java. ?Then move into php after you have a grasp of good programming practice. ?You'll also figure out more what you like to work on. [trimmed] I would almost certainly say start out with a procedural scripting language (or at least a procedural approach) that is more common and Googleable (PHP immediately comes to mind). ?The nice thing about something like PHP, in my mind, is that it's incredibly easy to see immediate results without having any real idea of what's going on (that being said, I have _no_ idea what Wayne's background might be -- perhaps this advice is too novice). ?As many others have replied, it's so much easier to learn by solving an actual problem (rather than following the 'pet store' example in your tutorial) and, in my mind, PHP is the easiest way get off the ground. ?Successes breed confidence to take on bigger projects, etc. Fully agree with that. Programming has to be learned incrementally, by getting your hands dirty a little then studying the necessary theory and repeating the cycle to tackle bigger problems. If I didn't hate the language so much I'd vote for PHP as well:) But surely a scripting language with a prominent Web presence, to start with. Preferably one that is clean, minimalist and well thought through like Smalltalk :) I'll agree that all of us have to go through the writing bad code before we really understand what's going on. (I cringe when looking at programs I wrote 3 years ago, much less those I wrote 15+ years ago) ... but on the language front, I think it's pointless for any of us to recommend a language without understanding the environment. If there's someone other programmer in your group, learning a language that they know might not give the group as a whole as many tools to complete tasks, but odds are, you're going to have to be maintaining each other's code, and you'll have someone to act as a mentor and ask questions of. If you're on your own, then I'd probably look at what packages you might have to maintain, and what they're written in. After that, I'd look at what type of programming you're doing -- if you're doing mostly systems work without GUIs, I'd go for perl or python, not PHP. If you have to make stand-alone apps (non-web-based), possibly Java. All languages are just tools -- there are some things that each one does well, and there are tasks for a given language that are just horrible to implement. I'd also look for local support groups for whatever language(s) you choose. Search for (language) user groups and you'll find lists for C varients, PHP, Perl, ColdFusion, Java, etc. -Joe
Re: [CODE4LIB] Long way to be a good coder in library
I do think that what language you choose to learn in will effect what you learn though. As someone else mentioned, which was a good point, being exposed to good code is the best thing to help you learn to write it. And on that basis, PHP is maybe not a good choice, and Perl can be... dangerous. Ruby or Python would be great on this front, but maybe not so great for your particular environment. Java... maybe. But yeah, the most important thing is picking something that will work for the context you are in. But within that... especially for a beginner, I think it's easy to pick up bad habits from working with bad code. Jonathan Joe Hourcle wrote: On Wed, 22 Jul 2009, Jacob wrote: On Wed, Jul 22, 2009 at 4:46 PM, Ross Singerrossfsin...@gmail.com wrote: On Wed, Jul 22, 2009 at 8:54 AM, Jon Gormanjonathan.gor...@gmail.com wrote: As far as languages, I'd probably lean towards ruby or python for starters or maybe Java. Then move into php after you have a grasp of good programming practice. You'll also figure out more what you like to work on. [trimmed] I would almost certainly say start out with a procedural scripting language (or at least a procedural approach) that is more common and Googleable (PHP immediately comes to mind). The nice thing about something like PHP, in my mind, is that it's incredibly easy to see immediate results without having any real idea of what's going on (that being said, I have _no_ idea what Wayne's background might be -- perhaps this advice is too novice). As many others have replied, it's so much easier to learn by solving an actual problem (rather than following the 'pet store' example in your tutorial) and, in my mind, PHP is the easiest way get off the ground. Successes breed confidence to take on bigger projects, etc. Fully agree with that. Programming has to be learned incrementally, by getting your hands dirty a little then studying the necessary theory and repeating the cycle to tackle bigger problems. If I didn't hate the language so much I'd vote for PHP as well:) But surely a scripting language with a prominent Web presence, to start with. Preferably one that is clean, minimalist and well thought through like Smalltalk :) I'll agree that all of us have to go through the writing bad code before we really understand what's going on. (I cringe when looking at programs I wrote 3 years ago, much less those I wrote 15+ years ago) ... but on the language front, I think it's pointless for any of us to recommend a language without understanding the environment. If there's someone other programmer in your group, learning a language that they know might not give the group as a whole as many tools to complete tasks, but odds are, you're going to have to be maintaining each other's code, and you'll have someone to act as a mentor and ask questions of. If you're on your own, then I'd probably look at what packages you might have to maintain, and what they're written in. After that, I'd look at what type of programming you're doing -- if you're doing mostly systems work without GUIs, I'd go for perl or python, not PHP. If you have to make stand-alone apps (non-web-based), possibly Java. All languages are just tools -- there are some things that each one does well, and there are tasks for a given language that are just horrible to implement. I'd also look for local support groups for whatever language(s) you choose. Search for (language) user groups and you'll find lists for C varients, PHP, Perl, ColdFusion, Java, etc. -Joe
Re: [CODE4LIB] Long way to be a good coder in library
On Wed, 22 Jul 2009, Jon Gorman wrote: [trimmed] Good point. One of my main thoughts was that ruby and python are both hot languages right now and there might be a lot of tutorials and tolerance out there now for the hello world type of approaches. I also considered for suggesting perl, but was afraid of being stoned ;). PHP is popular and a pretty common entry language and it does have a nice feedback loop as you pointed out. One concern would be that to get a handle on the web app related stuff you'll need a web server + php. That's been getting easier and easier to set up though. XAMPP or any of the '*AMP' bundles make giving you a platform for PHP / Perl (or Python) web development completely trivial: http://www.apachefriends.org/en/xampp.html http://en.wikipedia.org/wiki/List_of_AMP_packages -Joe
Re: [CODE4LIB] Long way to be a good coder in library
It's about time to make this thread a wiki post. --Joe
Re: [CODE4LIB] Long way to be a good coder in library
Most of the responses I've seen have focused on the raw technology. For a different perspective, I'm going to assume that you know how to program, and do it well, and that you are looking for advise with regards to working in a library. Here's my take: 1. Learn about your organization. Figure out what makes it tick. Every library is unique, and libraries are a unique type of organization. Make an effort to understand the values and theory of librarianship. Librarians love to talk about this, so don't be afraid to ask. 2. Don't forget to look at trends outside of Libraryland. A lot of professional library discussion takes place in an echo chamber, and bad ideas often get repeated and gain credibility as a result. Librarians usually overstate the uniqueness of their organizations and professions. When the question, What are other libraries doing? arises in addressing a technical problem, don't be afraid to generalize the question to other types of organizations. Too often, the answer to the question, What are other libraries doing? is Failing. Emulate for the sake of success, not conformity. 3. Do your best to control your situation. Most likely, you will be managed by committee. Most likely, you will not have a competent project manager. Learn to gather your own requirements, develop your own project plans, set reasonable expectations with your users, set and meet obtainable deadlines, and stop scope creep dead in its tracks. Once you've mastered that, tell us how you did it. Most of us work under very difficult organizational pressures. 4. Be suspicious of extraordinary claims by library vendors. More often than not they will cluck defiance. 5. Follow standards to the best of your ability. 6. Innovate. Be creative. Find new solutions to old problems. Remember why you became a programmer. Expect resistance. Ignore bad advice. Best of luck in your endeavors. - David --- David Cloutman dclout...@co.marin.ca.us Electronic Services Librarian Marin County Free Library -Original Message- From: Code for Libraries [mailto:code4...@listserv.nd.edu] On Behalf Of Wayne Lam Sent: Tuesday, July 21, 2009 8:15 PM To: CODE4LIB@LISTSERV.ND.EDU Subject: [CODE4LIB] Long way to be a good coder in library Hi all, I am new in here and i am currently worked in the library too. I am always confused that when i read the post in here, there are always something i don't understand and there are so much to learn. So, the question is, hows everybody learns to be a good coder for libraries, what s the secret and what kind of technology are most important to learn? thanks Wayne Email Disclaimer: http://www.co.marin.ca.us/nav/misc/EmailDisclaimer.cfm
Re: [CODE4LIB] Long way to be a good coder in library
Thank you so much for all the reply. Maybe i should say something about my background first. I was a business (information system) (a half computer, half business degree) student but i work in IT industry for more than 5 years (mainly web development), I learnt some basic language by that time (outdated already) and i did pick up some new technology thanks to google. I know some of the programming/scripting language mostly web-based (PHP, ASP, Java, javascript ,etc) but not in a very high level. (Like i can read and write some code from opensource project to fit my needs, create some little programme using OO approach). The reason of my question is i feel that coding in library is very complicated and advanced. For example, there are both traditional technology like MARC and Z39.5 and developing technology like Semantic web, RDF. And there are traditional properitary ILS, opensource ILS and some very nice discovery tools like VuFind and also some Institute Repository software. All these very board and wide variety of software, technology in it make me don't know where to start and learn which one first over the other one. So i start browsing on the internet about what OAI, Solr and all related thing without a direction, reading books on what Semantic web is and subscribe some mailing list of interesting projects. But for a newbie like me, it was a bit like information overflow for me. There are so many technology that are new to me and i am afraid that by the time i manage to know it, that became an old-fashion already. I am wondering if there are some way that i can learn it in a structural way. Thanks all Wayne 2009/7/22 Joe Atzberger ohioc...@gmail.com It's about time to make this thread a wiki post. --Joe
Re: [CODE4LIB] Long way to be a good coder in library
On Wed, Jul 22, 2009 at 1:18 PM, Wayne Lamwing...@gmail.com wrote: So i start browsing on the internet about what OAI, Solr and all related thing without a direction, reading books on what Semantic web is and subscribe some mailing list of interesting projects. But for a newbie like me, it was a bit like information overflow for me. There are so many technology that are new to me and i am afraid that by the time i manage to know it, that became an old-fashion already. I am wondering if there are some way that i can learn it in a structural way. The first step is admitting that you are unable to understand *all* the crazy library technology lingo, and that library-technology environment as a whole has become unmanageable. :-) Seriously though, I think what David said earlier can't be over-emphasized: 2. Don't forget to look at trends outside of Libraryland. A lot of professional library discussion takes place in an echo chamber, and bad ideas often get repeated and gain credibility as a result. Librarians usually overstate the uniqueness of their organizations and professions. When the question, What are other libraries doing? arises in addressing a technical problem, don't be afraid to generalize the question to other types of organizations. Too often, the answer to the question, What are other libraries doing? is Failing. Emulate for the sake of success, not conformity. //Ed
Re: [CODE4LIB] Long way to be a good coder in library
Just a quick thank you to everyone who contributed to this discussion. I've been a lurker for I think a couple years and have learned tons just being on the list and trying to absorb what I can without having any real coding experience (anyone ever hear of Dr. Scheme? That's the language I used in Comp Sci 101, but I'll agree that what little theory I had there was INVALUABLE). But the thought had somehow never entered into my head to just ask for a good starting point. So extra thanks to Wayne for getting the ball rolling, and I'll second the call for a wiki thread... And, for what it's worth, I'm working on wrapping up an environmental scan of discovery interfaces for NLM (part of my fellowship year) and an awful lot of stuff I saw on this list (and NGC4LIB) informed it. You can see the slides on Slideshare here: http://www.slideshare.net/ultimatelibrarian/discovery-interfaces-the-next-generation (The one specific example I can think of right now being Jonathon's FindIt, which is linked to on slide 15...oh, and the Brooklyn Museum API...) So, thanks! And maybe one day I'll be able to contribute. Sincerely, Amy Donahue, MLIS Associate Fellow National Library of Medicine Bldg 38 Rm 2N-05A MSC 3818 (301) 594-7527 dona...@mail.nlm.nih.gov -Original Message- From: Code for Libraries [mailto:code4...@listserv.nd.edu] On Behalf Of Ed Summers Sent: Wednesday, July 22, 2009 2:50 PM To: CODE4LIB@LISTSERV.ND.EDU Subject: Re: [CODE4LIB] Long way to be a good coder in library On Wed, Jul 22, 2009 at 1:18 PM, Wayne Lamwing...@gmail.com wrote: So i start browsing on the internet about what OAI, Solr and all related thing without a direction, reading books on what Semantic web is and subscribe some mailing list of interesting projects. But for a newbie like me, it was a bit like information overflow for me. There are so many technology that are new to me and i am afraid that by the time i manage to know it, that became an old-fashion already. I am wondering if there are some way that i can learn it in a structural way. The first step is admitting that you are unable to understand *all* the crazy library technology lingo, and that library-technology environment as a whole has become unmanageable. :-) Seriously though, I think what David said earlier can't be over-emphasized: 2. Don't forget to look at trends outside of Libraryland. A lot of professional library discussion takes place in an echo chamber, and bad ideas often get repeated and gain credibility as a result. Librarians usually overstate the uniqueness of their organizations and professions. When the question, What are other libraries doing? arises in addressing a technical problem, don't be afraid to generalize the question to other types of organizations. Too often, the answer to the question, What are other libraries doing? is Failing. Emulate for the sake of success, not conformity. //Ed