I <3 Steve McConnell*
Coding Horror
programming and human factors
by Jeff Atwood

October 04, 2007

Do Not Buy This Book

A few friends and I just wrote a book together: The ASP.NET 2.0 Anthology: 101 Essential Tips, Tricks & Hacks.

The ASP.NET 2.0 Anthology: 101 Essential Tips, Tricks & Hacks

I met K. Scott Allen, Jon Galloway, and Phil Haack through their excellent blogs. That online friendship carried over into real life. We always thought it'd be fun to work on something together, and when the book project materialized, we took it on. It was a natural fit for a group of established bloggers who have suffered the slings and arrows of three versions of ASP.NET; we have war stories to share.

But do not buy this book.

Why buy what you can get for free? As long as you have a blog, live in the US or Canada, and promise to write a review of the book, I'll mail you a free review copy. (I apologize to my international readers, but the international mailing process is just too onerous.) Shoot me an email containing a link to your blog, and your mailing address, and I'll send out the book. I have five to send, plus my fellow authors might have a few additional copies to contribute. I sent as many as I could on a first come, first served basis.

But there's another, more important reason you shouldn't buy this book. It's a technical book tied to a specific technology, and I'm not sure those kinds of books have a future. Don't get me wrong. This blog was founded on the concept of a recommended developer reading list. I have a deep respect for books and authors. I recommend books all the time-- but never highly technical books. I stock my shelves with books about timeless concepts such as design, process, people, and craftsmanship. Do highly technical books tied to a specific technology have any reason to exist in an era of ubiquitous, high speed internet access? I wonder. I think they're increasingly irrelevant, and almost by definition out of date by the time they manage to hit bookshelves.

I think back to the highly-rated technical books I bought on Amazon in 2002 when I was learning .NET. Embarrassingly, I never even cracked open most of those books. I spent the majority of my time learning by browsing articles on the web, downloading and modifying code. Maybe I'm too impatient, but I found the internet such an effective and immediate companion that the books I bought couldn't possibly compete. I realized five years ago that technical books were almost obsolete. I don't see anything today that would cause me to change my mind; if anything, the rate of obsolescence has accelerated.

As I went through the book writing process for the very first time, I also found that being an author isn't nearly as glamorous as one might imagine.

  1. Writing a book is hard work. For me, writing blog entries feels completely organic, like a natural byproduct of what I already do. It's not effortless by any means, but it's enjoyable. I can put a little effort in, and get immediate results out after I publish the entry. The book writing process is far more restrictive. Instead of researching and writing about whatever you find interesting at any given time, you're artificially limited to a series of chapters that fit the theme of the book. You slave away for your publisher, writing for weeks on end, and you'll have nothing to show for it until the book appears (optimistically) six months down the road. Writing a book felt a lot like old fashioned hard work-- of the indentured servitude kind.

  2. Writing a book doesn't pay. I'd be fine with the relentless grind of writing a book if you could make a reasonable living at it. According to Mike Gunderloy, less than 30% of computer books sell enough to generate any royalties whatsoever. I suspect far fewer sell enough for the authors to achieve the same wage they could by working a traditional job.

  3. Anyone can write a book. Even if books make no financial sense, perhaps the ancillary benefits can make the effort worthwhile. I won't lie: you'll get a little thrill the first time you ego-search Amazon and see your book in the results. There is a certain prestige factor associated with being published; people are impressed by authors. To me, these are ultimately empty accolades. Anybody can write a book. The bar to publishing a book is nonexistent; with sufficient desire, any would-be author can get published. Just because you've published doesn't mean your book is worth reading. It doesn't mean your book matters. It just means your book exists. Far from being impressive, that's barely meaningful at all.

  4. Very few books succeed. Anyone can author a book. But precious few can author a successful book. For books, the only meaningful success metric is sales, as you have no way of directly measuring eyeballs. In the physical world of published atoms, blockbusters rule. Nothing other than the biggest of hits moves the sales needle enough to register. Bruce Eckel says less than 1% of books are actually successful. At best, 99% of books will have a brief peak of sales-- hopefully enough to earn back your advance-- and then crash directly into irrelevance and permanent out-of-print obscurity.

In short, do not write a book. You'll put in mountains of effort for precious little reward, tangible or intangible. In the end, all you will have to show for it is an out-of-print dead tree tombstone. The only people who will be impressed by that are the clueless and the irrelevant.

As I see it, for the kind of technical content we're talking about, the online world of bits completely trumps the offline world of atoms:

  • it's forever searchable
  • you, not your publisher, will own it
  • it's instantly available to anyone, anywhere in the world
  • it can be cut and pasted; it can be downloaded; it can even be interactive
  • it can potentially generate ad revenue for you in perpetuity

And here's the best part: you can always opt to create a print version of your online content, and instantly get the best of both worlds. But it only makes sense in that order. Writing a book may seem like a worthy goal, but your time will be better spent channeling the massive effort of a book into creating content online. Every weakness I listed above completely melts away if you redirect your effort away from dead trees and spend it on growing a living, breathing website presence online.

That said, some people are quite successful writing technical books. Did I mention that I co-wrote a technical book with my friends? Many people find such books quite useful.

Unfortunately, I'm not one of them.

