How Not To Write a Technical Book

I don’t really understand why anyone would even want to buy a programming book. No way to run the example code (without finding it online or on some attached CD/DVD), no way to copy and paste, no way to click a link to a different topic, the trusty web browser with Google bookmarked to look up terms or expressions you don’t know is far away. It’s like living in the dark ages again.

You ADD might be acting up, bra!

Eh, point me at a treatise of WPF anywhere on the Web that does justice to the topic like any book and I’m sold…

Good luck.

The Web is awesome for finding information you might need WHILE your working on something. But it’s usually horrible if you need to find out about and understand a technology. There’s lots of snippet content and even if all the information you can find in an average book is published on the Web SOMEWHERE you’d have a hell of a time piecing it all together.

For heads down learning, short of an interactive course or a video walk through, I don’t think nothing beats a book!

The main insight for me that has come out of this discussion is that Petzold really has great content and works very hard at the writing BUT he seems to have such difficulty working with other people.

He is great at solo content and has probably scared away or refused to work with the book designers people and graphics layout folk.

To be balanced here his blog is very good and he keeps it up-to-date.

I’ve read both books cover to cover and without a doubt prefer and keep Adam’s to hand. It’s uncharacteristically belittling of Charles to refer to Adam’s writing style as “PowerPoint writing”. My personal taking on this is that Adam’s book makes better matches the medium through its use of colour, and more importantly is a better suited to the environment that developers are writing code in these days. Not everyone has the time to read Charles book - and even if they did that time might be better spent with a book like Adam’s and actually writing little bits of sample code to try things out in-anger. Charles’s book is a good book to have to hand - but I’d rank it 3rd after Adam’s and Sell’s book.

I am currently reading through Petzold’s book; reading means going through it page by page, typing many of the examples or at least experiment with the downloaded ones, and make summaries and annotate paragraphs. It does take work.

I am sure I would be able to get going and make a nice UI quicker with a Powerpoint style book, and perhaps for a technology that’s only one of many new complex ones that are going to be around for only a couple of years before they are replaced by newer versions, get going quickly may be the smartest thing to do.

I do a lot of maintenance work where I don’t have time to understand the whole context, but need to fix something quick. That’s sometimes fun to do (if it works and the fix didn’t break anything else) but at other times it is nice to really master something. That’s when you know something because it logically follows from facts you have learned and not just because you know where to find it in Intellisense/MSDN/CodeProject. Learning the facts (such as class names and attributes) and, more importantly, the logic behind a framework (class hierarchies, patterns, and concepts like databinding) takes time and I firmly believe I will learn that through Petzold’s book, and I don’t think a fancier presentation will help anything - although not having a class hierarchy in the cover is a missed opportunity in Applications=Code+Markup.

I don’t have an immediate need in my work to use WPF but when I do, I suspect I will buy another book for quick reference, because of the ‘scannability’. Your review points out an excellent candidate in Adam Nathan’s book, and it would be nice if you could take a look at Chris Sells’ book too. I liked his Windows Forms book.

So in short, I think it is a personal choice which book to read and that it will come down to personal learning style, why you want to learn the technology, and how much time and effort you can afford. Petzold did not write a bad text because it takes work to get through.

One more point on scannability. Did you notice the link refers to Web Pages ? Some of it may apply to certain kinds of books, but I highly doubt a more scannable presentation of Hamlet would increase my understanding of Shakespeare. That is an extreme example, but imagine CompSci or Engineering students going through nothing but pre-digested texts to pass exams. I’d hate to work with the Software Engineer who is not able to go through a book like Petzold’s.

Tom, I agree. I thought Scott had a good post as well, along those same lines:

http://www.lazycoder.com/weblog/index.php/archives/2007/04/27/people-communicate-more-effectively-visually/

I received both during a WPF Bootcamp up at the campus and I’m about 3/4 through the Code portion. I really do appreciate the breakdown and early abundance of code as I think you miss the root connection when working purely in XAML early in your introduction to WPF. I have not yet made it to Adam’s book and I’m sure I’ll love it, but I agree with Charles in that it is very easy to get lost in the sea of XAML if you don’t have a strong foundation in the WPF class library.

Doh, I got my Petzold and Payette titles mixed up. The actual title of Payette’s book is “Windows PowerShell in Action”, not “Programming Windows PowerShell”. Sorry, Bruce!

Also Petzold posted another response.

http://charlespetzold.com/blog/2007/04/290143.html

Read Nathan’s response to that response here. It’s pretty funny.

http://blogs.msdn.com/adam_nathan/archive/2007/04/30/petzold-vs-nathan.aspx

After reading both excerpts, I think I would buy Charles’ book. I have only been programming for about 5 years and I like books that explain underlying concepts as well as the new syntax and features. I feel that too often programers these days find themselves knowing lot of languages and not any concepts behind them. The in depth explanation of the application object by Charles is exacting what I like to see. Giving me code that I can get running easily won’t give me a deep understanding of these things. I think some people who have been in the field for awhile forget that there are a lot of us out there trying to work backwards from all of the abstrations that Microsoft provides for us. It’s easier for someone with more experience because they’ve already seen how this stuff was done before the built in abstraction.

