Fog Creek Software
Discussion Board




Technical book publishers

O'Reilly seems to be a consensus favorite as far as technical book publishers go. Can anyone recommend any others? Any opinions on Apress, Sams or Wrox?

Anonymous Developer
Monday, June 28, 2004

I don't like O'Reilley myself - the books are too dry and they never flow well. So they got cutesy animals on the cover. Big deal.

Addison-Wessely is the best for high level stuff.

Then I like those hefty SAMS books as references. If I need to learn something, they pack the largest number of facts per pound around without being obtuse. Also, you can start reading on any page at random and find something you didn't know.

Dennis Atkins
Monday, June 28, 2004

I dislike the Sams books.  I started learning from Wrox books and then picked up a few O'Reillys.  I know what you mean about them being dry, but there's a few gems mixed in.  The Learning Java book is particularly good.

O'Reillys are really only useful once you already have a firm foundation in programming.  And even then, like you said, many are dry and tedious.  But not all!

muppet from forums.madebymonkeys.net
Monday, June 28, 2004

O'Reilly and Addison-Wesley are the only consistently top notch publishers. Much of what MS Press and Apress puts out is high quality. The rest are ... distrust until proven otherwise. Wrox was the worst. Sams is pretty much always crap. (No offense to individual authors, who can have unique experiences obviously.)

Brad Wilson (dotnetguy.techieswithcats.com)
Monday, June 28, 2004

OK, I double-checked, actually I only have one Sams book that's some 1600 pages of info. It's a decent book. The others I was thinking of were the Core series from Prentice-Hall which are the same idea of a fat reference. These are not the be-all end all but they make good references that don'h spend time explaining the basics in minute detail but rather explain lots of weird things and assume you already know the basics and can pick the rest up.

Prentice-Hall actually makes a very strong showing on my bookshelf -- half the books good enough to stay on the bookshelf there are from PH, starting with the very fine K&R. I would say that PH is a much better publisher than OReilly.

Dennis Atkins
Monday, June 28, 2004

I started out with programming with Beginning Perl by Simon Cozens (published by Wrox Publishing) and that book was EXCELLENT.

