views:

399

answers:

6

I have the opportunity to get involved in authoring a programming book on a relatively new and interesting technology.

For those who don't know authoring a programming book is really an investment in your own technical knowledge and reputation. The raw money you are going to make out of it is not likely to ever be particularly significant, unless it is a blockbuster hit book.

So with that said, is it worth authoring new programming books? Or are we better served writing blogposts and creating screencasts or just using SO?

+1  A: 

the books I'm interested are usually niche market books (GIS for Transportation, GIS-Transportation Programming, Transportation python/C++). AS niche markets, those books don't usually have high sales but are invaluable to my work so i don't mind spending the $140 for one. That's my recommendation at least: Write for niche markets

dassouki
+9  A: 

I have authored a total of seven books and find that they take a lot more time than one would think. If you compare how much you get compensated in royalties vs time, you would quickly figure out that there is a better ROI working at McDonald's bagging fries...

jm04469
+19  A: 

It depends on what you're looking to get out of it:

  • You're right, the money is unlikely to be fantastic - but it is a nice little bonus on top of salary.
  • I'd say there's more of an ego boost from seeing a book in print than from blog posts - but then there's a lot more work too.
  • Writing a book forces you (or at least should force you) to get to know your material really well. You should expect to learn a lot while writing.
  • I expect the credibility you gain in the eyes of future employers is likely to be greater due to authoring a book than a blog/screencast unless the latter becomes really well known.
  • Authoring is likely to lead to opportunities to give presentations at user groups and similar events, which may appeal to you. Of course, many user groups are eager for speakers to volunteer anyway :)
  • Authoring a book involves a lot of polishing: going over the same paragraph again and again, knowing that you're really only got one chance to get it right. It's hard to go back and edit it after it's in print. (Yes, there are corrections for later printings, but you really try not to need them.) That time feels like it's "wasted" in some senses, especially if you're quibbling over a few words - but it can be rewarding when you feel you've finally cracked the explanation of a tricky concept.

From my own experience, I'd say that if you have the chance you should go for it. Just realise it's a big commitment.

Jon Skeet
+1 For expert testimony :)
Andrew Hare
Nah - I'm a novice really. I've helped out on a couple of books and written one. That's nothing. My wife, on the other hand, has about 30 or 40 published children's books, and another 20 on the cards for the next couple of years :)
Jon Skeet
-1 For Jon Skeet :)
TheSoftwareJedi
@Jedi you are kidding right?
Jorn
@Jorn: Whether Jedi was kidding or not, I believe this answer has received 4 upvotes and 2 downvotes. I'm not quite sure what's so deserving of a downvote in it. Reasons are welcome, as always :)
Jon Skeet
Being a part of the whole tech book industry, I can say right now is not the best time for 'tech book' authors. Book sales have more than tapered off in the past couple years. That's not to say there haven't been bright spots, see "Beautiful Code" did well for the margins it required. See http://oreilly.com/store/bestsellers.html for the kind of books that a tried and true tech book publisher is making $$$ off of these days.
Rob Ottaway
@TheSoftwareJedi - even if the reply *was* by somebody you had an issue with... how does that make it a good/bad reply. Judge things on their individual merits... I suspect I'm wasting my e-breath, though.
Marc Gravell
Wait so the top selling tech books are... user guides for "easier-to-use-than-PCs" Mac software? Huh. Interesting. ;)
Spencer Ruport
Or rather, to vote down people who you *confuse* with people you don't like. It's childish behaviour either way. Why not rise above behaviour you don't like?
Jon Skeet
@Jon Skeet - how do I rise above their behavior when they close a question I want to answer?
TheSoftwareJedi
The whole idea that you can close a question for ANY reason doesn't fit the open community idea of SO IMHO. If you ask a question thats dumb, nonsensical, inflamatory, etc you will garner the responses such a question attracts. The idea you can gain power in this communinity from such questions over areas unrelated to the questions that gave you that power is something that should be fixed if this feature is to remain in place.If you don't like a question, ignore it and move on, it may be someone elses cup of tea and what should that matter to you? Its a little too Orwellian for me.
ScottCher
@ScottCher: If it's too Orwellian for you, and you haven't managed to persuade enough other people that closing shouldn't be allowed, then do as I've suggested to TSJ: start your own community. If indeed it works better without questions being closed, then your site will become more popular than SO. That's fine. That's a mature way of dealing with things you don't like. Calling people names, downvoting based on personality (and having identified the wrong person to start with!) is *not* appropriate behaviour.
Jon Skeet
@TSJ: Rising above it in that case means moving on to another question, and posting your feelings in a responsible manner. It doesn't include name-calling etc. No, you won't be able to have the world exactly as you want it in every respect. None of us can... but responding to that disappointment in a polite way is the only positive thing to do. Negativity breeds negativity.
Jon Skeet
Heh... Scott, if it's all too Orwellian for you, i think you need to read more Orwell.
Shog9
+1  A: 

