Subject: [CODE4LIB] Book recommendation

From: Robert Fox <[email-masked]>
Date: Wed, 9 Sep 2009 12:12:13 -0400

Since this list has librarians, hard core programmers and hybrid librarian programmers on it, this is probably a good place to ask this sort of question.

I'm looking for some book recommendations. I've read a lot of technical books on how to work with specific kinds of technology, read a lot of online technical "how tos" and that has been good as far as it goes. But, technology changes too fast to be wed to one particular programming language, database technology, metadata standard, etc. I'm interested in finding books that speak to the issues of programming methodology, design principles, lessons learned, etc. that transcend any particular programming technology. Are there good books that distill the wisdom and experience of veteran developers and /or communicate best practices for things like design patterns, overall software architecture, learning from mistakes, the developer mindset and such things?

Could you recommend perhaps the top three or four books you've read in these areas?

Rob Fox
Hesburgh Libraries
University of Notre Dame

---

From: Bess Sadler <[email-masked]>
Date: Wed, 9 Sep 2009 12:21:33 -0400

Hi, Robert.

I highly recommend both "The Pragmatic Programmer: From Journeyman to  
Master" (http://www.pragprog.com/titles/tpp/the-pragmatic-programmer)  
and "Practices of an Agile Developer" (http://www.pragprog.com/titles/pad/practices-of-an-agile-developer 
). I found both of these books to be the best distilled wisdom about  
best practices, problem solving, good habits, and developer mindset  
I've ever encountered.

Bess

Elizabeth (Bess) Sadler
Chief Architect for the Online Library Environment
Box 400129
Alderman Library
University of Virginia
Charlottesville, VA 22904

[email-masked]
(434) 243-2305

On 9-Sep-09, at 12:12 PM, Robert Fox wrote:

> Since this list has librarians, hard core programmers and hybrid  
> librarian programmers on it, this is probably a good place to ask  
> this sort of question.
>
> I'm looking for some book recommendations. I've read a lot of  
> technical books on how to work with specific kinds of technology,  
> read a lot of online technical "how tos" and that has been good as  
> far as it goes. But, technology changes too fast to be wed to one  
> particular programming language, database technology, metadata  
> standard, etc. I'm interested in finding books that speak to the  
> issues of programming methodology, design principles, lessons  
> learned, etc. that transcend any particular programming technology.  
> Are there good books that distill the wisdom and experience of  
> veteran developers and /or communicate best practices for things  
> like design patterns, overall software architecture, learning from  
> mistakes, the developer mindset and such things?
>

---

From: Sharon Foster <[email-masked]>
Date: Wed, 9 Sep 2009 12:29:52 -0400

From my software engineering days, I like Steve McConnell's "Code
Complete" and "Software Project Survival Guide;" "The Mythical
Man-Month," by Fred P. Brooks; "Joel On Software" by Joel Spolsky (who
also has a blog); and "The Elements of Programming Style," by Kernigan
and Plauger. K&R is directed at the C programming language, but there
are enough similarities in syntax with PHP, Java, and a lot of other
web developer languages that I think it's still relevant.

Sharon M. Foster, JD, MLS
Technology Librarian
http://firstgentrekkie.blogspot.com/

---

From: Joe Morgan <[email-masked]>
Date: Wed, 9 Sep 2009 11:36:49 -0500