Update: Charles Petzold has posted his thoughts on the current state of technical book publishing. Needless to say, it's highly recommended, as Charles has a lifetime's worth of experience on this topic.

[advertisement] Axosoft OnTime 2007 is a bug tracker that manages requirements, tasks, and help desk incidents. It's designed to help teams ship software on time. Available for Windows, Web, and integrated with VS.NET 2005. Installed or hosted. Free single-user license.

Posted by Jeff Atwood    View blog reactions

 

« Revisiting Programming Fonts YouTube: The Big Copyright Lie »

 

Comments

"Anyone can write a book." or as perhaps it should read, "Anyone can get a book published"
We were discussing this at a reading group me and my friends started recently. There are several projects for online books, and with the internet truly anyone can publish their own book, which I think is a bad thing. Not anyone can get a book physically published, a large amount of crap does get published but that doesn't mean anyone can get published. If, as with the internet, anyone can get published there is going to be so much more crap to wade through before you hit gold.

[ICR] on October 5, 2007 01:59 AM

Congrats on the book btw ;)

[ICR] on October 5, 2007 02:01 AM

Hi Jeff,

I would be very appreciative of the publisher adding a 'Search Inside' function to the book page on Amazon, or does this cost a lot of money?

best of luck with it, anyways

bill

bil on October 5, 2007 02:09 AM

> if .. anyone can get published there is going to be so much more crap to wade through before you hit gold

But that's the big lie of book publishing, particularly technical book publishing. Publishers *don't* screen for quality, they just throw as much out there as they can, and pray that the 1% blockbusters will generate enough revenue to cover the other 99%. That's how their system works. They won't say that of course, but that's the economic reality driving the industry.

The online model, where there is no pretension of screening for quality, is ultimately a better system. There's a (nearly) infinite amount of content to choose from, and we have an ace in the hole that doesn't exist for dead-tree books -- Google automatically sorts the best stuff to the top for us through the miracle of PageRank/TrustRank.

Sure, 99.99% of the web is crap compared to 90% of books, but through the miracle of modern web search engines, you'll never need to see that 99.9% online or even know it exists. The odds of picking up a mediocre book off the shelf are much greater than the odds of getting a mediocre link in the top 3 search results.

Jeff Atwood on October 5, 2007 02:12 AM

Yeah, books are increasingly irrelevant. So are most forms of print media for that matter.

Even the portability factor of physical media is becoming less of an advantage with the advanced handhelds that we have access to now.

kettch on October 5, 2007 02:39 AM

> It's a technical book tied to a specific technology, and I'm not sure those kinds of books have a future.

I for one hope they do have a future. I taught myself how to program (in the good old days of Access 2.0 VBA) using technical books. I grant you that times have changed and the amount of good technical content available on the Internet has increased dramatically, but there is just something about reading an actual book. Have you ever tried curling up on the sofa with a good web page to read? Doesn't really have the same effect.

Jay on October 5, 2007 02:42 AM

Indeed, IMHO, this is a very funny way to marketing the book ;-)

Carfield Yim on October 5, 2007 02:52 AM

Hmmm, I'd agree with you up to a point. I also use the web as my first stop for information about how to solve whatever problem I'm working on. However, I do feel much happier with a big fat reference book to hand, as this lets me instantly get all the details on a particular approach that I may have identified online. There's so many times a webpage has said "use $BLAH", which is fine, and then the book has provided the information I need to get $BLAH working in my code. Guess it's very much a matter of what works for each individual, but I hope they don't stop printing books anytime soon!

Jim Millen on October 5, 2007 03:11 AM

I like the online content. It has indeed unbeatable advantages.
But I also like a good book a lot, be it geeky technical or just plain technical.
The way you're holding a book, and the page by page interface, results in a different manner of information absorbtion. It's hard to find the correct words for it, but some of the keywords could be : relaxed and tangible.
A book also give you an extra monitor immediately, albeit a very specialised one.
And it's still way better than a monitor for quality of image. Supercrisp with only ambient lighting needed.
+ Kyoto factor : it doesn't consume any power while reading it.

KristofU on October 5, 2007 03:11 AM

I enjoy reading books. I usually buy at least one technical book per month.

Asd on October 5, 2007 03:12 AM

The "curling up with a good book on the sofa" argument that gets cited a lot of times this discussion comes up is imo void - the place to read programming or technical books just isn't the sofa. It's just unreasonable to assume anything other than the users desktop (physical) is the place where technical documentations are read in the vast vast majority of cases.

Other advantages of digital media over books: Cut&paste, Ctrl-F, takes roughly 5 seconds to get (and usually for free, too!) and you can instantly link your friends without having to wait for a week for them to go out and buy the same book you are holding.

J. Stoever on October 5, 2007 03:45 AM

Sending a copy to Mr Petzold? ;)

Kevin Dente on October 5, 2007 03:58 AM

Jeff I am curious. I've heard before that writing a book is much like programming: With a goal, driven by a creative process, coorporative issues etc. How would you say it relates now having tried it?

Casper Bang on October 5, 2007 04:08 AM

Hmmmm.....I've got quite a few highly technical books tied to specific technologies that I still find useful to open on a semi-regular basis.

