The Definitive C Book Guide and List was a project I once liked and supported.
However, over time I started to realize how bad and harmful that post really is. The main issue with it is the community-maintained format. This works for factual, specific programming topics. Not so much for subjective, opinion-based book recommendations.
Anyone can and will add any random book, out of the blue. There are no rules. For example there was a case where we strongly suspected that the author of a C book had added his own book on top of the list.
As a result, the list is… a list of books. Good books, bad books, mediocre books, language standards, standard rationales, coding guidelines, non-C related books. Basically, the conclusion of the whole book list is “there exists C books and also some other books” and nothing more.
Then of course the whole post was always unsuitable for SO. It is mostly just opinion-based recommendations. It doesn’t follow the usual Q&A style. In fact it doesn’t follow anything – it is just an arbitrary book discussion.
The post had all these problems since many years. But now the whole post was recently merged into one single “super recommendation” list, containing everything that was ever posted there, for good and bad. This includes things that are not even recommendations, but anti-recommendations.
What I would like to bring up for discussion is this:
1) Can we please delete this whole post? It is likely that it does more harm than good.
I don’t have high hopes of this happening, but now at least I made the plea for it. I know from previous experience that SO likes to preserve crap in favour for site traffic, even when there is community consensus for deletion. That’s what happened when I tried to get the horrible “list of random books” post deleted.
2) If the post is allowed to exist, then how can we guarantee any form of quality? The current quality is very low.
One way to achieve this would be to let every book have its corresponding community wiki answer. Users could then vote up or down if they believe that the book belongs on the list or not. Let books with lets say for example a +50 positive score make it to the list. Each book can still have a category like now: reference level, beginner, intermediate, expert.
This way we would also get anti-recommendations sorted automatically. Quality concerns or praise could be posted as comments.
And what about language standards? Arguably, one should never recommend a book which is not up to date with the language. Should we require that all books on the list must at least be semi-modern and address c99?
3) Should we allow anti-recommendations? What makes a book qualify for anti-recommendations?
I think mankind would probably benefit from this, but probably not SO. There would be conflicts. Currently there are just two anti-recommendations and these two books are quite infamous – so far so good.
But what if someone would for example like to make an anti-recommendation against K&R? Lots of very valid critique has been raised against that book and it has an extensive errata. It is of course also completely outdated. However, the book has countless fans and this would surely spark some heated edit war.
And what about horrible internet tutorials? Many SO users frequently make anti-recommendations against such tutorials. (Most notably, tutorialspoint.com and Harvard CS-50 have poor reputations.)