I haven't read it yet, but Coders at Work is getting a lot of good
press. Here's a slashdot review
(http://books.slashdot.org/story/09/09/02/1331233/Coders-At-Work).
They interview a bunch of 'famous' coders who talk about their craft.

joe

-- 
"Live to the point of tears" Camus
http://neolib.wordpress.com
Twitter: joesmorgan

---

From: Jonathan Rochkind <[email-masked]>
Date: Wed, 9 Sep 2009 12:57:32 -0400

I am a big fan of the original Design Patterns book, myself.

http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612

But just reading the book alone won't do as much as reading the book AND 
working with code that is written using the lessons of the book.

The best way to learn good code design and architecture is to work with 
code someone already wrote (open source, libraries, frameworks, etc) 
that uses good design and architecture.

Jonathan

---

From: Jon Gorman <[email-masked]>
Date: Wed, 9 Sep 2009 12:27:12 -0500

I'd second pretty much every suggestion I've seen so far and add one
"Refactoring" by Fowler.   It's only really useful if you've had some
design experience, but

Some of the others that I really highly recommend would be "The
Pragmatic Programmer: From Journeyman to Master".  I'm of mixed
feelings on Code Complete.  A lot of the material I've heard better
elsewhere, but I can't think of anywhere else so much material is
brought together.  I'd say read it but then chase down some of the
citations.

Some good reads but not necessarily great ones that come to mind also are:

"Release It!: Design and Deploy Production-Ready Software",  A bit
long for pretty much a common-sense point, which is log stuff, keep
heartbeats going, and the like.

"Agile modeling: effective practices for eXtreme programming ..." been
a while since I've read this one, but it seemed a good intro.  One of
those books if I had too much money I'd probably purchase.

"Dreaming in Code".  An amusing account of software development from a
reporter's perspective of some aspects of a netscape calendar
project....(not quite right, but that's as close as my hazy memory
will get).

I've heard good things about "Beautiful Code" but haven't read it yet.

If you wanted to step away a little from actual software, I'd say
Donald Norman's various books are really good for ideas about
usability.  Lighter fare also includes Stephen Levy's books, some of
Rheingold's stuff although that is a bit outdated, "What the Doormouse
said.",  "IWoz", "Where the Wizards Stay Up Late".  I'm sure I'm
missing some of the light and quick reading of computer culture, but
that's plenty to get started.

At some point today I'll have to figure out what books others have
suggested that I still need to read (or request one of the various
libraries I'm associate with purchase).  Thanks for bringing up this
thread ;).
Jon

---

From: Sharon Foster <[email-masked]>
Date: Wed, 9 Sep 2009 13:22:41 -0400

"The best way to learn good code design and architecture is to work
with code someone already wrote (open source, libraries, frameworks,
etc) that uses good design and architecture."

Or having to debug code that someone else wrote that *wasn't* written
well. It's one thing to learn the good practices, but it's quite
another to understand WHY good code is good and bad code is bad.

On Wed, Sep 9, 2009 at 12:57 PM, Jonathan Rochkind<[email-masked]> wrote:
> The best way to learn good code design and architecture is to work with code
> someone already wrote (open source, libraries, frameworks, etc) that uses
> good design and architecture.
>
> Jonathan
>
> Robert Fox wrote:
>>
>> Since this list has librarians, hard core programmers and hybrid librarian
>> programmers on it, this is probably a good place to ask this sort of
>> question.
>>
>> I'm looking for some book recommendations. I've read a lot of technical
>> books on how to work with specific kinds of technology, read a lot of online
>> technical "how tos" and that has been good as far as it goes. But,
>> technology changes too fast to be wed to one particular programming
>> language, database technology, metadata standard, etc. I'm interested in
>> finding books that speak to the issues of programming methodology, design
>> principles, lessons learned, etc. that transcend any particular programming
>> technology. Are there good books that distill the wisdom and experience of
>> veteran developers and /or communicate best practices for things like design
>> patterns, overall software architecture, learning from mistakes, the
>> developer mindset and such things?
>>

---

From: Jon Gorman <[email-masked]>
Date: Wed, 9 Sep 2009 12:30:15 -0500

> "Refactoring" by Fowler.   It's only really useful if you've had some

Odd, not sure what happened there.  But what I meant to say, "but I
think it can be useful for anyone who's just starting out learning
object-orientated design or design patterns.".

Jon

---

From: Keith Jenkins <[email-masked]>
Date: Wed, 9 Sep 2009 13:35:32 -0400

I haven't read any of them yet, but O'Reilly has a new series of books
that might be of interest. They all have titles like "Beautiful
Teams", "Beautiful Architecture", "Beautiful Data", "Beautiful
Testing", etc.

Maybe someone else has read one and can comment on their usefulness?

Keith

---

From: Alan Harnum <[email-masked]>
Date: Wed, 9 Sep 2009 13:41:05 -0400

I learned quite a few useful abstracts from Eric Raymond's "The Art of UNIX Programming", which is also available as a free ebook at http://www.faqs.org/docs/artu/ - Much is UNIX-centric, but some good general philosophy in there about coding practice and mindset.

I'm currently reading and enjoying Shore and Warden's "The Art of Agile Development" - http://oreilly.com/catalog/9780596527679/ - most useful if you're interested in Agile approach and specifically in Extreme Programming methods.

Alan Harnum
Web Librarian
Toronto Public Library Web Team
[email-masked]

>>> Robert Fox <[email-masked]> 09/09/2009 12:12 pm >>>

Rob Fox
Hesburgh Libraries
University of Notre Dame

---

From: Kyle Banerjee <[email-masked]>
Date: Wed, 9 Sep 2009 11:21:33 -0700

> another to understand WHY good code is good and bad code is bad.

Especially when you authored the garbage in question. The best way
appreciate and remember good methods is to totally screw yourself
over. Reading well written books is a good idea, but the lessons just
don't stick quite as well....

kyle

---

From: stuart yeates <[email-masked]>
Date: Thu, 10 Sep 2009 07:58:29 +1200

I can't speak highly enough about "The Mythical Man-Month," by Fred P. 
Brooks (1975).

Let's just say that when they issued the 20th anniversary edition, they 
didn't need to update the examples in the text.

cheers
stuart

-- 
Stuart Yeates
http://www.nzetc.org/       New Zealand Electronic Text Centre
http://researcharchive.vuw.ac.nz/     Institutional Repository

---

From: Jon Gorman <[email-masked]>
Date: Wed, 9 Sep 2009 15:15:28 -0500

For those who enjoyed "The Mythical Man-Month" I'd also recommend
Peopleware (not the software, the book ;) ).