The C Programming Language - K&R.
The C++ Programming Language - Stroustrup.
The C++ Standard Library - Josuttis.
Generic Programming and the STL - Austern.
Programming Perl - Wall.
Python in a Nutshell - Martelli.

I guess you just need to pick your specific technologies carefully.

{troll}So, anything not by Microsoft then{/troll}

Karellen on October 5, 2007 04:31 AM

> Writing a book doesn't pay.

My wife wrote a technical book. It did horrible (even she will admit it). However, it did pay - an advance on royalties. For aspiring tech authors, just do the math. Break your salary down by the hour, and then estimate how long it will take you to write the book. Divide and determine if the scale/rate is the same. For most authors, it is just like freelancing after hours.

> Anyone can write a book.

I disagree. Although a lack of rock-star talent might not exclude you from getting published, not everyone can write a book. Quite analogous to the field of programming as a whole.

Brian Reindel on October 5, 2007 04:44 AM

For me, books aren't just about the content. It's also about the format. I hate staring at a screen all day to grok a technology. A good book on the subject helps to save my eyes. When e-readers gain traction, I will only read from paper when an electronic version isn't available.

I *am* impressed by authors, assuming the book isn't utter trash. You say anyone can write a book. Maybe that's true, but with that logic anyone could run 5 miles if they just put in the effort. Even if I have no interest in the book topic at all, I am impressed by the effort behind it. You said it yourself: "writing a book is hard work."

Anyways, to each their own. Well done on the book (and this blog) - I hope it sells well.

Kent Boogaart on October 5, 2007 05:02 AM

Not sure I agree with the blanket "technical books are obsolete"...

While I completely agree with the sentiment as far as learning to program goes, I've found a couple of technical books that serve as a definitive source of information - highly detailed stuff like 'Inside SQL Server' simply isn't available online, nor would I trust blog or forum posts to be accurate anyway..

I guess it comes down to the 'Encyclopedia vs Wikipedia' argument - definitive knowledge is very hard to find in a medium where anyone and everyone has a voice.

chrisb on October 5, 2007 05:08 AM

I'm going to assume that your arguments apply only to technical books, because they don't hold up for books in general. (With an editor, your blog post probably wouldn't come across sounding as such! ;)

The reasons you mention regarding authoring a book not being that glamourous are well known to people who look into writing a book. "Anyone can write a book" is often used as some kind of argument against writing when it is clearly a truism; people have known this since literacy became widespread. That writing is hard work and doesn't pay are also well known aspects to the job. Anyone who believes that crafting thousands of sentences and paragraphs in some fluid manner is easy has romanticized things far too much ("The grass is greener over there, right?"). When pressed, I doubt many people truly believe that the opposite of what you say is true.

Frankly, lots of writing doesn't lend itself to online reading just yet. Mathematical treatises and deep explorations of topics are awful to read online for extended periods of time (I'll take the $10 printing of The Origin of Species over the Project Gutenberg version any day). Reading creates our own internal wiki, if you will, and no number of links can capture that. Sometimes it's best to give you the ability to capture visceral memories regarding where that link is almost instantaneously. Physical books provide this right now. Online reading doesn't.

Not to say that it won't. I'm not foolish enough to think that it never will, but I'm also not arrogant enough to assert that reading on my laptop is as enjoyable as carting around a text. While flipping through pages is a helluva lot faster than scrolling through PDFs or waiting for a page to load, if something like digital paper delivers on its promises, I won't feel bad about carting around the digital versions of my books.

An anecdote on technical books: I recently picked up The LaTeX Companion. In the mere month that I've had it, it's been more valuable than searching the Internet and online help sources has been for the past 8 years. It explains things coherently and provides insight into the commands. However, I believe this case is an outlier. Nevertheless, technical books aren't dead yet -- and in my experience, they are usually much more enjoyable to read than random blog postings and poorly formatted documentation.

