[olug] Reccomended Reads

Abraham muteki.abraham at gmail.com
Mon Aug 6 14:12:20 UTC 2012


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




More information about the OLUG mailing list