|Home||Switchboard||Unix Administration||Red Hat||TCP/IP Networks||Neoliberalism||Toxic Managers|
|May the source be with you, but remember the KISS principle ;-)|
|Best Compiler Construction Books||Best C language textbooks||Best books about Unix Shells||Best Red Hat Books for Preparation to Certification||Best Old TCP/IP Books||Best Pascal Programming Books|
|Best Perl Books for System Administrators||Best Books about Solaris Administration||Best Microsoft FrontPage Books||Best books for learning HTML||Best books on CGI Scripting||Best books about C++ debugging|
|History of Computer Science||OS History||Unix History||
No place affords a more striking conviction
of the vanity of human hopes
than a public library.
March 23, 1751,
Table of Contents
Appendix 1: Selected Reviews
Appendix 2: Links to bookstores
Every programmer every system administrator, and especially a university computer science student, needs a lot of books. This page is designed to help all three categories. It also contain a collection of my computer books reviews, that, while particularly outdated, might still be useful for many CS students.
One recent negative phenomenon on the USA textbook market is that the cost of university textbooks became simply staggering (see rip-off 101):
Students will spend an average of $898 per year on textbooks in 2003-04, based on surveys of University of California (UC) students in the fall of 2003. This represents almost 20% of the average tuition and fees for in-state students at public four-year colleges nationwide. In contrast, a 1997 UC survey found that students spent an average of $642 on textbooks in 1996-97.
For those who are barely can pay tuition, saving on textbooks can be an important cost-saving measure. As The Boston Globe reported in the article Textbook costs are off the charts :
The average annual cost of textbooks for a student in 2003-04 was $898 at a four-year college and $886 at a two-year college, the report found. While overall prices have increased 72 percent since 1986, the report said, college tuition and fees have increased 240 percent and textbooks 186 percent. The report echoes many of the findings in a highly critical report issued last year by CALPIRG, a California consumer research group.
Unfortunately a large part of the textbook market in the USA has all signs of corrupted monopoly infested with cronyism and incompetence to the extent that Standard Oil practices looks pretty benign in comparison. As the site MakeTextbooksAffordable.com states on its font page:
The report found that even though students already pay $900 year for textbooks, textbook publishers artificially inflate the price of textbooks by adding bells and whistles to the current texts, and forcing cheaper used books off the market by producing expensive new editions of textbooks that are barely different from the previous edition.
And some university professors are part of these scheme. Congressmen David Wu sites the opinion of the publisher in his letter "If a student is paying hundreds of dollars for a book, it's because the professor has ordered the Cadillac edition". But that might be true only for CS where any professor can easily find a cheaper high quality substitute from publishers like O'Reilly (and students can do this too, this part of the Softpanorama site is actually about finding the best book available at reasonable prices). In other disciplines like mathematics professors have almost no choice " . The cost of a common calculus textbook is over $100 in the USA. This is a blatant, open rip-off. In the meantime, enterprising students have many ways to cut the cost of buying textbooks.
But here one needs to see a bigger picture: low quality of recommended textbooks and, especially, the quality of university instruction makes it necessary buying additional textbooks. Also the ownership of best textbooks often makes the difference between success and failure in the particular course. In this sense additional $100 spending for books for each course makes economic sense as the common alternative is to drop the course, which often means $1K of more loss.
There are several ways to save on additional textbooks that hopefully can somewhat compensate for the extremely low quality of tuition in a typical university. With some effort a student can often save approximately 50% of the cover price. Again my Links2bookstores page contains more information.
At the same time if the instructor is weak, or, worse, belongs to "fundamentalists", a category of instructors that does not distinguish between important and unimportant things and overloads the course with "useless overcomplexity" additional books are one of few countermeasures against this typical university-style rip-off. Dropping the course is a difficult maneuver that requires perfect timing and problems with instructor and the course content usually do not surface during the first month of the study when you can still do it for free or with minimal damage.
One typical example of negative trends toward "useless overcomplexity" are attempts to convert "Algorithms and Data Structures" course into "yet another OO course"; I really hate those instructors who try to oversell OO in this course, by emphasizing C++ or Java OO-features.
Also if the teacher is demanding from students "to know it better than I do" and grade the tests based on principal "God deserves A, instructor deserves B and everybody else deserve C or less" you might find yourself in trouble. But still you can fight and somewhat compensate for "useless overcomplexity" by self-study using hopefully less convoluted book written by more talented author (standard university textbooks are rarely written by a really bright people ;-) Again you need to understand that this $100 (or less) investment can make the difference between passing and failing the course which often means several thousand dollars saved for a relatively small additional investment.
Of course it depends on the abilities of a particular person, but for a new language or operating system or complex application (like databases), the recommended textbook alone + materials from the WEB usually are not enough if you have no previous experience with the subject.
Good books are very important productivity tools, much like good compilers, languages, editors, pretty-printers, etc. And like a good teacher a good book on the subject is a much better tool than an average or bad one. It really gives you tremendous leverage against other students, students who are using just a recommended (and as a rule pretty average) textbook.
Unfortunately it becomes harder and harder to make selections as the book industry is in a mode of pumping out titles faster and faster. Speed of change in programming is tremendous and we no longer control it. It controls us. Books were one of the first victims of this "crazy rush". Useful life of many programming books is less then three years. After that it is too old to be carried by most bookstores and new books replace old without mercy. But it take tremendous amount talent, time and energy to write a good programming book. That's why really good programming books are extremely rare, and even few that periodically appear on the market despite all odds, quickly sink in the tar pit of "make money fast" junk. For authors it generally does not make much sense to write books in such an environment, when you need to spend a decade of your life to say something really worth saying and after all this effort you book is discarded offer one of two years of useful shelf life.
This is really information overload and it's difficult to find a good books in this pulp stream. Even a small publisher like O'Reilly publishes approximately 300 books a year. Even if we assume that a third of them are new editions of old books, pocket guides and CD collections, still a two hundred books a year still is an amazing and pretty destructive speed.
Mark Twain once said that he didn’t have enough time to write short stories, so he was forced to write long novels. In that vein, there are plenty "heavyweighters" (computer books with 1K pages or more) that somehow managed provide very superficial coverage of each of the topics they cover. Sometimes such a book include a CD-ROM with obsolete versions of open source tools as an additional bonus.
Due to the information overload the value of technical books became distorted by hype and the power of marketing almost as much as dress fashion. But the most dangerous thing is overcomplexity: the software itself became more and more complex and less transparent. And that means that writing an introductory book is really challenging, and very few authors succeed in this tremendously difficult undertaking.
Among publishers O'Reilly still has some edge in his traditional Unix/WEB/open source areas, the only area were it still can attract excellent authors, But do not expect high quality automatically. O'Reilly publishes a lot of average books now. Still big plus for O'Reilly is that it continues to publish e-books in his famous "CD bookshelf" series. More then 30 books were already published. they are huge asset of any CS student, programmer or system administrator.
Computer science is a huge subject, and sometimes the hardest part of learning about it is knowing what is the best book on the subject. I would like to say it again: there is a tremendous difference between top and average books. This difference is especially important for universe students as it often means the difference between succeeding or failings of the course. Unfortunately most university textbooks are at best mediocre and suffer not only from being extremely dull, but also from fat, over complexity and "multiple sclerosis" (when the author forget in the next chapter what he/she was talking in the prev.:-) . Relying on the instructor-recommended book is often an invitation to disaster (Assembly Language for Intel-Based Computers (4th Edition) and C++: An Introduction to Data Structures are sad illustrations of this trend).
There is a tremendous difference between
top and average books,
Often a university textbook is more a matter of vanity fair for the author, not an attempt to explain the complex things so that students can understand them. Paradoxically, in many textbooks the goal is quite opposite: to take a potentially simple subject and made it as complex and as incomprehensible as possible.
Just look at Assembly Language for Intel-Based Computers (4th Edition), where the author converted assembler into something like C++ and covers assembler (with proprietary library) without covering the debugger (yes, there is no a single chapter devoted to debugger in this book).
Another example of this "killing the subject with over-complexity" trend is C++: An Introduction to Data Structures where the author is trying to teach the most obscure C++ tricks in existence instead of teaching Data Structures (actually, the title is misleading: this is an OK book for STL, but never for algorithms and data structures).
I would like to stress again that the difference between learning the subject from good book and bad book can as big as learning from a good and a bad teacher.
The difference between learning the subject
from a good book vs a bad book
Fortunately there are good books on almost any given computer science topic, including Linux and open source applications. And while they are definitely more available and affordable than good teachers of programming, but unfortunately they are not that easy to find in the ocean of published junk.
|It's very difficult, almost impossible to replace interaction with talented teacher, who himself is an accomplished professional. Still books of talented authors is the best next thing.|
BTW commenting about this introduction Yuri Lesyuk, a very talented programmer and computer science instructor himself, noted that:
I found useful the comparison of Programming (including teaching/learning of programming) with Martial Arts (including philosophical aspect, dao, meditation). It also can benefit from master/pupil relationship. Skills, methods involved are similar.
Also applicable is the gradation/estimate of abilities of both participants of the educational process. It's very difficult, almost impossible to replace interaction with talented teacher, who himself is an accomplished professional. Still books of talented authors is the best next thing.
Some good books were available electronically in 1996-1999 when Macmillan and Que flirted with open publishing. A dozen or so still are available from www.InformIt.com, but its a pale shadow of its past -- in 1999 more then a hundred books were available electronically. Now they converted this into paid service called Safari that still might make sense as it permits rather low cost of entry for both student and a professional (first 14 days in Safari are free, but you are limited in the number of books you can take). Still one year subscription is somewhat expensive for a student and it would be nice for them to provide some student discount.
I am convinced that free books can help economically disadvantaged students and I usually try to list such books at the beginning of each chapter under the title "Open books". But please note that after Internet bubble burst many used books are available on eBay and Amazon for less then $5. Also many publishers like O'Reilly provide one chapter from each book on thier web-sites.
Still the sad truth about open publishing is only O'Reilly is currently keeping the fort. Other publishers who in 1998-1999 have substantial selections of free books are now in deep retreat :-(.
But business is business and even in the best days publisher usually opened only books that are far from bestsellers, although sometimes they open good but underappreciated by the marketplace books (with the current glut of computer science books, the marketplace is not very fair and sometimes very good books are simply ignored, buried under the tons of junk). As a successful books are rare and the survival of publishers depends on them it's suicidal to open the best books. So be ready to pay for them. Still openness of the book is an important advantage. A diligent student that has no funds to buy the best book can compensate weaknesses of particular by providing his/her own annotations to the text, additional references to relevant freely available material, own notes etc. Also the capability of searching of the HTML (or even PDF although I do not like this format) text is much better than any index.
Most of the recommended books in each chapter are books that I've read and liked. Sometimes I taught a course using a particular book. Actually there is no better way to understand the value of the book that to teach a course using it ;-). In this case I really know what I am talking about. Books that I own or owned usually have titles in bold. If you have an additional insight about any of these books, please send me mail.
Owning the best books for your specialty is really important.
I would like to stress that owning the best books for your specialty is really important. Even if you can print the book on a company laser printer ;-) the quality and convenience of this printout is usually less than the quality of a publisher produced book (for example, only a few laser printers provide double-sided output).
Laser printouts with folder binding are less convenient, more bulky and
as such is a weaker tool. If you became certain that this is really worthwhile
book it's wise to buy a printed copy unless there is really no money to
buy it. Moreover if you like the book on the stand but after deeper analysis
discovered that it's not that good you can return it and most bookshops
will refund your money within 30 days. This also an important form
of support of the best authors. Please note the best authors are in
huge disadvantage in comparison with those authors while (often really weak)
books became standard university textbooks by some mixture of luck and political
maneuvering. It's especially important for those books that have e-text
available and/or that have well done WEB sites. Please support authors of
such books -- they really care about you.
Please support authors of best books by
buying print copies
Most (but not all) of the authors of decent books have homepages, run
either by the authors themselves, by the publisher of the book or sometimes
by their fans. For any book published in this century, a decent author always
provide a web page for the book. If I do not list any additional site and
you are interested in the book just use your favorite Internet search engine
-- I cannot find all the links available. Book with ant author web page
has a better value than a book without. A good author always provide a web
page for the book. I would like to warn again computer science books that
does not have a decent web page -- something is probably wrong with the
author, or the book or both.
Usually a book with a nice author's web page has a much better value than a book without.
You may buy any book listed here directly from this site (via Amazon.com) helping to develop this guide or you can shop for a better price using Softpanorama Links to Bookstores.
There are several libraries of electronic books on the Internet
and link2elib page of this site
provides links to some of them. Some publishers add a text of the book in
HTML or, more often, PDF on the CD distributed with the book or on Internet.
Books with full text on CD represent a better value than traditional
paper-only textbooks. For example you can search the text using
Books with the full text on a CD often
Other things equal I recommend buying an open book -- the book that has full text on the CD or on the WEB site. Not only you can add or correct text, you also do not depend on the quality of the index. Some publishers like O'Reilly sell separate CDs with collection of older books in HTML. I will call this a parallel publishing and classify such books as open. O'Reilly publishes his famous "CD Bookshelf: series. Older editions are also quite useful. For example you can buy Perl CD Bookshelf 2.0 CD-ROM for less then $10. See CD Bookshelf for more information.
As I mentioned before, one of the divisions of Macmillan Publishing -- QUE have a short romance with open publishing in 1998-999. In 1998 they pioneered a really great WEB site called Personal Bookshelf. On this site they put several dozen of older books (published around 1996) in HTML on the Web. Also in the past, QUE used to put the whole HTML text of the book on the CD that accompany the book (in their Platinum series the CD usually contains several other books as well). Later Personal Bookshelf was converted in a new InformIT.com site for all Macmillan labels and free books almost completely disappeared from it in 2002. Macmillan's love affair with free/open books was a really short one. Now it became a pay service called Safari, but still you can get two weeks free (Register to receive your first 14 days FREE.)
The second important source of electronic books is beta books program that are used by several publishers including McGraw-Hill - Beta Books and Macmillan alpha books. The problem is that the books are there on a temporary basis, only one or several chapters are usually put online (publishers really risk money by premature disclosure of too much information) and publisher does not guarantee that electronic version the book will be available on CD or from Internet. But this is new information and sometimes the test is chapters can be of cutting edge quality.
In no way one can blindly rely on Amazon ratings (or any
similar ratings). Amazon rating while providing interesting information
often are subject to so called "Lemming Effect" when people rate highly
Definitive Guide or Learning Perl. In this case several good reviews incite
conformists to say a couple of nice words about the book that they probably
own but that they either never read or they lack the ability to compare
books on the subject due to some other factor.
Bad books from a respectable publisher
or a known author sometimes
At the same time many really good books (for example Learning Korn Shell) are underrated on Amazon with a lot of reviews that belong to the category described above, only with minus sign.
You also need to understand that the value of the book depends on the level of the reader and only really brilliant books (for example TAOCP) can bypass this vast diversity of experiences of the readers.
If you are still thinking about buying a book, do yourself a favor, when you're at the book store look in the index or table of contents of this book and then browse the book and read at least one, important for you, chapter before spending any money. If you still have the same level of understanding as before the reading and the chapter does not contain interesting ideas or badly written then probably this is not the book you are shooting for. Then take another book and keep doing this until you find one that really excels in explaining this important for you concept.
If you cannot browse the book yourself in a bookstore, then you should try to grade the book indirectly using other sources (this is less reliable but at least helps to avoid blunders):
Good books have usually good review from Amazon readers, but you need to ignore trashing reviews as well as too positive (or false-positives; the first review for the book often belongs to this category ;-). Bad books sometimes also have good reviews, so good reviews from Amazon.com are not sufficient for making a right decision about the value of the book.
You can also take into account (but do not believe completely) reviews
from other sources like
DrDobbs Electronic Reviews
of Computer Books (ERCB), but your mileage can vary. Sometimes they
recommend very weak books.
Association of C & C++ Users book review section contains a lot
of reviews and probably you can dig out a useful information about the
value of the book in comparison to a similar books on the subject (
I checked several reviews about average books that I own -- and found
that most were too positive, so beware). The site also contains
All-in-all the publisher name now means less that before
Now the publisher name now means less that before.
Dr. Nikolai Bezroukov
12 books that a CS student might benefit from owning:
Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers : Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism : The Iron Law of Oligarchy : Libertarian Philosophy
War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda : SE quotes : Language Design and Programming Quotes : Random IT-related quotes : Somerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose Bierce : Bernard Shaw : Mark Twain Quotes
Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 : Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law
Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds : Larry Wall : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOS : Programming Languages History : PL/1 : Simula 67 : C : History of GCC development : Scripting Languages : Perl history : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history
The Peter Principle : Parkinson Law : 1984 : The Mythical Man-Month : How to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Haterís Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite
Most popular humor pages:
Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor
The Last but not Least
Copyright © 1996-2018 by Dr. Nikolai Bezroukov. www.softpanorama.org was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) in the author free time and without any remuneration. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.
FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.
This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...
|You can use PayPal to make a contribution, supporting development of this site and speed up access. In case softpanorama.org is down you can use the at softpanorama.info|
The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.
Last modified: September 12, 2017