Earlier this week I blogged about my latest book hitting bookstores, Teach Yourself ASP.NET 2.0 in 24 Hours. Jeff Atwood chimed in with a blog post that pokes fun at the title Teach Yourself ASP.NET 2.0 in 24 Hours. Take a moment to read his post, it's both entertaining and brings up some good points, the main ones being:
- What's with the 24 Hours bit in the title? Why not 23 Hours? Or 25 Hours? Or 1 Hour? Or 5 minutes? Or 1 SECOND?
- How in the world can a book say that you can learn ASP.NET 2.0 in 24 Hours. It takes months, years... and even then who really knows it? (Perhaps I don't get out enough, but the only two people I've ever talked to/interfaced with that I felt really knew ASP.NET to their core were Scott Guthrie and Rob Howard. Now Scott, along with Mark Anders, invented ASP.NET, and Rob was a program manager from the early days. I'm know there are more folks out there who have as deep an understanding as those two, but the point remains - very, very, very few people can truly, profoundly know a technology whose breadth is so immense.)
- Books with titles like Teach Yourself X in 24 Hours cheapen the field. To quote from Jeff's blog entry: “I humbly submit that books with titles like Teach Yourself ASP.NET 2.0 in 24 Hours cheapen our craft. Any computer book with a length of time in the title -- weeks, months, days, hours -- is doing its readers a disservice by demoting software development from a craft you spend your life practicing to a mechanical activity that can be learned in a limited time window.“
I'd like to address each of these points Jeff makes.
What's with the 24 Hours bit in the title? Why not 23 Hours? Or 25 Hours? Or 1 Hour? Or 5 minutes? Or 1 SECOND?
Sams Publishing is the publisher with the Teach Yourself X in <INSERT TIME LIMIT HERE> series. Now I am not a publisher nor was asked to sit in any meetings when deciding these series structure and semantics, but my understanding is that the time periods are chosen for logical reasons. For a 24 Hour book, each hour corresponds to a chapter in the book that, in theory, takes an hour to work through. In a 21 Days book, there are 21 chapters, and the chapters are intended to cover more content at a deeper level of detail than in a 24 Hour chapter.
The point is that there is thought and meaning behind the time period. It's an indication to the prospective buyer on the depth of the material contained within and the “difficulty level” of the text. Want a quick, scatch-the-surface introduction to a technology? Pick up a Teach Yourself X in 10 Minutes. Interested in a more detailed examination, but one still geared for beginner- to intermediate-level developers? The 24 Hours series may be better suited. And if you want a more in-depth exploration of the technology, the 21 Days book is more up your alley.
How in the world can a book say that you can learn ASP.NET 2.0 in 24 Hours
The word “learn” means different things to different people based upon their experiences and expectations. To someone who has never created an ASP.NET page in her life, when she says she wants to “learn” ASP.NET she doesn't mean, “Explain how I can create a custom membership provider to utilize my existing application's database credential store.” She means, “How do I create a Web page that can collect user input?“ and “How do I show database information on a web page?“ Ditto for people who may have had some experience with competing technologies - classic ASP, PHP, ColdFusion - but is interested to moving to ASP.NET. Ditto for junior-level ASP.NET 1.x developers.
Some of the comments left in response to Jeff's blog entry suggested that the book's title spell out what, exactly, will be learned, because it's clearly impossible to learn everything in ASP.NET 2.0 in 24 hours. This information is available. The back of the book spells out what you can expect to accomplish. “In just 24 sessions of one hour or less, you will be able to create ASP.NET web pages that interact with user input and online databases.“ It has a bulleted list of what you can expect to learn:
- Get started creating ASP.NET web pages
- Collect and store input from users visiting your website
- Display, sort, edit, and page through database data in an ASP.NET web page
- Allow visitors to insert, update, and delete data from an underlying database
- Build websites that support user accounts
The book's Introduction also includes a synopsis of the book's material and what a prospective reader can expect to learn. No where does it promise to make you an ASP.NET master ninja guru.
Furthermore, on the book's cover and spine it clearly says STARTER KIT in a font the same size as the “Teach Yourself.”
Someone who has architected and created large data-driven ASP.NET 1.x applications obviously isn't going to gain much from this book. But here's the kicker - this book ain't for them! What is a little frustrating is that they know this. You can't tell me some developer who's been around the ASP.NET block more than a few times actually says to herself, “I need to master ASP.NET 2.0. Ah, this Teach Yourself in 24 Hours ought to do the trick!” So why gripe about the title? (This provides a nice segue into the next section...........)
Books with titles like Teach Yourself ASP.NET 2.0 in 24 Hours cheapen our craft
I can see where this sentiment comes from - there's nothing more frustrating than working with some novice developer who's created his first data-driven website and now thinks he is some ASP.NET Master of the Universe. And, perhaps, books with such titles give a false sense of confidence to those who have worked through the book, allowing them to rationalize, “Well, I've put in my 24 hours and now I am an ASP.NET guru. Watch out Dino Esposito, your job will be mine shortly!”
But what I also think there's a bit of ego wrapped up in this. A top-notch developer has no doubt invested years in formal education, real-world experience, attending conferences/LUG talks/classes, and now, when he walks into the bookstores with his friends they see this book and say, “Oh, that's what you do all day? And it only takes 24 hours to learn it? Man, you have it easy.”
My take on it is thus: I like programming and really enjoy ASP.NET. I think it's neat and fun and interesting and cool how you can go from literally nothing to having a data-driven web application that can be used by people around the world in an amazingly fast amount of time. Furthermore, I want to spread that enthusiasm to folks. I want to say to those who may have never programmed, or to those who are using competing technologies, or to those who are just starting out - “Come over here and try out this ASP.NET stuff. Here, let me show you what it can do!” That's why I teach (which pays pennies compared to consulting). That's why I write (which pays better than teaching, but still is not anywhere near as lucrative as consulting). That's why I give free talks at local user groups and community-sponsored conferences here in Southern California. To get the word out!
To me, saying that titles like Teach Yourself X in 24 Hours cheapen the craft is tantamount to saying, “Our club is full. Go away.” It's not saying, “Let's welcome the newbies and get them excited about this technology.” Rather, it's saying, “Newbies are ok, but they must first realize how hard this is, how hard we've worked, and how much more we know than them.” I worry that such sentiment from the community will come across as pompousness to those very people whom we should be welcoming. (I'm not trying to imply that Jeff has a holier than thou attitude, as his humility is evidenced by various blog entries, but I think some folks do fall into this camp. And even if it's not an ego-driven attitude, it's one that can be off-putting to those entering the field.)
In closing, the Teach Yourself X in 24 Hours title may seem a bit of a laugh for an experienced ASP.NET developer who knows that ASP.NET is not something that can be “learned” in a scant 24 hours, but to those entering the field, such a title expresses the book's intent and level of detail, and I think it helps reassure an on-the-fence user that they don't need to be a computer whiz to get started with ASP.NET.