Let's put it this way:  You can't really generalize by publisher very well.  Wrox and O'Reilly (and I assume the others, I've never bought them) each have some truly awesome books, and some real lemons.  Read reviews, read a chapter in the store (that's why bookstores have armchairs these days), and pick them case by case.

muppet from forums.madebymonkeys.net
Monday, June 28, 2004

I did like the Makefile reference from OReilly and I liked the thing they did for a while of having special covers that folder flat. But their books of recipes and of programming languages don't do it for me. The worst offender is the Camel book. I consistently fail to find the information I need in that book. Probably that is the fault of the language itself and the author who explains the most bizarre and arbitrary special cases imaginable and chooses amusing variable names that completely confuse the purpose of the examples, just like that old psych experiment where you show the person a card with blue letters that say "RED" and as what color the letters are...

What is really really needed for Perl is a book that shows readible/secure methods of working in Perl that completely disregards, ignores and warns against taking advantage of any of the bizarre special cases or weird functions that are totally nonintuitive.

Dennis Atkins
Monday, June 28, 2004

To summarize, Perl has too many subtleties. But I have always believed that under all the confusion is a smaller better language waiting to be explained.

Dennis Atkins
Monday, June 28, 2004

BEGINNING PERL BY SIMON COZENS, WROX PUBLISHING

best perl reference ever.

muppet from forums.madebymonkeys.net
Monday, June 28, 2004

More thoughts on Camel:

1 It doesn't work as a reference because you can't find the answer you are looking for. Where is it? Hard to say.
2 You can't just sit down and read the book from start to finish. You just can't. Those who have tried have gone insane.
3 You can't randomly open a section and read it because it entirely depends on having read and understood everything else in the book.

I believe that the Camel book is a good reference for the language designers themselves but not for others. In this way it is comparable to the abysmal, the horrid, the worst computer reference ever written, the evil evil ARM.

Dennis Atkins
Monday, June 28, 2004

OK, OK, I'll look into it. I'm not a beginner though - I use Perl quite a bit. I guess I'm intermediate. And this book still explains the things I need to know and lays out a readible style of writing in Perl?

Dennis Atkins
Tuesday, June 29, 2004

I've been coding Perl for 5 years, and I still have this book on my desk and refer to it often.

Your mileage may vary.

I find the appendices to be of particular use.

muppet from forums.madebymonkeys.net
Tuesday, June 29, 2004

And yes, if you read the early chapters, the author gives many suggestions for making your code more readable by laying it out properly.  Much of it is obvious but maybe not all, guessing from the crap I've seen cross my desk from other programmers.... :P

muppet from forums.madebymonkeys.net
Tuesday, June 29, 2004

BTW, Learning Perl (OReilly) was the first book I got years ago and did not go far enough to get started.

Here's the thing that with years of Perl experience I still can not figure out, despite it being a simple, basic thing. I have read the relevent ports of the Camel and it just doesn't make sense to me.

How do I pass a non-scalar to a function as an argument? I have no problem passing scalars...

So far the only thing that works is to use global variables like I am in COBOL, but that is a bad solution though it works well.

Let's say I have a hash or an array or an array of hashes and I want to pass one as a function argument.

I have seen that there is a slash for taking the address/reference to something, so I guess I have to use that right? Otherwise the hash or array gets passed by value, is that it? But then do I have to predeclare the parameters in the function prototype? The bizarre notation shown to do this in the camel book makes no sense whatsoever.

Dennis Atkins
Tuesday, June 29, 2004

Dennis,

Don't worry about function prototypes and whatnot; they're next to useless except in special cases anyway. The trick to passing non-scalars to a function is to pass a *reference* to them. Then you dereference them inside the function. Simple example (sans error checking and so on):

sub add_first_last {
  my @array = @{$_[0]};
  return $array[0] + $array[-1];
}

# caller:
my @numbers = (1,4,6,9);
my $first_plus_last = add_first_last(\@numbers);
# result is 10...

If you just pass in an array rather than a reference, its contents just get flattened out; i.e. given the above, add_first_last(@numbers) would be equivalent to add_first_last(1,4,6,9). Hashes get flattened into name-value pairs in arbitrary order.

John C.
Tuesday, June 29, 2004

>> would be equivalent to add_first_last(1,4,6,9).

And just to be clear, that would fail if you try to dereference $_[0] into an array (assuming you use strict). I don't mean to confuse the issue, but the flattening can be convenient for certain types of functions (i.e., calling max(1,2,3,4) or max(@stuff) might be more intuitive than max([1,2,3,4]) or max(\@stuff)).

John C.
Tuesday, June 29, 2004

Thanks John,

I'm off to refactor my code libraries...

Dennis Atkins
Tuesday, June 29, 2004

And that flattening thing is of course what was happening but I had no idea what was really going on. One of those strange idiosyncracies of Perl that makes it so obtuse - I never would have guessed that is what it was doing. Thanks again.

Dennis Atkins
Tuesday, June 29, 2004

My technical bookshelves tend to be held down primarily by textbooks of enduring value rather than guides to this or that product, language, or library.  Hence, Addison-Wesley and Prentice Hall tend to dominate.  I will vouch that these two publishers put out consistently top quality works from the sharpest and most knowledgeable authors in our field.  You just can't beat them, in US bookstores anyway, when it comes to hardcore CS and engineering texts.  Morgan Kaufman also makes a strong showing here, along with the occasional Springer-Verlag when you can find 'em.

As for tech paperbacks, O'Reilly can be OK, but honestly I don't like them half as much as most of our colleagues.  Larry Wall is of course a joy to read, and their Mac stuff has some goodness, albeit ridden with typos.  APress has some nice titles too, and they have an appealing ownership model that I'm surprised more authors don't demand.  I also expect more good things from the Pragmatic guys and their new publishing adventure.  PH and AW also are extremely strong in this category too.

Once in a blue moon, Wiley or WROX will put out a decent title, but it's usually a surprise to me.  For a while in the mid-early days of EJB, Roman's book from Wiley was probably the only good book on that stuff.  (OK, maybe Monson-Haefel from O'Reilly too, but the rest was terrible.)  The WROX concept of 15 authors for a single book is a sure recipe disaster.  Manning, McGraw Hill, and Osborne have their moments too, but again not often.  Osbourne has Tom Kite on Oracle I think, which deserves points.

In my opinion, SAMS is typically poorly written, error-laden garbage, but the sun even shines on a dog's ass once in a while.

Cabby
Tuesday, June 29, 2004

The majority of my favourite books are from Addison-Wesley ... so much so that if now I'm considering buying an unseen book, I'll consider it a plus if it's from AW.

Christopher Wells
Tuesday, June 29, 2004

***And that flattening thing is of course what was happening but I had no idea what was really going on. One of those strange idiosyncracies of Perl that makes it so obtuse ***

Not obtuse, really.  If you pass a complex data structure in scalar format, then Perl makes it into a scalar for you.  In this way, you still have access to the data, albeit not structured.  In C/C++ you'd use pointers to pass data structs, and in Perl you use references.  What's obtuse?  :)

muppet from madebymonkeys.net
Tuesday, June 29, 2004

Depends on what you mean by "tech book." Apress and O'Reilly seem to have the best short-term tool books. For medium term "authoritative" tool books: Addison-Wesley, Prentice-Hall and Morgan Kaufmann. Then you start getting into the lands of Springer and MIT Press.

O'Reilly doesn't make any book I want, except for that Paul Graham book, but they're an interesting story.

Wrox died; Apress bought most of their IP but not the brand name itself. Wrox had this odd strategy of setting a team of authors in parallel to write a book in record time. Those books had really annoying covers.

Macmillan appears to own Sams and Que. You will never find these on a list of favorites, except for the unpredictable single gem I guess.

I think (?) New Riders is owned by Macmillan, but for some reason I don't think they're in the same trash pit as the other Macmillan books. I wouldn't be too surprised to find a useful New Riders book.

Tayssir John Gabbour
Tuesday, June 29, 2004

Hmm, that post was very similar to Cabby's. Sorry 'bout that. ;)

