[olug] Reccomended Reads

Sam Flint harmonicnm7h at gmail.com
Mon Aug 6 14:42:24 UTC 2012


The pragmatic programmer is great, i've read it, and enjoyed it, and
when it comes to other books from the series, i like Pragmatic
Thinking and Learning.

Sam

On Mon, Aug 6, 2012 at 9:12 AM, Abraham <muteki.abraham at gmail.com> wrote:
> I'm currently reading "Mastering EJB by Ed Roman" and "The Pragmatic
> Programmer" in the "Programming/Development" category.
>
> -----Original Message-----
> From: olug-bounces at olug.org [mailto:olug-bounces at olug.org] On Behalf Of Sam
> Flint
> Sent: Sunday, August 05, 2012 10:28 PM
> To: Omaha Linux User Group
> Subject: Re: [olug] Reccomended Reads
>
> I have the K&R got it for $.50 at a a goodwill, they still sell it, and it's
> $70 at Barnes and noble.  and thanks, i was just wondering what you all
> recommended
>
> On Sun, Aug 5, 2012 at 6:08 PM, Christopher Cashell <topher-olug at zyp.org>
> wrote:
>> On Fri, Jul 13, 2012 at 10:52 PM, Sam Flint <harmonicnm7h at gmail.com>
> wrote:
>>> Does anyone have any favorited in relation to linux/software
>>> development? Adam's book doesn't count, sorry.
>>
>> *Note: Sorry for the delay in sending this.  It grew a little beyond
>> my initial intention, and took a while before I could get around to
>> finishing
>> it.*
>>
>> I read, well, a **lot**.  Reviewing my technical library, here's the
>> ones that I think are the cream of the crop.  This might be a bit of a
>> firehose suggestion list, but I like to be thorough.
>>
>> I'm going to break them into handful of different categories:
>> Linux/Unix, Networking, DevOps, Programming/Development, etc.  I'm
>> also listing them in roughly the order I would recommend reading them
>> for each group, assuming you were going to read them all through (in
>> order).  Obviously, you can pick and choose which ones appeal to you.
>> Those that really should be read in a certain sequence, I'll try to
>> note.  I'll include a short summary or explanation of why each book is
> worth reading, too.
>>
>> If there's any questions on any of the books here, let me know.  I'd
>> be happy to go into greater depth or discuss further details on them.
>>
>> System Administration (focus on Linux/Unix):
>>
>> *Linux in a Nutshell; by Ellen Siever, Stephen Figgins, Robert Love
>> and Arnold Robbins*
>>
>> This book will be a bit of a chore to get through, as the majority of
>> the book is a list of commands, common usage, and a little information
>> about their most common options.  However, it's worth reading.
>> Working through the whole thing will inform you about the hundreds of
>> Unix commands that have been around for decades.  That knowledge is
>> gold.  When you're at a command line, trying to get something done,
>> half the battle is knowing that a command exists that will do what you
>> need, and the other half is remembering what it's called.  The man pages
> will take care of the rest.
>>  Note: older editions of this book will give you 90% of the use at
>> cheaper price, and "Unix in a Nutshell" will get you about 75% of the
> value, too.
>>
>> *Essential System Administration; by Aeleen Frisch*
>>
>> This book has been a classic for years.  Well written, great
>> cross-platform coverage, and a ton of great information.  The one
>> downside is that the latest edition is now a decade old, so some of
>> the information is a little dated.  Luckily, the "unix design" has
>> proved itself remarkably stable, so this is still a great book.
>> *
>> *
>> *UNIX and Linux System Administration Handbook; by Evi Nemeth, Garth
>> Snyder, Trent R. Hein, Ben Whaley*
>>
>> This is one of the "must have" books on Unix/Linux System Administration.
>>  It is encyclopedic in its coverage, and very well written.  It is
>> clear enough to read through and learn from, while also being thorough
>> enough to make a great reference.  It does a great job with
>> cross-platform (Unix) coverage, too.
>>
>> *Unix System Management Primer Plus; by Jeffrey S. Horwitz*
>>
>> This book is a criminally unknown gem.  First thing to note, about 75%
>> of the book is not Unix (or Linux) specific, it's about general system
>> administration.  Secondly, this book is a little higher level than
>> most in this section.  It spends a little bit of time on command line
>> and low level details, but the majority of the book is bigger picture
>> stuff.  This shouldn't be your first System Admin/management book, but
>> anyone who's responsible for more than a few dozen machines, or for
>> anyone who wants to work up from Junior Engineer to Senior Engineer,
>> this book should be a Must Read.
>>
>> *The Practice of System and Network Administration; by Tomas A.
>> Lioncelli, * *Christina J. Hogan, and Strata R. Chalup*
>>
>> This book follows in the same style as Horowitz's *Unix System
>> Management Primer Plus*.  It covers system administration at a level
>> above the command line.  Things like planning, policies and
>> procedures, upgrades, change management, etc.  If your goal is to be a
>> Senior System Administrator/Engineer, or a manager in a Systems
>> department, this is a book you need to read.
>>
>> *Windows Server 2008 Administrators Pocket Consultant; by William R.
>> Staneck
>> *
>> *
>> *
>> Like it or not, we frequently have to deal with Windows.  Stanek's
>> *Pocket
>> Consultant* books are incredibly handy for those times.  They take
>> most of the common admin tasks you might need to deal with and
>> condense them down to nice practical chunks. Excellent for a practical
> reference.
>>
>> DevOps (SysAdmin/Programming crossover):
>>
>> *Minimal Perl for Unix/Linux People; by Tim Maher*
>>
>> This book is an interesting one.  First of all, it's written in a
>> friendly, "fun", easy to read style.  It approaches Perl from the
>> perspective of a system administrator, and introduces Perl by showing
>> how it can replace other command line tools and simpler scripting systems
> (awk, sed, etc).
>>  It's a different way of presenting a programming language, but for
>> someone with a decent Unix/Linux background, it'll ease you into Perl
>> in a very comfortable way.
>>
>> *Automating System Administration with Perl: Tools to Make You More
>> Efficient; by David N. Blank-Edelman*
>>
>> This book assumes a basic familiarity with Perl.  It then takes you on
>> a tour of possibilities in automation.  This is an area that a lot of
>> people overlook, but is a hallmark of great system administrators.
>> Every time you repeat a task, you should ask yourself a few questions:
>> *Am I going to have to do this again? How frequently? How long does it
>> take each time? How long would it take to automate it?* The answer to
>> these will help you decide whether it's worth automating the task.  As
>> you get into larger environments, your ability to automate will be a
>> huge factor in your ability to scale.  This book will show you
>> examples in numerous areas of system administration and how to automate
> them.
>>
>> *sed & awk; by Dale Dougherty and Arnold Robbins*
>>
>> For many system administrators, sed is that tool you use to do simple
>> text substitutions (does it do anything else?) in a series of piped
>> commands, and awk is that weird old scripting tool that grumpy old
>> beared unix guys talk about.  In actuality, these are two of the most
>> powerful tools in your Unix/Linux toolbox.  They have an incredible
>> amount of flexibility, and you'll use them in one-liners and in shell
>> scripts.  For simple text processing (ad hoc log reports, etc), there
>> is no tool better than awk.  If I'm writing a script that I know will
>> be more than 100 lines, I'll usually grab Perl.  But for a first pass,
>> awk is hard to beat.  I would bet that
>> 3/4 of the Perl programs I've written that process logs are rewrites
>> of earlier awk scripts.
>>
>> *Mastering Regular Expressions; by Jeffrey E. F. Friedl*
>>
>> If you're working at a command line or working with any text
>> processing (including log processing), Regular Expressions will be
>> very important for you.  This book is the bible for Regular
>> Expressions.  Now, most people won't read this book in it's entirety,
>> and that's ok.  Half of this book is on generally using regular
>> expressions, and half of it goes into the guts of regular expressions,
>> how they work, how they're implemented, and how to do things with regular
> expressions that can only be described as insane.
>>  Great reference, though.
>>
>> Programming/Development:
>>
>> *How to Design Programs, 2nd Ed.; by Mathhias Felleisen, Robert Bruce
>> Findler, Matthew Flatt, and Shirriam Krishnamurthi*
>>
>> This is a great book, although not quite what a lot of people expect.
>> This book is an introduction to computer science.  It really is about
>> designing programs, and this is not a *How to Program in Language Foo*
> type of book.
>>  Note, the style of writing is a little different for this one (the
>> authors are MIT professors). Available online, free:
>> http://www.ccs.neu.edu/home/matthias/HtDP2e/
>>
>> *The C Programming Langauge, 2nd Ed.; by Brian W. Kernighan and Dennis M.
>> Ritchie *
>>
>> This book is *the* book you need if you're going to learn or use C.
>> The first time I saw it, I almost laughed at it.  It's a slim volume,
>> roughly
>> 200 pages, and I couldn't believe they wanted $40 for such a meager
> volume.
>>  Luckily, I got past my initial reaction and bought the book.  I soon
>> realized its value far outreaches the price.  This is not only the
>> best book on C programming, it's one of the better books written on
> programming.
>> It is a model of clear and concise writing.
>>
>> *The Practice of Programming; by Brian W. Kernighan, Rob Pike*
>>
>> This book is kind of like taking years of experience and condensing it
>> into a slim, easy to read book.  This language agnostic book (examples
>> cross nearly half a dozen languages) isn't about algorithms, or
>> language features.  It's like having an experienced software
>> engineering mentor standing over your shoulder telling you some of the
>> best lessons he's learned in his years on the job.
>>
>> *Unix Programming Environment; Brian W. Kernighan, Rob Pike*
>>
>> This book was written in 1984.  As it nears its 30th birthday, it's
>> obviously an outdated relic that serves no purpose outside of a quaint
>> picture of ancient history.  Except, it's still relevant.  Yes, there
>> are some details and specifics that are a little dated, but the book
>> is still very useful, and most of the information it is still fully
> applies today.
>>  This book is about programming with C in the Unix world, and it
>> illustrates the design philosophy and idea behind both Unix and C.
>>
>> *The Art of Unix Programming; by Eric S. Raymond*
>>
>> In many ways, this book is an expanded and updated take on *The Unix
>> Programming Environment*.  It covers more ground, and it isn't as
>> focused, but ESR does a great job of distilling the "unix philosophy",
>> expounding the benefits behind the philosophy, and explains how to
>> develop software in the unix style.  ESR's style does come off as a
>> touch biased towards Unix/Linux being the greatest thing in the
>> history of computing, but it's hard to fault the information.  The
>> writing style is fun, and he includes plenty of anecdotes/case studies and
> observations on "unix culture".
>>  Available online, free: http://catb.org/esr/writings/taoup/html/
>>
>> *Modern Perl; by chromatic*
>>
>> This book provides a nice introduction to "modern" Perl programming.
>> The Perl language has evolved significantly over the years, and in the
>> last 3-4 years, there's been a renewed interest in Perl.  Part of that
>> interest comes from updating the best practice and recommendations for
>> Perl to take advantage of modern OO techniques, improving code
>> readability and project scalability.  Today's Perl is not the Perl of
>> 20 years ago, and this book shows you how you *should* be writing Perl.
> Available online, free:
>> http://modernperlbooks.com/books/modern_perl/chapter_00.html
>>
>> *Effective Perl Programming, Second Edition: How to write Better, more
>> Idiomatic Perl; by Joseph N. Hall, Joshua A. McAdams, brian d foy*
>>
>> This book won't teach you Perl.  But, it will make you a better Perl
>> Programmer.  This book is like a compendium of Perl experience,
>> idioms, best practices, and information.  It shouldn't be the first
>> book you read on Perl, and possibly not the second, but if you are
>> writing Perl programs that are larger than 100 lines of code, you
>> should absolutely read this book.
>>
>> *Advanced Programming in the UNIX Environment; W. Richard Stevens,
>> Stephen A. Rago*
>>
>> This is a classic programming reference book.  If you're writing
>> serious C and you're doing it in Unix/Linux, this book is for you.  It
>> has extensive and in-depth coverage of the Unix API's covering IO
>> (file, network, terminal, etc), process handling, threads and
>> threading, IPC, etc.  If you need to talk directly to the OS, you need
> this book.
>>
>> *Advanced Unix Programming; Marc J. Rochkind*
>>
>> This book is similar in style and coverage to *Advanced Programming in
>> the Unix Environment*.  Depending on personal preference, this book
>> could be a reasonable alternative.  This one is a little bit easier
>> read, while Stevens goes a little more in-depth in certain areas.
>>
>> *The Linux Programming Interface: A Linux and Unix System Programming
>> Handbook; by Michael Kerrisk*
>>
>> Another in the same vein of Stevens and Rochnkind, but with a stronger
>> Linux focus.  Kerrisk is best known for maintaining the Linux Kernel
>> and glibc man pages for nearly 10 years.  If you need a more thorough
>> reference, specifically for Linux APIs, this is your book.
>>
>> *Structure and Interpretation of Computer Programs; by Harold Abelson
>> and Gerald Jay Sussman with Julie Sussman*
>>
>> This is kind of the spiritual successor to *How to Design Programs**.*
>> It was used as an introductory Computer Science textbook at MIT for
>> years, and was written by MIT professors.  This is not a book you skim
>> through in a few evenings and then put to practical use.  This book is
>> about thinking, logic, and computer science, not just programming.
>> Available online,
>> free:  http://mitpress.mit.edu/sicp/
>>
>> Networking:
>>
>> *Internet Core Protocols: The Definitive Guide; by Eric Hall*
>> *
>> *
>> This book covers TCP/IP at the protocol level (IP, TCP, UDP, ICMP,
>> etc), along with a some coverage of common application protocols
>> (HTTP, FTP, DNS, etc).  In the modern world of computing, networks are
>> a way of life.  Every machine we touch is going to be on a network, so
>> system administrators and programmers need to have a solid grounding
>> in network basics. Note: This book does assume a basic knowledge of
>> TCP/IP.  If you don't know what TCP/IP stands for, or you've never
>> heard of the OSI model, you shouldn't make this your first networking
> book.
>>
>> *TCP/IP Illustrated, Volume 1: The Protocols; by Kevin R. Fall, W.
>> Richard
>> Stevens*
>>
>> This is the TCP/IP bible.  If you want a truly excellent understanding
>> of TCP/IP at the packet level, this is the book to read.
>>
>> *Network Warrior; by Gary A. Donahue*
>> *
>> *
>> If you find yourself responsible for managing network devices
>> (switches, routers, etc), this will be a great resource to have.  It
>> doesn't go deep on theory, but it is high on practical advice and
> examples.
>>
>> Databases:
>>
>> This section is missing some entries because I have yet to find books
>> that I thought were good enough that I could wholeheartedly recommend
>> them.  If anyone has recommendations, I'd love to hear them.
>>
>> Databases are a bit of a tricky topic.  There are at least 4 distinct
>> subtopics that have to be considered, and most books tend to cover
>> only one, or maybe two, of them.  Additionally, depending on your
>> role, you may not need to have in-depth knowledge of all of them.
>>
>> *[Book on SQL Queries]*
>>
>> I think the best book on writing SQL queries that I've personally read
>> so far is *SQL Queries for Mere Mortals*, by John L. Viescas and Michael
> J.
>> Hernandez.  It was a solid book, but I didn't think it was great.
>>
>> I've heard that *The Langauge of SQL: How to Access Data in Relational
>> Databases*, by Larry Rockoff is a good *introductory* book on writing
>> SQL, but I haven't read it yet.  I expect that you'd need a more
>> advanced book on SQL to complement it, from what I know of it.
>> Something like *Joe Celko's SQL for Smarties: Advanced SQL
>> Programming* by Joe Celko might make a good companion.
>>
>> *Head First SQL*, by Lynn Beighley is another one that's on my list to
>> check out, and might be a good book for introducing SQL.
>>
>> *[Book on Database Design]*
>>
>> There are tons of books on writing SQL queries, but not nearly as many
>> on good database design.  Database design is a topic that frequently
>> gets neglected.  Developers think that if they can write SQL queries,
>> they can design a DB schema.  Some SQL query books will even touch on
>> DB design, and may have a chapter on DB normalization.  DBAs are often
>> stuck spending most of their time managing the RDBMS software and may
>> be lacking the domain knowledge of the application, and not be in a
>> good position to aid in schema design.  Unfortunately, poor DB design
>> will bite you in the ass later.  If you don't understand database
>> normalization, you shouldn't be designing databases.
>>
>> *[Book on Data Modeling]*
>>
>> Data Modeling is a topic that gets ignored even more frequently than
>> Database Design.  Data Modeling is how you go from your data sources
>> to your database schema.  For example, figuring out how to properly
>> transform your product ordering process into a database falls under data
> modeling.
>>
>> *SQL Cookbook, by Anthony Molinaro*
>> *
>> *
>> Like other books in O'Reilly's excellent "Cookbook" series, this book
>> is a specialized reference.  It won't explain SQL, but it might save your
> butt.
>>  The quantity and quality of SQL examples here is great.  If you are
>> working with SQL databases and you know what kind of query you need,
>> but don't know how to write it, there's an excellent chance this book
>> will have a "recipe" that can get you started.
>>
>> *The Art of SQL; by Stephane Faroult, Peter Robson*
>>
>> Like a few others on this list, this book is a bit of an oddball.  It
>> won't teach you SQL.  It won't teach you DB design.  It definitely
>> shouldn't be your first or second book on databases.  It will take you
>> through advanced database concepts and techniques and make you a
>> better DBA.  It will show you new ways of thinking about databases and why
> it's important to do so.
>>  This is one of the absolute best advanced database books I've read.
>>
>> Other:
>>
>> *Time Management for System Administrators; by Tom Limmoncelli*
>>
>> I've got friends that work in other industries who will occasionally
>> comment on how they were bored at work, and had nothing to do that day
>> or even that week.  It's a bit of a foreign concept for me, because I
>> usually have a "to do" list that will keep me busy for the next 7
>> years.  In the field of System Administration, there are always
>> systems that could use cleanup, updating, reworking, etc.  There's
>> always processes that need to be documented and after being
>> documented, are candidates for being automated.  This book can help us
>> take advantage of the time we have and maximize our efficiency.
>>
>> *The Mythical Man-Month; by Frederick Brooks, Jr.*
>>
>> An IT classic.  This is less a technical book, but should be a must
>> read for anyone who works in the IT industry.
>>
>>
>> Hopefully some of the suggestions will be useful.  I know I'm
>> forgetting a few, but I've got half of my IT books at work, and half
>> of them at home (spread across a couple of bookshelves).  If I think
>> of any more, I'll send an update.  Or maybe I'll post the whole list
>> online somewhere, in case anyone else wants suggestions on IT books.
>>
>>> Sam
>>
>> --
>> Christopher
>> _______________________________________________
>> OLUG mailing list
>> OLUG at olug.org
>> https://lists.olug.org/mailman/listinfo/olug
>
>
>
> --
> Sam Flint
> flintfam.org/~swflint
> _______________________________________________
> OLUG mailing list
> OLUG at olug.org
> https://lists.olug.org/mailman/listinfo/olug
>
> _______________________________________________
> OLUG mailing list
> OLUG at olug.org
> https://lists.olug.org/mailman/listinfo/olug



-- 
Sam Flint
flintfam.org/~swflint



More information about the OLUG mailing list