Well, maybe not a total waste. However, I believe two things:
On the other hand, the vast majority of programmers I have known/hired would make huge gains by reading and understanding TheArtOfComputerProgramming, for example.
Depends on the person and the book. I've learned a lot from reading computer books. Even if you don't directly use the information in the book, you can still learn from it. For example, early in my education, I subscribed to the Creative Computing magazine, and had books with source code for computer games. The source was often very poorly written, but it gave me lots of ideas. -- JeffGrigg
Definitely depends on the book. I have found reading books about computing very beneficial to the way I do my job, but I'd rather learn about programming (e.g. learning a new language) by doing. -- MattBiddulph
Some computer "classics" may not be literature, but are certainly worth reading.
The thinner the book the better.
Well,
Yeah. Those guys that haven't yet learned that ProgrammingIsMoreThanCoding.
In fact most such folks can not even code properly, and, sadly, actively resist any suggestions to improve their code, especially books they might read. -- RobertField
And I am tired of people who even don't read the language description of the programming language they pretend to code in (recently the Java NewsGroups seem to be invaded by such people). People who don't manage to read an API documentation, not talking about a tutorial or introduction to an API.
Sounds like CowboyCoding.
The best engineers I meet are always reading technical books and articles. The worst engineers I know never read anything technical to improve their skill set, they just hack, hack all the time.
By way of comparison: the best hackers I know spend most (but never all) of their time a) coding or b) reading technical (often journals) info. They produce readable, maintainable code (that sometimes stretches your mind to read). They produce 10 times as much of it as most people. The worst hackers I know are mostly "engineers" who either get sloppy or think they can emulate the first group - without understanding what it is that they do.
I read books on hypertext, (online) media philosophy, InformationVisualization, politics, culture, and business management. They are work-related, but they aren't especially programming. But that's because I don't program as much as I used to. If you don't keep your ReadingDeficit above zero, you fall behind. Heck, read a novel. Read something. -- SunirShah
I am surprised that reading code has not been mentioned so far. Find some done by a better programmer (they are easy to find) and learn by reading and understanding it.
I agree. I think people should ReadGreatPrograms.
So where does that put "TheTexBook"?
Do you guys actually know people who read more than program? I don't think I've met a single such person, and I'd argue that more ProgrammersShouldReadProgrammingBooks?. While it's true that you must program to learn to program, most people seem to overdo it - you also need to consider what others have come up with. Personally, I remember the following nameless books (the names don't matter - there are many on each theme):
I own a small library of computer-related books. And that doesn't count the ones I've gotten rid of over time. I've read just about all of them. (...and keep trying to find the time to finish the latest ones I've picked up! ;-)
I heard that the average number of programming books programmers in the industry have read (outside school) is less than one.
I like to say that I'm the cause of that problem: I bought all of 'em, so there aren't any left. ;-> -- JeffGrigg
I hope this doesn't sound like a shameless plug, but I've never found an O'Reilly book to be a waste of time. -- DavidBrantley
Shameless; completely shameless. Me too! ;-> -- JeffGrigg
Unfortunately, I have. It was a disconcerting experience. -- WillSargent
I've found that most mainstream "teach yourself X technology" books have become less than useful since the web. I never bought another Java book after I got a job programming job and learned to read JavaDoc. For that matter, I don't think I ever bought another programming book after that, instead picking up PhpHypertextProcessor, PythonLanguage, RubyLanguage, ErlangLanguage, HaskellLanguage, and SchemeLanguage through their online documentation. I have, however, bought compiler design books, TheArtOfTheMetaObjectProtocol, database theory books, and most other "theoretical" subjects since then. Part of the general CommodificationOfInformation?, I guess. -- JonathanTang
More or less agreed, modulo CC's points in TheCultOfTheAmateur; more specifically, for casual reference, high quality sources online are very handy, but books are mature and high technology, and so I prefer high quality books for things I want to study in great depth.
That's secondary to the question of low quality sources; "teach yourself X in 20 minutes" books are typically fairly low quality. -- DougMerritt
Some programmers seem to take the attitude that they are not going to read because either they know it already or if the firm wants them to do something new they should get sent on a course, why should they read on their own time?
I just think of the last pay rise. -- AndyMorris
Here I would like to place a tribute to CodeComplete by SteveMcConnell. It helped me decide to quit a worthless programming job. It also showed me that programming is more than just knowing the language(s). Before I read it all the books I read were about the mechanics of programming. Now they are mostly about the ArtOfProgramming. -- TobyFarley
More time should be spend doing instead of reading.
Hmmm... I seem to read a lot of code written by people who have done a lot of code writing without really learning how to do it first. I really wish those people had read some books before they started doing. -- JohnPerkins
Being realistic, a lot of the programmers I have worked with are under such immense commercial pressures that they really don't have time to read books. What I have often seen instead is that maybe one person will read a particular book and then give a tailored overview to the other developers, pulling out of the book the essential stuff pertinent to that particular group, and maybe pulling out a few sections for others to read themselves. Of course, the person doing the reading and explaining has to be pretty switched on, but as far as I can tell this approach seems to work fine in practice. -- AnthonyLauder
Some people claim they don't have time on the job to do any reading. If you look at reading as something to be done outside of work it violates the FortyHourWeek practice. But I don't see it as being an activity I do just for my employer. I look at it as personal development also. Sure it benefits my employer, but I as a programmer practicing a craft owe it to my employer and customer to stay current. I cannot learn effective ObjectOrientedProgramming techniques by fumbling around with an ObjectOrientedProgrammingLanguage, I need to heed the word of those that have gone before me. What if doctors practiced on live patients instead of learning new medical procedures from other doctors? - TobyFarley
What if you don't look at it that way? I probably do 5-10 hours of reading per week on the clock. A lot is journal articles, but books are there too. If I am asked to pick up something new, I may do nothing but read for a few days.... I don't see the problem.
I did a little refactoring to make my stance a bit clearer. I some reading off the clock but I also find time at work for it.
Reading is truely important, but I find that I learn more by having someone show me, than by reading about it. If I have the choice, I'll choose a mentor over a book any time. Trouble is, we don't often have that choice.
<rant start> There was a time when the computer bookshops had books that can only be termed academic. These were a pain to read. After that came books with titles like "inside", "unleashed" and "abc". Many of these books were insightful and well written. These were replaced by books that promised you everything-you-need-to-know-about in 21 days. These were replaced by books that cut down the time to 24 hours. Maybe as a next step the publishing industry will put out pills that you can swallow to learn the next thing they think you need to know!
There has been a resurgence of good books in the field of OOAD but how soon before this area too falls to the level of OO in 24 hours?
Somewhere on this wiki there is a page on bashing programmers working with MicroSoft tools. We guys never had a chance since there is very little literature dealing with design based on these tools (can we somehow lay that at M$'s doorstep too?). </rant end>
I used to like books with a lot of code but now I prefer books with very little code in them. Maybe just enough code to demonstrate a sample implementation. I remember reading Inside OS/2 by GordonLetwin a long time ago and admiring that there was no code at all in the book.
There are many non-programming books which should be must reads for all programmers, e.g. all the works of LewisCarroll, Douglas Adams, JrrTolkien, plus some strips like Dilbert, CalvinAndHobbes, etc.
Having said all that I think we also need to GetaLife.
-- HemantSahgal?
Meta: I misread "are a" in the title of this page as "area". Better name suggestions requested.
See ReadWhatYouNeed for a differing opinion and RunningSixYearsBehind.