Jon

On Wed, Sep 9, 2009 at 2:58 PM, stuart yeates<[email-masked]> wrote:
>>> librarian programmers on it, this is probably a good place to ask this sort
>>> of question.
>>>

---

From: Nick Ruest <[email-masked]>
Date: Wed, 9 Sep 2009 18:11:34 -0400

If you are into the history of how it all came about, "The Dream  
Machine: J.C.R. Licklider and the revolution that made computing  
personal" is a good read.  It is a little dense at times, but well  
worth the read.

ISBN: 014200135X

-nruest

On Sep 9, 2009, at 4:15 PM, Jon Gorman wrote:

>>>> this sort
>>>> technical
>>>> like design
>>>> Could you recommend perhaps the top three or four books you've  
>>>> read in
>>>> these areas?
>>>>
>>>> Rob Fox
>>>> Hesburgh Libraries
>>>> University of Notre Dame
>>>>
>>>
>>
>>
>> --
>> Stuart Yeates

------------------------------------------------------------
Nick Ruest
Digital Strategies Librarian

McMaster University
Mills Memorial Library
1280 Main Street West
Hamilton, ON L8S 4L6
Phone: 905.525.9140 ext. 21276
Email: [email-masked]
http://library.mcmaster.ca/contact/ruest-nicholas
http://nruest.blog.lib.mcmaster.ca/
------------------------------------------------------------

"Revolution is not something fixed in ideology, nor is it something  
fashioned to a particular decade.  It is a personal process embedded  
in the human spirit." - Abbie Hoffman

---

From: William C Kurt <[email-masked]>
Date: Fri, 11 Sep 2009 11:58:46 -0700

I know I'm a couple of days late, but no mention of SICP? http://mitpress.mit.edu/sicp/
I think if I only had one programming related book I was allowed to own it would be this one. 
It's scheme of course, but it's definitely not tied to a specific technology or language, and if you don't already know a lisp it's definitely worth learning one on the way. It is one of those books of seemingly infinite depth where you can always pick it up and have a incredible amount to learn from it.

-----Original Message-----
From: Code for Libraries [mailto:[email-masked]] On Behalf Of Nick Ruest
Sent: Wednesday, September 09, 2009 3:12 PM
To: [email-masked]
Subject: Re: [CODE4LIB] Book recommendation

ISBN: 014200135X

-nruest

McMaster University
Mills Memorial Library
1280 Main Street West
Hamilton, ON L8S 4L6