(This may be behind a pay wall for you and if it is, contact me and I'll gladly send you a copy. It's a good read about the future of books: http://www.walrusmagazine.com/articles/2007.09-media-apocalypse-soon/)

Geoff Wozniak on October 5, 2007 05:32 AM

Jeff,

Thanks for the comments.
Maybe it is more accurate to say many specific technologies books aren't 'keepers'. I have, like you, some of the venerated programming books that will grace my shelves for years to come (Code Complete!). I just picked up 'Java, Concurrency in Practice' a week ago knowing full well that it isn't going to last forever. Writing good multi-threaded, scalable, server software can be a difficult task and this book from Brian Goetz is supposed to be the 'bible' on Java concurrency. The practices and concepts will be outmoded by whatever comes after Java 6 (since it is written squarely aimed at 5 with a peek at 6), but it suits my purposes well and the 'net doesn't contain the wealth of pointed information on the topic that I need to do a good job.

So, some are keepers, some will fade to obscurity. If I had to write an application that was ASP 2.0, I might consider grabbing a book if I couldn't find one or two really good web primers on the topic.

Just sayin'.

g

Garret on October 5, 2007 05:33 AM

I just ordered this book on Amazon and didn't even realize that you were one of its authors! I'm currently working on a project to convert an ASP web application to ASP.NET 2.0. I'm not finding a lot of helpful information on the Internet. Yesterday I worked out how to allow the user to change the web site's theme but I had to cobble together two techniques because I could not find a complete example. And I can't find any decent sample code for web parts because everyone just repeats the same basic tutorials which don't serve any useful purpose. I bought your book because I hope it provides something more than simplistic article fodder.

I noticed that Amazon now allows video reviews and I definitely want to create some videos about my favorite books because it is an excellent way to get the attention of an author.

Robert S. Robbins on October 5, 2007 05:41 AM

Hey Now Jeff,
Congrats on the book.

Coding Horror Fan,
Catto

Catto on October 5, 2007 06:24 AM

why not send an ebook to people fortunate enough not to live in america?

Simon on October 5, 2007 06:31 AM

So when's the ASP.NET 3.0 (Beta 2) edition coming out? If I buy it will I be able to get a discount on the ASP.NET 3.0 (Final) edition?

Rick Cabral on October 5, 2007 06:31 AM

"Anyone can write a book."

Yeah, but the ones who do get beaucoup consulting gigs, speaking fees and opportunities to network.

Joe Grossberg on October 5, 2007 06:35 AM

Yeah, the technical book publishing racket sucks. But as the first person to read the book cover to cover (I did the technical review/sanity checking), I must say the force is strong in this one.

That and until I get comfortable taking my laptop to the crapper or to the beach, books and newspapers have a place in this world.

Wyatt Barnett on October 5, 2007 06:37 AM

Thank you for an honest, well-written article. A lot of what you say is correct. Most technical books have a useful shelf-life of 24 to 30 months, and many are toast when the next version of the product comes out. But it you are lucky, smart, talented and experienced, you might get to write a timeless tome, such as Design Patterns: Elements of Reusable Object-Oriented Software, by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides (1995), or The Pragmatic Programmer: From Journeyman to Master (1999) by Andrew Hunt and David Thomas.

William F. Slater, III on October 5, 2007 07:04 AM

As a co-author of a technical book I really have to question all your numbers in this post. Here's some stats from my experience.

Most technical books don't have a second printing - so you're going to have a print run of 5 to 7 thousand.

On a technical book figure you will see 5-7% of the cover price. Our book sold for $50, so that's about $2.50 - $3.50 per book sold.

Publishers know this going in - they're not going to publish a book that won't at least cover costs. I'd really like to see some evidence on the "1% of books support 99%"

Also see this post with more numbers ...
http://www.sarken.org/index.php/2006/03/28/tech-book-royalties/

I'd estimate that you'll bring in around $5000 over the next 2-3 years. ($40*0.7*7000/4 - assuming an even author split).

Gordon Fischer on October 5, 2007 07:05 AM

You should setup your amazon.com page, so people can read inside of your book (i.e. see the table of contents).

I think that is the best feature of amazon.com is seeing the TOC and a sample chapter from the book.

I may buy this book (against your suggestions) just because I'm a huge fan of your blog and K Scott Allen's blog and I want to see what kind of book writers you guys are.

Billkamm on October 5, 2007 07:07 AM

anyone who says 'anyone can write a book' has never watched the jerry springer show! :)

Steve on October 5, 2007 07:38 AM

I have half of a bookshelf worth of technical books behind me (I didn't buy them, my employer did). The only one I've ever cracked open is an O'Reilly "XML in a Nutshell" book, and that one only about 3-4 times. Yes, technical books are completely and totally worthless.

Mattkins on October 5, 2007 07:39 AM

Granted, searching the web for information is nice.

But me -- I like print. One -- it gets my eyes away from starting at a screen ALL THE TIME.

Second, I like the fact that a book is a concise collection of information: table of contents, glossary, etc. It contains reference that won't mislead me into going to a forum post where someone asks a question but has no answer, or where the 'answers' are guesses or otherwise don't work.

Books, for me, are a good springboard to get information/ideas, and then to extend that and find further uses and examples jump off that springboard and into the waters of the net.

N on October 5, 2007 07:44 AM

What if my blog is really unpopular? :)

TM on October 5, 2007 08:03 AM

Jeff, maybe you can also put the name of each author's blog on the cover too? Maybe you could do this when the first edition sells out and Sitepoint issues a second edition... :-)

The logic is that I read Coding Horror every day for a while before I *learned* it was written by Jeff Atwood, so I think the "Coding Horror" brand may have more insta-recognition than the "Jeff Atwood" brand. :-)

Congrats on finishing your book! I'm amazed at your prolific high-quality output.

Bob Hiler on October 5, 2007 08:32 AM

You say: "But that's the big lie of book publishing, particularly technical book publishing. Publishers *don't* screen for quality, they just throw as much out there as they can, and pray that the 1% blockbusters will generate enough revenue to cover the other 99%. That's how their system works. They won't say that of course, but that's the economic reality driving the industry."

I think that's true for many publishers, but in the end they're just hurting themselves by diluting the one thing they have to offer: editorial judgement. The big fight is for attention, and publishers who care about content get more attention, because their readers come to trust them.

Dave Thomas on October 5, 2007 08:43 AM

Crap, I just bought this book 2 days ago :)

Congrats on the book!

Kindler on October 5, 2007 08:55 AM

