What Kind of Books do You Want?
ctrimble asks: "I'm the acquisitions editor for a technical publishing company (not the one with the animals, but we have had six of our books reviewed favourably, here on Slashdot) and part of my job is to determine what books my company should publish. This consists, mainly, of me sitting in my apartment eating peanut butter sandwiches, reading Slashdot,
and writing perl scripts that generate titles in a Madlibs type fashion: "Hacking Ruby for Midgets" (forthcoming in July). Unfortunately, there's a bit of an impedance mismatch between my methodology and filling the needs of the programming community. Market research is tough to do in tech books since you need to forcast about a year in advance. So, let me pose the question to you -- what kind of books do you want? What spots do you see as needing to be filled? For that matter, do you even want dead-tree books, or are eBooks and/or online documentation sufficient?"
Anything that's well written is better than anything that's not, no matter what languages they cover and what ones you're using. As long as you have a decent function reference for your language, the rest is all programming theory anyway.
Nope, no sig
For you comment on us wanting dead tree books, I vote yes. I like being able to make notes in the margins, highlight, etc., and taking a book places is usually easier than a laptop or pc.
On a side note, ancedotes are good. Most topics are usually pretty dry, so adding in a little humor can make the books more fun.
thanks
Sent from your iPad.
There's something comforting in having an open book next to the keyboard. I'd love a book on programming for the upcoming KDE3 and/or a book on Qt3.
I would like something like a text book: 50 java problems. Each chapter a short problem that requires some java hacking to do, and then at the end each problem coded out. So you could hack through it and then read good reference code about a problem with which your are familiar.
I use java as an example, but I really would like it in all languages.
I don't know about anyone else, but I would really like to see a 1 or 2 volume set on the various components of the jakarta project and how they fit together, especially in a practical enterprise.
I'm getting tired of having to choose between a $75 book with 1200 pages and a $70 book with 1150 pages. Whatever happened to concise text? Doesn't anyone at the publisher actually try to carry these monsters around any more? Let's get back to basics and not have any more of these 2 kilogram wonders with 18 faces on the cover....
I love the dead tree editions. Online manuals (the PHP manual is the best example i've seen) are fantastic, but only when i'm sitting at the computer online.
There are lots of times when i just want to see some good examples of code use, and that can be really hard to find online.
plus, i don't have a network connection in the bathroom...
And I know it's not easy. First off, Dead Tree is good. sometimes just a break for the eyes, sometimes just the security of knowing it won't go down.
What I want is the Linux Application Guide. Basically, a book that says "Here are the major Word Processors. These are the key features of each. We suggest you decide based on whether you need to do this, that or the other." Ditto browsers, Desktops, mail clients, DVD players, Instant Messaging, p2p.
Basically, I use Linux. I use KDE because I tried it and I like it. pine because I tried it and liked it. Ditto Konq, Kword, mplayer, and others. They may or may not be the best there is. They're just the first I tried that was good enough. So... help me pick my applications.
I know you don't write the books... but I've been waiting for that book, and haven't heard anything about it. I know there are problems -- time frame, distro, etc. Just try to make it distro-independent, maybe list easy distros for each app. Also, it would need a brief bit about configuration. I'm thinking two to three pages per app plus a couple screen shots. Order of five to ten apps in less than a dozen categories.
Short, specific, inexpensive, and if it claims to teach me anything in 24 hours, 1 week, 1 month, or even in 10 easy steps I'm not going to buy it.
If it claims to be a "Bible". I'm not going to buy it.
If it has source code it had better come with a CD or a link to a well-designed and fast web site.
If it doesn't have source code, I'd rather save $5 and not get a CD instead of getting a CD with demo software that is already 6 monthes out-of-date by the time the book is published.
Also, any book that begins with a "history of the computer" introduction goes back on the shelf down at Borders.
Waltz, nymph, for quick jigs vex Bud.
I've got to add my voice to the dead-tree lobby; when chilling on the couch of an evening, I tend not to huddle up with my palm pilot. A chunky tome is just the thing.
As for content: there's only one thing worse than humourless books, it's books with badly-written, forced humour. Especially if the book is a reference book; something that seems quite funny the first time really gets on your tits when you've to flick through the chapter for the nth time. So no jokes in chapters on regular expressions, please.
Other than that: the real-life example is far too underutilised, in my experience. How I Configured Apache And Why My httpd.conf Looks Like This and Leaves These Options Out is a trifle unwieldy for a title, but it'd be a very handy book to have.
I am an avid consumer of tech books. I buy about 1 a month or more, at $50+ a pop.
Whatever subject I am currently interested in gets my money. Lately it's been OpenGL and game programming (especially math). In the last 3 months I've purchased or recieved for X-mas (by request):
OpenGL Game Programming
Programming Linux Games
3D Math For Game Programmers
Physics For Game Programmers
Tk/TCL For Real Programmers
3D Game Engine Design
DNS and BIND
SSH (the O'Reilly one)
Game Programming Gems 2
and a few more.
So, what am I looking for?
It depends what I am interested in today. Right now I need a really good C++ STL reference book.
I also need a math primer. I haven't thought about math since my aborted attempt at college 12 years ago. While I did get an A in Calculus, that was 12 years ago and I remember nothing. The 3D Math book I mentioned above pretty much assumes you already know Calc.
It seems to me that there are alot of beginning programming books, especially about game design and C++, but few advanced books.
Also, there are few game AI books out there, but I see on Amazon that there are 2 promising titles to be released in the next few months.
One of my favorite programming books of all time is The Perl Cookbook. Now, I make my living programming Perl on Linux, and this book gets cracked open by me at least once a week. I've even seem comments in other people's code that said "If you don't understand this next bit, see the Cookbook page xxx". A Cookbook type thing for C++ would really be cool.
Alright. Lunchtime. Off to Fry's.
-geekd
I think that paper books are the way to go. Screen real-estate is always at a premium, especially when programming. And no one would want to clutter that with yet-another-window.
With that said, it's also useful to make the content available online if possible, as an abridged reference if nothing else. It's really handy for when you don't have the book handy and just want to look up "hey, how did they do that trick again?"
As for subjects I'd like to see? I prefer books that don't neccesarily focus on a single library (everything you ever needed to know about gtk!). While useful as reference manuals, the same thing is generally online. Focus instead on using some combination of libraries to come up with a useful working environment for whatever it is you're aiming for, be that quick apps, huge apps, games, or what have you.
Random and weird software I've written.
Personally, I would really like to see a J2EE book that isn't written like a doctoral thesis nor like a primer for manager's who don't code. The ideal J2EE book would have install guides for setting up Tomcat, Jboss and Postgresql. These are tools anyone can freely obtain and use. The books I've seen thus far have left me dizzy, not entirely sure how to apply the knowledge, and I've been programming in Java for over 7 years. Go figure?
-- Solaris Central - http://w
Why does it have to be an either-or?
The advantages of a book are:
The advantages of an e-book are:
The advantages of online material are:
Can't these all just "get along"???
Sun's J2SDK 1.4 JavaDoc is my favorite piece of documentation. It is an indexed, cross-referenced API reference covering every standard class. It has detailed method specifications and in most cases useful and relevant examples of what data is excepted by the methods and what output will be produced.
A dead-tree version would be great, provided it was full of accurate cross-indexes (pages numbers, etc). I would love something like this for C++.
The php.net documentation isn't half bad either.
Lastly, my one major gripe about books and references in general is their lack of examples, or the over-complication of examples. For instance, Sun's examples for threading all involve Swing, which accounts for 90% of the code. If you don't understand Swing, you're lost. A lot of little, simple, relevant examples and an explanation of what's happening would be great.
And this applies to more than just programming languages. I would have killed for something like this when I was learning Bind and OpenLDAP.
Make it comprehensive--full disclosure of APIs down to protected fields and methods, and examples, examples, examples. Make stuff easy to find, and make it worthwhile, and you've got my money.
Given the current controversy with 'digital rights management' and the stability, availability, and durability of various electronic media, I much prefer hardcopy paper books to ebooks. Paper is more convenient, can be photocopied when I need a snippet from a manual, and does not depend on expensive hardware, spotty power supplies, or the largess of a publishing company that wants me to pay for each time I read the book.
As for which books I'll be looking for, that varies a lot. My current interest list includes:
Is any of this helpful?
"values of beta will give rise to dom!"
Maybe it's just me, but my biggest complaint is most computer books out there are concentrating on how to use the newest coolest language instead of the underlying principles. I'd rather have pseudo-code cover how to pattern a peer-to-peer network, an mp3 codec, a nearest word match spell checker, a regular expression engine, or a typical Civ-like AI. These days I hunger for books to explain how the hell Divx works without trudging me with specifics like how to fashion an if statement in Java or an STL in C++. I want material with reasonable amounts of math and code snippets, not a rehashed programming lesson.
One of these days I'll write that encyclopedia.
-- Making computers see, hear, and think... http://www.componica.com/
That attitude does not inspire my confidence in the content of the books.
Also useful would be requiring that someone (not the author) actually follow the instructions in a book, to insure that the instructions actually lead to the correct result. I'm just now reading a book where it's clear that this was not done, because the instructions leave out important information; which information I then had to acquire through research, in order to reach the desired result. Very annoying.
mp
"The secret to strong security: less reliance on secrets." -- Whitfield Diffie
I'm up to my ears with books detailing how to write in a specific language. Structure and syntax is easy.. you learn how to use an if statement in one language, you know how they work in all languages. API's are about the same, references documenting joe random library are a dime a dozen.
My problem whenever I involve myself with coding something is getting knowledge about all the other vital pieces to programming, various algorithms, methods of structuring a program, stuff like that.
See, for those kids who managed to push themselves through college all think this is easy stuff.. linked lists, random numbers, event based programming, hashing, and so on (have a firm grasp of these concepts, just using them as examples). That's what they paid to go to school for. But for the rest of us who're trying to cut a living and can't easily do the school thing anymore, a "teach yourself" book or books educating the more abstract parts of programming would be a major help.
Some of this is documented, slightly, on the web or in existing open sourced projects. But most of it reads like class notes at best, and I have yet to find good books that go over these sorts of things. The information is there, but it's not presented in a manner that's easy to absorb.
As an example, oreilly did a book a while back called 'Practical Programming in C'. That was a step in the right direction. It was an easy read, but taught a lot of really useful C concepts that most people take for granted. As far as it went, it was immensely valuable to me both as a reference and a tutor.
Basically, there's a niche between API references and language syntax books that seems horribly unfilled. I'd buy books immediatley if they seemed to fall in that category.
I think you just nailed what I've always wanted but didn't know about. That is just pure genius. Wish I was moderator today, I'd give you 2 points on this one...
First of all: God-yes we want dead trees!
There's a famous saying "you can't grep dead trees", but it's not really true. A good index will have every single word that's not one of the few thousand most common glue words in English listed with all references, in order of appropriateness. Basically, the only real need I've ever had for grepping a dead tree is when I remember a piece of humor or funny wording in a definition, example, etc., and would like to see it again.
Otherwise, if I've read an O'Reilly book (or most others) once, I can find any spot of it again, even without a table of contents.
And with a table of contents, man, oh man, does my productivity skyrocket.
Now to answer your bigger question:
What spots do you see as needing to be filled?
This is a difficult question, because as you know, there's an animal out there for anythign you want to do.
Some time ago I was learning Perl from Programming Perl by Larry Wall (et al.) and was about to implement a crude ascii text database (one entry per line) into a data.txt when I stopped myself, did two and a half minutes of googling, and soon had Programming the Perl DBI on the way to my house from amazon.com.
After a lot of fun messing around, I got MySQL interfaced with three lines (not literally) of Perl code and painlessly had a nice, robust "database" representing what I could have coded in ten minutes (not elegantly) using little more than opening a file. But look, no race conditions!
Anyway, the moral of this story is: If you want to cover an existing technology (even something as small as the DBI in Perl!), and O'Reilly has a book out, don't. Period. And if O'Reilly doestn't have a book out, you need to ask yourself: "why not?"
Because O'Reilly covers technologies. And they cover them well.
Sorry, I will not buy from you what I can get elsewhere, better. And I have reason to believe O'Reilly will be better.
I bought the Perl Blackbook, but only because it had information on CGI with respect to Perl that O'Reilly didn't. The moral: mix and cater.
If I want to code up the look of a piece of architecture without CAD, to show someone what it might look like from the inside, then the easiest, cheapest, fastest way to do this is with the Quake engine. Period. There are hundreds of people who use it to design "levels" (or however, I'm not into that) with whatever they want to show/model, etc. Sure, there aren't real physics. The software won't tell you whether that kind of building can really sustain itself. But it looks damn pretty.
In other words: find a need and fill it. If you "ask slashdot", you will get 50 intelligent responses serving 50 different needs. Each one of these responses will show you what someone would buy if you wrote a book for them about that. But what you really want to know is how many other people will buy it.
Solution? Troll the newsgroups.
I will pay you money to show me how to painlessly set up an external USB modem under Linux. Even if it's just one or two models that you can do that with.
This includes recompiling the kernel with the proper package (some extra usb standard), but I've never bothered to see how I can get a recompiled kernel to work with Red Hat, which is what I use, and which uses it's own special kernels, packages, whatever, point is it didn't boot right with the recompiled kernel. I fscked around a bit, asked a few newsgroup questions, and it didn't work out.
There are lots of repetitive newsgroup questions that begin "I read the FAQ, but...".
Take a survey (I mean, manually count). Whatever of these is most popular will be your ticket to gold.
People will PAY to be told in a clearer, better fashion what the FAQ doesn't allow them to understand easily.
Steps to gold:
Hope this helps.
~
Support the AC initiative. Copy this message when posting insightfully or wittily as AC.
O'Reilly books are so loved. They're concise. Although the Python Libraries book is a monster. May be their thickest ever.
Best Slashdot Co
Dead Tree books. Possibly in smaller volumes, at reasonable prices. I'm getting annoyed at having to shell out $50 for a book every week, for a huge linux bible sized book. I want smaller books in tighter topics. One of the reasons I've always liked the animal covers; they're small, to the topic, and inexpensive.
I'd also like to see more in the way of method books, rather than subject books. ie, something that teaches how to program rather than how to program in a specific language. possibly case books, that show how to get around certain problems. I'd like to see books less revolved around programs, and more to the topic of methods and strategies. It might not require a person to buy a new $50 book every week for every different program, but it will make a better book.
Meh
Ebooks suck, I do not like them, especially when I'm working on a downed server and have 4 Terminal.app's open, and I have to find a spot for Acrobat to fit.
I'd like to see:
- More books with the flexible bindings (ala Oreilly). Books that don't lay flat suck.
- More "Cookbook" style books, as long as they are truly thorough and diverse (see Perl Cookbook for a good example).
Essentially, system engineers like to see short code snippets of how to accomplish odd tasks in a quick, easy manner. Again, when stuff's broken, or data needs to be pulled pronto, I'm not going to wade through man pages, etc.
- I don't favor the Nutshell style books, they're usually poorly organized and don't comprise enough of the "right" information.
- More quality assurance. Too many books these days are rushed out to market way too quickly. I'd rather buy a book that's good quality, rather than "quickest out". Most of us customers read Amazon.com reviews to get an idea of what books to buy on a particular subject. Keep that in mind.
- Topics I'd like to see? more advanced-level BSD stuff, more kernel hacking stuff, LDAP, you can never have too many Perl books. Think about stuff your target audience would love to see. Oreilly is great for doing this, see: "CGI Programming with Perl", "Perl for System Administration", etc
I agree with the sentiment of spiral bound books and smaller sizes: I carry a backpack full of Perl books with me to my job every day (these things are worth their weight in PLATINUM). And I implicitly trust any book coming from the "Animal on the Cover" people. The biggest reason I buy these books is for their reference and example style, though I occasionally dig in for some theory. I've been starting to move more towards Linux System Programming and would love to buy a collection of books detailing the Linux APIs and other various libraries [perhaps 1 spiral bound for each library?]. Treeware is the way to go when it comes to reference materials: good anywhere you go, doesn't require electricity (unless you read in the dark frequently, like most geeks), great for note-taking and easy on the eyes (am I the only one who gets headaches reading ebooks?).
These days, I find myself avoiding The Animal Books, because they simply aren't hard-core enough for me.
I tend to buy graduate-level textbooks focussing on difficult topics. Tired of the commodity books about commodity topics.
Plus, I hate wasting money and trees on books that include 150 pages of 'API Reference'. I have a web-browser and the tarball of javadocs, I don't need a printed version of them, or any other API, for that matter.
Me too.
This is an excellent suggetion and I hope Cliff pays attention to this one and can have some influence here. Regular soft bound books that I actually use fall apart after awhile. Sure, a few pages might get ripped out of a very roughly used spiral book, especially if the covers are not heavy enough (please have covers of sufficiet weight not to be ripped off when being yanked out of backpack) but that is nothing like having the binding of the book disintegrate. Also, being able to have book lie flat is a big plus.
I've got a site for you:
:)
www.fastseduction.com
also there's a newsletter that's pretty good.
www.geocities.com/cliff604/CliffsList.html
Try it! It works
Basically the whole thing with women is to realize that they have sexual desires too. To sleep with a woman, all you have to do is find out what she wants and figure out a way to give her what she needs, in a way that makes her feel comfortable.
You accomplish this with framing.
Seduction is an art but it can be learned.
Laugh at my ignorance while I learn Rails - a Real ne
GCC Internals: How it works/How to modify it. - Have you ever looked at this heaping mess of code? I would love to play around with it, but the learning curve is too high to just jump in.
Linux/Unix Lowlevel Programming: Ok there are bunchs of crappy assembly programming books out there... by chapter 12 they have covered what a register is. I don't want the most basic stuff I wanna know exactly how the linker works, I wanna know how stack frames are setup. How ELF binaries are loaded. What assembly code is needed to bind it all together. Sure I can piece most of it together from web sites, the kernel and other sites, but it is hard to put it all together.
Programming KDE 3: QT and KDE are awsome, I do a little bit of development with QT/KDE now, but there is just some documentation that cannot be found...
Architectures of Popular Linux Apps: A book that does an overview of the architectures behind popular linux applications, with a little bit of discussion about thier architecture and implementation, maybe mixed with a little theroy. For instance an chapter on apache, X11, SSH, postfix, php, konqueror, mozilla... This would be really good at helping linux developers dive into existing projects. You could even solicit open-source authors to provide an overview of thier project architecture and ask them to discuss how what thier biggest challenges where, why the did so and so.. This could really boost participation in certain projects.
Using GNU Development Tools: A book that details how to use GDB, gprof, gcov, ld, ar, and etc. effectively with all the options and do-dads. Maybe cover other tools like DDD, Electric Fence, etc.
Oh yeah! These need to be in paper form! Screw electronic form, it sucks to read.
celer
Until my company switched to Linux/Apache for our web and application server needs, I was forced to run Win2k/IIS.
While it runs just fine and dandy, quite a bit of the documentation is geared toward users running Linux/Apache/MySQL
It was a very pleasant experience to see, down below the 'approved' text, a series of users who had already solved problems of how to get PHP to talk to MS SQL over ODBC, which dll's you needed, how to edit your php.ini so that it works *just* right, etc...
Shared user annotation is a very wonderful thing for technical manuals of any kind. All online resources should at least consider doing things like PHP.Net has done.
The next Slashdot story will be ready soon, but subscribers can beat the rush and slashdot the links early!
O'Reilly makes the kinds of books I want. I don't mean to say that I only want O'Reilly books, because there are a lot of topics they don't cover, like software engineering, general theory, etc. I also don't mean to say that a publisher is the determining factor of a good book, but generally O'Reilly has a reputation for publishing good ones. What I mean to say is that there are some factors that generally make the books with the animals good:
Generally, these factors show that O'Reilly knows their audience. A single book won't give a programmer everything one can know about the subject, but it will give a programmer most of what one needs to know and a good foundation to learn more.
I love Dead tree books. I like to read programming books on a desk where it doesn't hurt my eyes. I can look things up and read -- not only reference material -- but read about things I want to read about. I look at monitors 8 hrs a day.. I certaintly don't want to look at any more monitors!
For the record, O'Reilley does one heck of a job,
and they are the player to beat. The Perl series
alone is outstanding.
Hear! Hear! Paper is:
Electronic formats are okay when you need to provide documentation to a whole bunch of people but most people I know still like having a paper copy and cite the reasons above as why.
CUR ALLOC 20195.....5804M
How about some more FreeBSD books. I still can't quite believe we have so few.
:)
Also, MORE LDAP BOOKS PLEASE.
More CISSP options would be great too.
I'd like to see more books like "OS/400 for UNIX Admins", "VMS for UNIX Admins", "AIX for VMS Admins". Someone suggested Linux for NT users, which is fine, but what about those of us who know big systems who need to know other big systems in a very short amount of time.
On the same vein, development: "COBOL for C++ programmers", "Flat File Database Design for Relational Database Developers", "Perl for Visual Basic Programmers". Something that presents to similar ideas (Programming) that have very different approaches (COBOL uses Verbs and Paragraphs where C++ users functions and reserved words) and presents them in a way the reader can understand.
Also, Practical Approaches to setting up a system. We just got Sun V880s, and we've had a bunch of Netras and smaller systems, we've used Veritas Volume Manager before, and we've setup big Alpha systems before, but we've never setup a big Sun. It'd be nice to pick up a book that walked through best practices of how to setup a system from beginning to end in all aspects, not just Alternate Pathing or just disk quotas or just security. A big picture book, with big pictures.
"All I ever wanted was to see Larry Wall give Bill Gates a Perl necklace."
http://www.eisenschmidt.org/jweisen
The 1500 page reference tome is fine. I don't carry those around, they sit on my shelf and look pretty. However, I only buy those that include an e-book version so I can use it on laptop (copied to hard drive, not carry around the cdrom); it's much easier to do a search for something in the e-book than to dig through the tome.
As for "learning" books, if it has to be 1200 pages, I'd rather it was broken up into smaller books in a boxed set. That way I only have to carry around a 1lb book instead of a 8lb one.
You don't need to include pictures of everything- we're smart enough that if we're not at a computer and we can't picture it in our heads, we'll come back to it when we are near a computer.
And those "HINTS", "SECRETS", "WARNINGS"- yeah, yeah, they're important, but we're not idiots- you don't need to waste so much space with fancy borders and colors and icons so it attracts our attention.
-- If god wanted me to have a sig, he'd have given me a sense of humor.
I'd like to see a book about using OCaml, or Lisp, or Scheme, or some other functional language with a free implementation, to address real-world programming problems. (OCaml would be nice; it's widely recognized as a great language, but there's no English-language text.)
While the audience may be limited, I think there's a screaming need for such a book within that audience; almost all existing FP texts are way off in theory-land, and most predate the huge boom of the web, which is a natural environment for functional languages.
An added benefit for a publisher is that this particular technology landscape changes slowly, so the book will have a long shelf life, and is at no risk of being obsolete before it's released.
What I'd like is a series of books about computer languages that do not try to teach me programming and do not assume I am a moron. Oh yes, and are not bulky references to every single function call possible.
When I pick a new language (especially if it's just YAPL -- Yet Another Procedural Language -- of the C/C++/Perl/Java/etc. variety) I don't want to wade through pages and pages explaing basics of syntax -- I can pick it up quicky on my own. I also don't want to have if..then..else construct explained to me for the nth time, unless there is something fancy about it.
What I want is a conscise explanation of the mode of thinking that the language was designed to go with. I want to know which idioms people who write in that language use, and why *this* way of doing things is cooler/neater/a win. I want to get a feel for the language.
For example, in Perl the camel book, besides reference stuff, provides a lot of advice and examples of Ways Things Are Usually Done In Perl, along with explanations or at least hints why this is generally accepted to be The Right Thing. The camel book (and writings by Larry Wall in general) provide a wonderful feel for the flavor of Perl and why it's not just interpreted C with a loose syntax (we'll leave the fine distinction between Perl and line noise for another time).
I've been looking for a similar book about Java with utter lack of success. Either it's introduction to programming for novices, or a libraries' reference guide. The closest I've found was a book by Bruce Eckel -- Thinking in Java, I think it was called -- but even that wasn't all that good.
Lisp people understand perfectly that thinking while coding in Lisp is radically different from thinking while coding in C/C++/etc. I want these differences in thinking, in flavor, in idiom, to be shown to me for many different languages, starting from Java and Python and Eiffel, and ending with Haskell and Oberon and Intercal.
Kaa
Kaa's Law: In any sufficiently large group of people most are idiots.
Hear hear! Both excellent books!
:-) (Big book...)
_The Pragmatic Programmer_ by Andrew Hunt. Lots of "well, duh" stuff after you've been programming for several years and have the scars to prove it. None of the stuff in this book was covered in my CS program. I wish I could force my younger co-workers to read AND FOLLOW this book.
I'm up to my eyes in beginner's and slightly beyond beginner's books on a myriad of subjects. I'd like to see more advanced PRACTICAL (no theory) software engineering books like the above.
How about _Massive Scale Server Design_; i.e., how to design and code scalable server software (I don't have time to go through Apache's source and learn the hard way).
_Super Advanced C Tricks_ How to do interesting and completely useful things in the world's most portable assembly language.
In particular I'd like a book on everything I don't know.
Personally I am very sick of all the programming books that treat me like an idiot! And NO I'm not just talking about "Complete Idiot's Guide" stuff.
Say for instance I buy a beginners guide to Java. The second or third chapter will be about loops, and instead of just explaining the syntax of a Java loop, it spends an ENTIRE chapter explaining what a loop is, and the difference between an UNTIL loop and a WHILE loop.
Give be a break!
Just because I don't know Java doesn't mean that I don't understand basic programming conventions. Isn't it safe to assume that if a person is going to buy a huge "bible" of a book, that they know at least one other language!
The best example of what I want to see more of in books is in "PHP and MySQL" by sams publishing. Not only does it NOT assume that you are an idiot, the CD included all the code used in the book, AND the entire book in PDF.
this is perfect! It saves me so much time when I am trying to look something up because if I forget how to make an array in PHP, if I go to the array chapter, I don't have to sift through 20 pages of crap explaining to me what an array is, the first page of the chapter is a brief explanation of an array, and the second page shows the syntax. I love it! AND I can keep the PDA file around for quick reference in case I don't have the book with me!
I hope more books will follow that example.
Dead tree.
... are you teaching a principle or selling a $600 program?
Show generic examples and possible / probable elaborations. Show reasoning and alternatives. Don't fudge.
Be very careful about both ordinary proofreading and technical accuracy. Don't skimp in either department. Best is to have a techie work in a team with the grammarian. And then have the techies work in teams, too. And then have a different grammarian go back over it and unobfuscate it. Simple words, short sentences wherever possible. NO unidentified TLA's or FLA's less than 10 years old.
Put the most important code in the book.
Keep code snippets short and highlight the point being illustrated with easy to see color.
Make the book lay flat. Comb binding is acceptable. Spiral is acceptable. Perfect binding is acceptable Cheap glue jobs don't cut it. I can't wrestle the book and type at the same time.
Use a font face that is EASY TO READ when showing code snippets. Don't make me guess if punctuation is a period/comma, colon/semi-colon, single-quote/back-tick/double-quote. Make certain I can tell the difference between {Il1i}, eh? I don't always have a loupe with me.
Do not rely on examples using advanced programs (such as Photoshop or Quark) to teach entry level subjects. If I see one more entry level book explaining how to use a $600 program to solve a design problem that HUNDREDS of free, shareware and open-source programs can solve, I think I am going to scream.
Make up your mind
You are going to charge me $40 and up. Last year I bought over $300 worth of tech books. Two of them get near-daily use. A couple others get occaisional use. The rest are shelf decoration. If you want your book read, don't skimp. If you want me to prefer your book on a topic over another publisher's offering, don't skimp. Do everything you can to make that book worth $40 or more. To me.
How about good books for very technical people who know pretty much diddly-squat about a topic, yet are not "dummies" books written for the average AOL user who doesn't know that the scroll wheel is also a middle mouse button? I constantly end up with computer books about a topic that make far too many unncessary references to semi-related stuff, and are written in a way that makes things unclear until having read the details about a topic multiple times.
A good example is O'Reilly's "Learning Python" by Lutz and Ascher. The text is good, but often gets off track with references to C, or assuming that the reader knows about object oriented programming, dragging down people new to OO coding and slowing the read. Keep the extra crap in obvious sidebars.
Also, please have the books looked over for errors and stupidity. A while back I picked up a book on Perl, in the interests of kindness I will not list the title. Many of the example Perl scripts found in the first chapters failed to execute properly, so I decided to check out the included CD which contained all the example code. Many filenames and directories on the CD included spaces; sort of moronic for a book intended for UNIX users (And yes, the examples on CD failed to execute properly, even with the supplied version of Perl that I compiled/installed.). This is not the only book I have seen like this.
As for paper/ebooks, offer the book online in PDF format at a discount, and include a copy of the book on CD-ROM with the paper copy. My favorite computer book of all time is "The UNIX System Administration Handbook." by Evi Nemeth and others. Unfortunately, it comes only in a paperback edition, and I had to start leaving my copy on the shelf above my desk because after falling in love with the book and hauling all over the place, it started falling apart. A heavy duty hardbound edition with a CDROM version supplied would have been such a better option.
Anyway, if you got this far, hope you enjoyed my $.02.
I swear, the technical publishing community must assume that programmers were born with C++ knowledge, because every book in creation assumes that one has that.
Two decades ago, computer user and programmer were pretty much synonmous. But today, things are different. Believe it or not, there are a lot newbies that are just now getting interested in software development after being computer users for quite a while. Looking for a book on Java programming that assumes no programming experience? You can probably find it, but it's not exactly easy.
Want a book to learn Mac OS X Cocoa programming? You better hope you have C++ or Java experience, otherwise you're simply out of luck. There are no entry-level Cocoa books. Same for WebObjects. Developers themselves aren't at all concerned about this, of course. They expect everyone to follow the same path they did.
Believe it or not, a lot of people do not want to read a *full* book before even cracking the book actually pertains to Mac OS X development. Additionally, not everyone is interested in become career software developers. They may just want to try it out as a hobby first. I hear from all sorts of people that just got Mac OS X and want to learn how to use those free development tools that Apple provides. There's no well-suited path for that. Why should you have to learn all sorts of general C theory when all you want to do is learn the stuff that pertains to Mac OS X development? This turns potential developers off, which is sad.
The Visual QuickStart series by Peachpit Press is the only series that I have seen that is consistently good at addressing this problem. As far as I can tell, the series is rapidly expanding.
Here's a crazy idea: how about a book that teaches you Java or C with the intention of writing Mac OS X apps? How about a Java servlet book that doesn't assume you're transitioning from C++? How about making this books readible and more practical than theory-oriented?
Lower the barrier to entry.
- Scott
Scott Stevenson
Tree House Ideas
No, that should get you a rather large set back. Heck, grab a phone directory for many sororities and that would work. The hardpart is adding a third vairable that most geeks want intelligence != null.
- Landscape like New Riders "... Magic" books (lay-flat with no special binding)
- non-moron step by step like Coriolis Visual Black books. (Also 2 colour printing good, 4 colour bad).
- Split style like Peachpit VQS, but not split between images and text, but between reference (outer half) and relevant cookbook "recipes" (gutter half).
More books about wireless networking. Building Wireless Community Networks was great, but it didn't have enough meat, and I was surprised how thin it was. It was more a manifesto, not that that is bad, au contraire.Why not publish the ultimate recursive manual, "How to Write Documentation (That is Interesting to Read, Informative and Does Not Insult Intelligence)"?
"Use Your Old Hardware" - what you really can do with old pc's, macs, routers, switches, printers etc. With honest advice of when to give it to a deserving cause or just chuck it. Lots of DLable binaries on the website for this book.
And ebooks? Wait till the hardware is
- waterproof to 50m
- OLED 1200 dpi display
- 100 Gb storage
- battery life is a week even with 50 hours 'reading' time
- and is given away like mobile phones when you sign up for a contract (think book clubs).
Final random thought - since many computer books have such a short shelf life, can you make them cheaper by using magazine printers? I will never touch my books on Photoshop 3 or Dreamweaver 2 ever again. But even if I did I have many old computer magazines that are as old, refered to more often, and are still in 'working order'. Cheaper texts for us, and cheaper returns for you.Personally, it's not that hard to find documentation on how to use a particular function/feature of a language or OS, but I think we need more books on Philosophy/Theory as well as some application so that we can get a broader look on how the languages/OS's actually work.
HIGHLY RECOMMENDED BOOKS TO FOLLOW:
--Rebel Code: by Glen Moody [Story of GNU]
--Any book by W. Richard Stevens is a must have!!!
--The Art of Computer Programming: by Donald Knuth
The book Rebel Code teaches me about how Richard Stallman started the whole GNU Project. This greatly inspires me and gives me ideas for my own project. Not to mention that it also talks about how Andrew Tanenbaum wrote Minix OS and a book that came along with it called Operating Systems: Design and Implementation,and how Linus Torvalds ended up taking a class using Minix, which greatly influenced his creation of Linux.
Donald Knuth's book (enough said), goes very far in depth in algorithm efficiency and after reading that, you'll be writing your own STL classes, and creating new data structures yet to be invented.
Richard Stevens writes the best Unix books I've ever seen in my life, I'm sure you know him.
UNIX Network Programming, Advanced Programming in the UNIX Environment, etc.
I recommend you take a look at the way these guys developed books.
python >>>
reduce(lambda x,y:x+y,map(lambda x:chr(ord(x)^42),tuple('zS^BED\nX_FOY\x0b')))
For the last ten years or so, I've rarely worked on a system that was monolithic. The typical modern project, in my world at least, looks like several classic client-server systems tangled together.
Some layers that we built in the current one:
While I don't expect any book to deal with our architecture, I would like a really solid book that encompasses the wit and wisdom of building this kind of thing, in a repeatable fashion. I'm thinking of something like the patterns model, but applied to the making science out of the art of knowing where the right place to put a function is. Considerations like elegance and efficiency, and so on.
Is it unrealistic to think of a book on this? Are there no general principles learned yet?
Reference: There aren't enough tech books that are pure (or fairly pure) references. The O'Reilly POSIX Programmer's Guide is a great example of a good reference. (In fact, the non-reference portions are, IMHO, so shallow that they could be removed without the book losing any value.)
Complete Reference Books: I've got a great little C/C++ programmer's reference, but it doesn't tell me what include file I need to get the thing I just looked up. This hinders its usefulness greatly.
Complex examples: Simple examples can be good, but often a simple example leaves you with no clue how to implement the more complex real-world task before you.
Paper: I may have two monitors, but I still don't have enough screen real estate. Paper has a lot going for it.
Electronic: The value of a reference book increases by an order of magnitude if it is paper and electronic. But the electronic version can't have any copy protection. (That's DRM for the younger generation.) I need to be able to slice and dice the content and build a custom search & extract program. A copy protected ebook is about as useful to me as an x86 binary on an Apple ][.