Heh. The last paragraph in Scott’s post reads:

“If the visual aspect of communication wasn’t all that important Mr. Petzold, why didn’t you write a “building applications for the windows command line” book? ;)”

Incidentally, I’m reading just such a book (“Programming Windows PowerShell” by Bruce Payette, an excellent book btw) and its layout resembles Nathan’s book far more than Petzold’s…

The man himself has written another blog post about this subject:
http://www.charlespetzold.com/blog/2007/04/290143.html

Unfortunately it appears he still just doesn’t get the fundamental point that his books have terrible editing and layout. The exact same Petzold content packaged with some visual structure would make for a much better book.

That’s as good question. I haven’t read that book but the excerpt does seem to have a lot of visual “noise”. The syntax coloring may be a bit excessive.

Speaking of which, Petzold announces that his new book will have pictures but still no color, and asks to wait until it’s published before we rip it to shreds:

http://www.charlespetzold.com/blog/2007/05/021206.html

So now Nathan has decided that Jeff’s point was to… “not judge a book by its cover!” WTF?

With Eric Sink weighing in as well, and with another unrelated tangent, it’s becoming pretty clear that absolutely nobody wants to talk about Jeff’s real point… which was layout. Oh well.

Both books are great reads!

I’ve got Charles Petzold’s book and don’t see what all the fuss is about. I’m sure both books convey a lot of information. Charles’s book seems to be complete, you probably wouldn’t need to run out and buy another book to successfully use WPF.
There is lots of information, examples with explanations. Filling the book with pictures would probably double it’s thickness (and it’s thick already! 1001 pages!)
I like it.

After readng this post I’m going to run out buy Petzold’s book. I appreciate an author who puts an emphasis on content rather than format. If I want full color ADD treatment I’ll surf the web.

Charles Petzold’s book may lack a little color and design - but he’s a skilled software developer and a very thoughtful author. Every code example comes with a matching source and .sln file (there are over 150 short and helpful code projects). Charles also thought carefully about the division of the book into two halves - code and then markup - and I find it helps enormously to focus on code first - which in turn gave me a deeper understanding of what was going on in the XAML markup that followed. On Charles’ own site he says openly that he wishes the design had included more screen shots - but his book is already a 976 page tour de force and frankly I’m glad it was kept as lean and clean as it is. That said when ever I’ve really wanted to get a solid understanding of any topic I’ve usually read more than just one book - and so seeing two great books out there in two different styles can only be a good thing.

It has been years since I bought a programming book. Way back in the day I bought a number of books which was big waste of money since I found just about everything I needed on the Internet. The Internet is the best source for programming information, and it is extremely easy to locate examples and solutions to the common bug, control, ect.

Why drop around $50 for a book when you can just type your keywords in google and ask technical questions on blogs, forums, ect?

Wow-- you state the Nathan book is brilliant because “It reads like a blog and competes toe-to-toe with anything you’d find on the web.” Are you serious?

If you crave disjointed journal entries and episodic “posts” with no linear structure, why would you pick up a book in the first place?

Wait, did you pick up a book? You seem to have copied and pasted content from both books into your post. You were reading these through some online service like safari Books, weren’t you?

If you were to attend a (non-presidential) debate, would you leave if there were no Ted Koppel-esque commentator there to tell you what to make of it?

Personally, if someone said to me “Dude, thanks for writing such a brilliant book – it reads like a blog”, I would consider such a comment an insult.

Books are the medium where exposition and substance are most appropriate form of rhetoric. Bullets, color, diagrams and other fancy-pants eye candy elements are the stuff that pamphlets, propaganda and power-point presentations are made of.

The Petzold book privileges style over substance, because – well it is a book.

Please, give me well thought out sentences and narrative structure over bullets and fanciful graphics any day. Up with vegetables, down with pabulum; up with novels/literature down with comic books; up with erotica down with porn; up with the New York Times, down with USA Today; up with literacy down with aliteracy.

I just started a contract where i need to learn some WPF, i went out and bought the Petzold book. 2 of the guys that I work with told me that they both bought the book, both of them returned it. I think I have the copy.

Guess what, I’m going to return it too.

A fillion dillion years ago a friend and I decided to build our own computer using those new-fangled 16-bit processors, so we contacted Intel, Zilog, Motorola, and AMD for information on their CPUs. We received boxes of books gratis, all design books that detailed pin configuration, voltages, tolerances, etc. I tended to skim them paying close attention to the diagrams, while my friend read them cover-to-cover repeatedly. He frequently teased me about need pictures and someone to explain them.

As the years went by, I became a pilot and he specialized in software development. My friend became known for being able to see a disassembly–without symbols–and know which library routine was giving problems, because he had read the disassembly so many times previously that he just remembered it.

Perhaps this explains the underlying issue between the Nathan and Petzold books: different people see things and explore things in different ways. Some prefer an overview from 35,000 feet while others need to dig deeply into the details. An interesting question is whether this reflects a new way of gathering information (web/net/2.0/this generation/darn kids these days/etc) or simply that different people have always learned differently, but that modern technology allows for more variety in media.