Tayssir John Gabbour
Tuesday, June 29, 2004

"Wrox died; Apress bought most of their IP but not the brand name itself."

Wrox lives on as a label in the stable of Wiley publishing.  I don't see how Apress could have bought most of their IP because it looks to me like most of the old Wrox books are still being published even now with ownership of Wrox by Wiley.

http://www.wrox.com/WileyCDA/Section/id-105072.html

Herbert Sitz
Tuesday, June 29, 2004

FWIW Dennis, my first O'Reilly book was The Camel too, and I couldn't stand it for more than about 50 pages, and really have not been impressed with any O'Reilly book since.  Learning C# is the only book I hated so much it *had* to go in the trash can.  The O'Reilly authors seem to like to hear themselves talk.  (Do I win over-generalization of the day, please oh please??)

brad
Tuesday, June 29, 2004

I agree.  I love Perl to death but the Camel book is crap.  The only folks who will tell you otherwise are the "hardcore" Perl/OSS developers who are trying to impress you.  The sort of people who think severely obfuscated text = writing with academic and intellectual merit.  If it's difficult to understand, it MUST be because it's meant only for smart people, right?

Beginning Perl from Wrox.  Excellent reference.  :)

muppet from madebymonkeys.net
Tuesday, June 29, 2004

Herbert, you notice this because Wiley retained a number of Wrox's bestsellers (20-40?). Apress got ~400 or so, but can't use the Wrox name. I don't know if Apress just bought the slushy 90%.

Apress's head honcho once got on Ask Joel and mentioned it. Also if you google "apress wrox" you'll find nice tales about it.

Wiley's not part of my tech world, so I didn't bring them up. Wrox isn't either, but it got mentioned in this thread.

Incidentally, if Macmillan's Sams/Que disappeared, the world would be a better place. Useless tree killers with their heavy books designed to eat shelf space. Their couple of good books could be published elsewhere.

Tayssir John Gabbour
Tuesday, June 29, 2004

O reilly, manning, apress for the M$ stuff.

Manning is severely underrated.

Karel
Tuesday, June 29, 2004

I have my "favourite" book, too.

It's published by AW, but in their Nitty-Gritty series. It's "Windows Programming with C++". Covers everything
imaginable on Windows. COM chapter spreads over 6
pages, Unicode takes one and a half, resources almost 4...

Examples are hilarious. They are all written in straight C
but sometimes there is new instead of malloc. Most programs result  as a window with client area all black or all
white.

Before I bought it, I should have noticed how the book
starts. "It is much easier to write a Windows program with
GUI, but it's no fun because personally I find it unclear and
confusing".

Well, what's my excuse? Why did I buy that book? It was
so thin and covers everything. How was I to resist?

VPC
Tuesday, June 29, 2004

Sams may be crap for some  programming stuff but for learning how to use an applicacation for the first time nothing beats it.

My cost and time efffective advice is to buy the
SAMS book first. If it is no good, then buy another.

Stephen Jones
Wednesday, June 30, 2004

*  Recent Topics

*  Fog Creek Home