The late Richard Brautigan once imagined a library where anyone could place her book, no matter how good or bad the critics might consider it. It would be a place where others could go and look on the shelf for something that suited them at that point in their journey. It's a pretty dream and I'm glad to see it has come true via the internet.

Blogs are unedited, non-juried writings that serve special needs and they work very well.

JeffK on October 5, 2007 09:10 AM

Congrats on your book.

Why are you limiting reviewers to people who have blogs!? Can I review your book and *you* post my review?

Anyway, your book is not available in any stores. (At least in my area. Barnes & Noble, Borders and Powells (largest independent bookstore in the US)

Abdu on October 5, 2007 10:00 AM

I agree that "technical books tied to a specific technology" rarely have a future. I strongly and vigorously disagree that "technical books" have no future.

Books that deal with computer science and computer engineering -- that are not tied to a single technology -- emphatically have a future. My books about algorithms, software requirements, and software testing are well-used.

The other extreme are the definitions of technology. My book with the complete specification for SQL-99 was heavily used when I worked for a database company.

I might be this emphatic because I'm in the middle of writing a book about statistics for computer scientists. But I don't think that I am wrong. We'll find out when the book is published, and the sales figures come in.

Chip Uni on October 5, 2007 10:09 AM

God damn, you feel me?

Congratulations on the book. I may even buy it if someone gives it a better review than you just did.

Eam on October 5, 2007 10:12 AM

In retrospect, I think it's unfortunate that the book's title says "ASP.NET 2.0" instead of just ASP.NET. Some of the best tips have worked since ASP.NET 1.0, and there's much that will be postdated by ASP.NET 3.5 - sure, there's the listview and LINQ for data access, but most of the core info is unchanged.

Version aside, I think it is worthwhile to buy books about a specific technology. All of my greatest technical leaps have come from reading really good books - Fritz Onion's ASP.NET book, several CSS / web design books, and a few key SQL books, for instance. Blogs are good for keeping up or finding specific information, but they rarely do a good job at going deep AND wide at a consistent quality level to really teach something.

I've started buying books again lately, and have been really happy about it. Last night I wanted to check up on how I'm using Javascript and AJAX in my current project, and it was nice to re-read K. Scott Allen's chapter on that after a day of random advice on from the far corners of the universe.

Jon Galloway on October 5, 2007 10:15 AM

I agree that the web has supplanted books for many things.

However, for jump starting into a new technology, nothing is better than a well written technical book that is organized, brings the key things you need to know together, and gives you a foundation for going to more direct on-line sources of knowledge.

Nothing is more frustrating than trying to learn a system or framework from web documentation, when most of it is cultural, or spread out among blogs, articles, and very occasionally purpose written documentation. You miss out on key concepts or assumptions that would make the rest make sense.

SAJ on October 5, 2007 10:43 AM

I recently pulled my dusty copy of "The Peter Norton Programmer's Guide to the IBM-PC" from my basement bookshelves. After reading the blog on your new book, I wondered if your blog would exist today or exist even in the next couple of years if it had not been for this 1980's "technical" book.

What strikes you about the Norton book is the absolute unadulterated passion he put into that book. The humble yet thunderous accomplishment of propelling the state of electronic computing forward.

I've not read your book. However, if it was written in one iota of the same vein as Peter Norton's you've done a great service to yourself and to your fellow human beings.

Joe the Rose on October 5, 2007 11:53 AM

Tech books dead? Not here, not yet. Maybe it's my librarian background but I regularly use a small set of tech reference books, including O'Reilly's "JavaScript: The Definitive Guide", which FAR exceeds any online JS resource I've ever found. IMHO, it's a must-have for serious JS developers.

ChrisL on October 5, 2007 12:47 PM

I'm surprised that there's been no mention of Safari Bookshelf yet.

It strikes an interesting balance between the 2 options discussed, and brings its own limitations, but worth a mention here.

http://safari.oreilly.com/

Despite all your praise of whatever resources are available online for free and the efficiency of Google, I've yet to read a Code Complete or Pragmatic Programmer written by anyone on a web site/blog, and have yet to read a webpage with quality information for free that isn't either 1) paid for by a commercially interested party so that you use their stuff more (e.g. MS) or 2) full of mind-poisoning crap adverts everywhere that obscure the information to some extent and provide distractions.

If you want to focus specifically on something I think books are still a very strong option, especially the timeless ones. Again, surprised that despite singing the virtues of such books you go and contribute to something of the opposite nature!

Gaurav Sharma on October 5, 2007 01:12 PM