Yes and Yes.

Actually there is no right answer to this question. I'm sure the adventure of writing a technical book is well worth undertaking just for the experience if and only if that is the sort of thing you are interested in. I'm sure for someone who's never endeavored to be a writer it would be a nightmare.

Likewise, writing blogs and such disseminates knowledge in a way that writing a book doesn't. Blogs are immediate and interactive. Book are snapshots of the past. Both have value and both, again, are worthy ways to spend your time.

Notice I have discussed finance or subject matter. They aren't really important. You are already aware that you won't become rich and as the subject matter whether it is a niche or a well-mined subject a new book can't hurt. Another beginners C++ book isn't needed but maybe the next one will be the best one. Can't tell unless someone writes a next one. Likewise a niche book (embedded toaster oven programming) probably isn't worth the time unless you have a passion for it.

Ultimately, you really need to decide if you can devote yourself to the 3, 6, maybe 12 months being fully absorbed in writing/tuning/editing the book or not.

jmucchiello
+2  A: 

I hope I can say this without offending any authors here but I feel like there are only three reasons to buy a computer book.

  1. You are a beginning programmer
  2. You need a reference guide
  3. You're looking into a niche technology that doesn't have a lot of resources on the web

Other than that my feeling has been that the internet makes a far better resource than any book you can find. Especially with quickly evolving technologies like ASP.Net MVC. Any books that were written on the subject 6 months ago are probably filled with techniques and advice that is no longer best practice or perhaps no longer supported.

With that in mind I would suggest sticking with blogs. If you want to write extensively on a certain subject perhaps make an e-book. I think either of these options would both benefit the community as well as your reputation.

Spencer Ruport
There's a fourth reason, IMO: you want a complete guide which someone has carefully structured to teach you in an appropriate order. My own book, C# in Depth, doesn't help in any of your categories - but readers have found it helpful. This certainly isn't because any of the information is unique. It's all around in blogs, the language spec etc. But a book provides that information (and commentary/advice) in a carefully constructed order. I think that's important.
Jon Skeet
I'll take a look. Maybe my problem is that I just haven't read one of your books yet.
Spencer Ruport
I would disagree with most of that. Agreed that a book can become outdated. A well-written book by someone knowledgeable is worth more than all the blog posts put together on the same subject. Books tend to have a flow - they start at the beginning of a subject and work you through the details. Blog posts tend to be short, to the point an lacking in detail. Often, blog authors assume too much knowledge and leave out the exact detail that people are looking for. Also, with blogs it is hard for someone looking for advice to separate the wheat from the chaff.
Steve Claridge
Oh it's not limited to my book, certainly. Good books should always be carefully designed in this way. I've seen some which aren't, but it's an advantage which books *generally* have over blogs which are usually somewhat haphazard (and incomplete).
Jon Skeet
(I should have said before, btw - no offence taken at all. I've pondered the value of books over blog posts quite a lot myself.)
Jon Skeet
These are spot on. I hardly spent a dime on a programming related book in 4-5 years. Last purchase was Steve Skiena's "The Algorithm Design Manual" which fits snugly in the "timeless reference" category. IMHO books can quickly become outdated, as I can atest to having a pile in the garage of about 20 ready to go to recycler/CL. Take into consideration also that projects like Pylons, Spring, SQLAlchemy, Hibernate and many more are tops for software projects these days and have excellent docs.
Rob Ottaway
+6  A: 

You are right in saying that your reputation is invested in the book, so make very sure you really are the expert you think you are, or you risk ending up being reviled as a second Herb Schildt. I'd recommend writing a couple of sample chapters first, without any contractual commitment. I did this for a putative C++ bookfor AW back in the late 80s and discovered I didn't really know as much C++ as I thought I did. Still don't for that matter..

anon
I think I'll always be a C++ novice. I've read several books on the topic and I just can't seem to think in C++ like I can in other languages.
Bill the Lizard
I wouldn't classify myself as a C++ novice, but I do look back and shudder at the job I had where my job title was "C++ Guru".
anon
@Neil: I didn't mean to imply that you were a C++ novice. I just meant that after reading the books and even finishing a few projects in C++, I always struggle remembering what seems like novice-level stuff. For example, I still keep Effective C++ close by so I can look up all the different things const can mean.
Bill the Lizard
And I didn't mean to imply that you meant to imply ... oh, nevermind :-)
anon
Haha, okay. Just making sure. After re-reading my first off-the-cuff comment I realized that it could be misconstrued that way...
Bill the Lizard