Considering the points you mentioned in your article, as long as your publisher isn't the rightsholder, why not just release the book electronically using a Creative Commons license or the GNU FDL, assuming the book's co-authors are okay with it? Then, set up a Paypal (or similar) address for accepting donations for the book. See also Mark Pilgrim (although I don't think he accepts donations).

Christopher Parker on October 5, 2007 01:25 PM

As someone who learned .NET mostly from reading books, I've found that I've developed a far more comprehensive understanding of the breadth and depth of the .NET framework than the vast majority of developers I've met. There's simply no easier way to get a comprehensive look at all facets of a platform that by reading a series of books that were written to cover the technology end-to-end. Blog entries tend to focus on scenarios that developers commonly encounter in their daily lives as developers, but you won't get a well-rounded perspective without reading books.

Paul Schofield on October 5, 2007 01:29 PM

Jeff,

How did you come to the decision of selecting a publisher? Or did the publisher select you? Anyway, I don't know much about SitePoint (seems fairly new), but did you consider OReilly? There's hardly a bad book published by OReilly.

Kevin

Kevin Le on October 5, 2007 01:36 PM

> As someone who learned .NET mostly from reading books

This is a valid point; there are certainly different learning styles. Mine isn't the "correct" one.

> I've yet to read a Code Complete or Pragmatic Programmer written by anyone on a web site/blog

I completely agree, but sometimes the expansiveness of a book gets in the way-- most people have something they need to do right now, and they want a specific answer to the specific problem or situation at hand. What they don't want is chapters of background, however well written and useful. Websites are extraordinarily good at providing those kinds of "just in time" answers. It's a very effective system with a strong positive feedback loop.

Plus, who wants to dig through a book index to find something? How archaic. It's almost like technical books *only* work if you're willing to sit down and read entire chapters (or more) at once.

Jeff Atwood on October 5, 2007 01:47 PM

Obviously Phil loves his readers more, he's shipping me a copy to the UK ;)

barryd on October 5, 2007 02:44 PM

I like both technical books and online resources.

Online resources are faster, and usually better for finding code snippets. Books are better for explaining things and taking you all the way from never-coded-PHP-before to being able to write applications. I think only the Java Trails do an equivalent job online, and even they aren't that good.

Whenever I need to learn a new subject, I buy a book. When I already know something, but need to look something up, I go online.

Bill Kerney on October 5, 2007 03:15 PM

I agree, books are great if you need to learn how to {fill in new technology here}. This is because they give you context to build on.

Online pages are good when you need to solve a problem or advance your knowledge in an area you are already proficient. This is because you already have the context and something is just not working right or needs an upgrade.

Stephen on October 5, 2007 03:43 PM

Sorry Jeff, you're way off base on this one. The "Writing Stuff Statically On Other Stuff" technology has existed relatively unchanged for millennia. You're awfully presumptive to declare it outmoded (even for a single category of communication!) based on this not even half-a-century old technology we're currently using.

I'll go out on a limb and say technology books are the single best resource for an overview on a specific technology topic. Sure, if I know all about a particular framework, I can just search the internet for any specifics. But what if I see a technology and ask "what the hell is that?" and "do I want to use that?" and "how do I start using that?". I've tried to use the internet to answer questions like those, but most often I go around in circles and waste hours upon hours reading blog posts in fractured english or "Getting Started" wiki pages that do everything but get me started. Eventually I get to the point where I say, screw it, this is worth the $45.00 and the trip to Barnes and Noble.

Why? Because books are a single, relatively authoritative (relative to blog posts), easy to navigate resource that the internet does not yet match. That's not to say that occasionally someone writes an excellent online reference to a technology, but if you're using the magical search engine that doesn't force you to plow through outdated, or erroneous, or unreadable, or too specific web postings, I'd like to know what it is!

So in closing, books FTW.

CynicalTyler on October 5, 2007 05:00 PM

Kudos, Jeff. I appreciate the amount of time and effort you put into this blog. I'm going to pick up a copy of the book because not doubt it is of high quality too!

Always a fan of coding horror,
Matt

Matthew Cuba on October 5, 2007 05:42 PM

Any chance you've got the post-publication case of "I finally finished this pig and I never want to see another book again" blues? It's taken me months to get over that state after finishing co-authoring the 1300 pages of "Windows Developer Power Tools."

Yes, I'm biased, but I believe tech books will always have a solid place. Everyone learns differently, everyone groks different media. I can remember references in a book read years ago, but I can't find that *#^@||!! blog post I ran across last week that solved my issue with blocked progress bar updates (and solved world hunger at the same time).

In any case, congrats on finishing up a great-looking book. You're a great writer, you got great co-writers, and you had a great publishing house put out the book.

Jim Holmes on October 5, 2007 07:40 PM

Some information is best left to the web, but I always enjoy the book worth buying and the tactile sensation of turning a page, making notes, and reading while sitting on the toilet.

Steve on October 5, 2007 10:38 PM

During my studies I had great help from Bruce Eckel's "Thinking in C++" which is freely available on the net http://www.mindviewinc.com/

It is an exemple of that books can be helpful if published in the correct format (digital)

Carl-Johan on October 6, 2007 07:22 AM

@Jeff -

I agree with most of your views, but you are way off on this one. Books are still the foundation and cornerstone of learning; I don't care what field it is. Online learning via the first couple of search hits to blogs and other un-edited material just fills in the gaps. I've met way too many developers that do their core learning via Google U and it shows in their shallow level of understanding. No depth; all copy/paste quicky knowledge.

Sahil Malik sums it up in true Sahil fashion in his 2005 post on this very subject with a reference to the infamous Bill Vaughn who has a timeless term for it:
http://codebetter.com/blogs/sahil.malik/archive/2005/07/13/129140.aspx

Leigh Kendall on October 6, 2007 11:18 AM

when dealing with royalties, contract for GROSS royalties, not net.

You, as the writer should be part of the publishers expenses. As you said, you're not really helping anyone with this since it's all freely available in some fashion on the web. Make the publisher pay you whether they met their margin or not, their margins are not your problem.

Next time, don't let them fool you into the net royalties game, because their executives are getting paid up front before you get the royalties.

If you got a lump sum up front, then you should have worked in small gross percent, with a much larger percentage of the net. even a 1gross/5net split (per writer) plus a lump sum would be more advantageous than a pure net gamble.

IMHO of course ;)

steve b on October 6, 2007 01:26 PM

Leigh, did you read the two comments on that post you linked? They're exactly what I'm talking about:

--
On the other hand, if I page through another ASP.Net book that describes DataGrid binding without truly diving into how to really get into it (a very difficult task), I'm gonna freakin puke.

Granted there are some good books out there. I just haven't seen one that starts at the advanced level and assume that I understand the basic stuff. I keep seeing books that talk about string concatenation and stringbuilder. Its almost insulting.

Unfortunately, those types of books dont appeal to a large audience, and therefore all we get is entry-level rehash.

--

You do have a valid point.

Now why are such advanced books are not written? Simply because not enough people buy them. You would love such a book, but that kind of book does not sell enough copies to justify the effort. Such a book would end up costing $80 for a 400 page treatise.

In such instances, you have to contend with blog posts, user manuals, and word of mouth. So what you end up with is a lot of conflicting information, and no book to guide you through the mess.

It is a tough choice unfortunately!! A possible solution is to setup a subscription based website where advanced content, and direct contact/communication with authors is possible. But an advanced book in the shrinking sales numbers world - is IMO not gonna happen.

--

In other words, online wins. Like I've been saying all along.

Jeff Atwood on October 6, 2007 02:08 PM

"The bar to publishing a book is nonexistent"

I think you're narrow-mindedly referring to technical books, of which this statement is true.

Novels, on the other hand, are a bit different.

Brent on October 7, 2007 12:03 AM

Is it books "tied to a specific technology" or those tied to a specific product that have a limited future?

Some good books about core technologies have a long shelf life, such as Ralph Kimball's data warehousing book and Joe Celko's SQL books. Data Warehouse Toolkit and SQL for Smarties have been selling since the '90s. They are currently Amazon.com bestsellers in the database category.

Neither book rides a wave generated by the latest product release or technology du jour.


Ken North on October 7, 2007 10:54 AM

Hey Jeff,

Thank you for my Wumpus, it arrived today. I had almost given up hope of it ever coming.

Cheers
Alex

AC on October 7, 2007 11:31 PM

If a host pulls the plug, the general feeling is "oh shit, did someone back all of this up?". If an author dies, the book is still there. hen there's the whole right-to-read stuff, and if books become like that, then the paper version is superior. Plus, it's available second-hand.

It's too bad that the Wiki books section isn't that expansive yet. I'm a big fan of Thinking In Java - the HTML version is superior, and I agree fully with "you can't grep dead trees".

When providing a book in electronic form that everyone's going to read anyway, don't lock it up in a database on a site or in some proprietary PDF with "usage rights". Throw it out there as zip file of HTML files, as torrent, spread out over several filehosts, make it absolutely ubiquitous and easy to locate. It's not the space that's a problem.

Rob Janssen on October 8, 2007 03:13 AM

Congrats on the book.

Craig Nicholson on October 8, 2007 09:18 AM

Jeff -

Yes, I did read the two comments on Sahil's post I linked to. I don't see how this "proves" online wins.

What I'm saying (and I believe was summarized by Sahil and Bill Vaughn), is that blog posts and other "incomplete" information garnered online often times can give you those small chunks of advanced information not found in books necessarily.

I still contend, and it seems echoed in comments on this post, is that many many people still use books to get off the ground and get their head around a technology initially. Then they fill in the gaps with online resources, be it blogs, whitepapers etc..

Leigh Kendall on October 8, 2007 10:23 AM

Having authored and coauthored seven books, the first one published in 2000, I know firsthand of the decrease in sales figures technical trade books have experienced over the past several years. And, yes, the economics of writing a computer trade book are dismal when compared to writing for a magazine or working a 9-5 job, as I previously blogged about: http://scottonwriting.net/sowblog/posts/146.aspx

There will always be people who buy technical books, though, because there are certain properties of the medium that are more advantageous in certain situations than online resources. It's like radio - 50 years ago, everyone listened to the radio and used it as their main source of information and entertainment. Today, with TV and the Internet, that's hardly the case, but it's also clear that there still is a place for radio and it still draws in significant audiences.

I think the area that has been hardest hit and will see the greatest decline is technical books geared toward intermediate to advanced developers. Most skilled developers will turn to online sources for obvious reasons. Technical books will do best in the beginner market. It's a lot easier to say to a person who has .NET experience, "Oh, just go to Google to find out how to do X," but for someone who's totally new to .NET (or perhaps even totally new to programming), the web's resources are far too disjointed to provide a sound learning environment. For them, a well-written book is a better option and will provide a more structured learning environment.

As I've seen book sales decline, I've decided never to write a book geared toward intermediate or advanced developers. I plan on continuing to write for one audience: the beginner who's learning ASP.NET from scratch.

Scott Mitchell on October 8, 2007 07:48 PM

> The online model, where there is no pretension of screening for quality, is ultimately a better system. There's a (nearly) infinite amount of content to choose from, and we have an ace in the hole that doesn't exist for dead-tree books -- Google automatically sorts the best stuff to the top for us through the miracle of PageRank/TrustRank.

Holy shit. You're kidding, right? I've given up on Google for relevant search results.

You are absolutely incorrect about "the best stuff" being sorted to the top. It's the _most popular_ stuff that's at the top. Popular != best, or even correct.

I'll give you an example: Using a custom Page Viewstate provider. Pretty well every page provided by Google gives absolutely wrong advice.

Google is nigh useless now.

foobar on October 8, 2007 09:34 PM

> Sure, 99.99% of the web is crap compared to 90% of books... The odds
> of picking up a mediocre book off the shelf are much greater than
> the odds of getting a mediocre link in the top 3 search results.

That's another big lie from the same industry that gave us Harry Potter--99.99% of books are crap too. But who buys books that way, just picking one up off the shelf? At the very least read a review on Amazon first.

Petzold has a great response to this post:

http://www.charlespetzold.com/blog/2007/10/081247.html

Stephan on October 9, 2007 02:40 AM

I've actually just read it (plane ride fuel) and it's quite a compelling read - given the subject matter.

I use it more as a "refresher" but I'm going to recommend it to others within our community that I meet.

-
Scott Barnes
Rich Interactive Application Evangelist
Microsoft.

Scott Barnes on October 10, 2007 12:39 AM

I got the book the other day and I've found quite a few nice tricks in there that have been immediately applied to current projects. My one question has come on compressing viewstate; I used the exact code from the book and found that my viewstate actually grew slightly. Am I missing something here? I assume it's probably a theoretical issue (i.e. it only helps at size xxxx of viewstate and up) but this seems like a good place to ask :)

Tom on October 10, 2007 06:57 AM

Sorry, just wanted to clarify something...when I used the GZip compression on the viewstate, the hidden __VSTATE field is about 446 bytes long, whereas uncompressed the __VIEWSTATE field is 330 bytes. It's just a simple form with one or two controls on it.

Tom on October 10, 2007 07:23 AM

I've used to do the same as Jeff and others here - buy lots of technical books and then not even read some. Safari really saved me from myself. Having such a huge libary availiable online and _searchable_ is great and has completly replaced by specific tech book buying. I still sometimes buy and enjoy timeless concept books but I'm more picky. This is an area the web often doesn't cover. Sometimes you just can't beat a really good book.

I still think specific tech books have some worth but for me only when presented through something like Safari, not as dead trees on my shelf. As a FOSS developer they often provide the missing manual that you wish came in the box, only there was no box, just a download and a very messy wiki.

Mark Addison on October 10, 2007 09:33 AM

Jeff, your comments about publishers ignoring technical book quality is misdirected.

The problem is neither with technical book publishers nor even with books, it is an endemic problem in computer science. This problem extends beyond books into peer-reviewed journal papers on computer science research, which are typically of appallingly poor quality compared to scientific research papers.

If you look at technical books on other subjects, such as computational physics, you find that publishers are far more pedantic about quality. Also, books on these subjects are typically several times as expensive as the cheapest computer books.

As the author and publisher of books on the intersection between computers and science, I can tell you that our technical book market is thriving and suffers to a much lesser degree from from these quality issues or from theft (be it plagiarism or bittorrent).

Cheers,
Jon.

Jon Harrop on October 11, 2007 12:26 AM

1. Writing a book is hard work.
2. Writing a book doesn't pay.
3. Anyone can write a book.
4. Very few books succeed.

Couldn't these facets apply to any creative endeavor, including pet websites/coding projects?

Mike on October 12, 2007 10:45 AM

This is one of the posts which has a lot of points I have to disagree with because choosing a technical book to read is very much like choosing a book in any other field. If I do not like author's presentation style, language (totally helpy English without any zing) and simplistic examples, I am not going to buy the book. A book that really stands out in recent years is "Domain-driven design" - it is so well-written that it can actually be read with gusto. O'Reilly's books are generally very good and to the point but also disposable. On the opposite side we have "fire starters" from Wrox (I am sorry guys but content in those books seems copied from some help file. Helpy English reveals it).

Publishing one's work has more to do with recognition in the community (or with the client audience if you are a consultant) than with making money. Actually, money making becomes a side-effect once you sell your consulting services. Let's face it: no book can solve any technical challenge by itself.

Blogs and electronic publishing without peer review results in as much crap online as in print. In fact, online world is no different than printed world; only 2-5% of content is really good e.g. it contains original insight or at least one original idea.

Sam on October 17, 2007 09:35 AM

Just got your book off Amazon and so far I think it's great. I have read other ASP.net books, but I love the way you guys give explinations and examples that aren't over your head for a beginner and aren't dumbed down for those that do have some experience.

Keith Schwerin on October 17, 2007 10:09 AM

John Resig's thoughts on Programming Book Profits:

http://ejohn.org/blog/programming-book-profits/

Jeff Atwood on February 27, 2008 12:38 PM







(hear it spoken)


(no HTML)




Content (c) 2008 Jeff Atwood. Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved.