Hacker News new | ask | show | jobs
by jfr 5650 days ago
Note: it is from Herbert Schildt. This name should ring a bell for many competent C or C++ programmers, as the technical quality and accuracy of his books are frequently disputed, and for many regarded as synonymous of bad quality.
4 comments

Came here to say the same thing.

Schildt is warned against in the alt.comp.lang.learn.c-c++ faq[1], and there's an entry for "Herbert Schildt: Any Book on C or C++" in the big list of C Books and C++ Books You Don't Want[2].

[1] http://ma.rtij.nl/acllc-c++.FAQ.html#q6.4

[2] http://www.cs.technion.ac.il/users/yechiel/CS/BadBooksC+C++....

His book "C - The complete reference" was so bad the term "bullschildt" was coined.

http://www.catb.org/jargon/html/B/bullschildt.html

Thanks for the warning.
some in depth points on that criticism.

http://www.developerdotstar.com/community/node/781

disclaimer, i haven't read the book. but if teaching cpp while he was really teaching C was his crime, than i will probably be on his side when i do read the book :)

That's considerably less in-depth than the criticism itself. The post you linked is mainly complaining about how mean some people were to Schildt and brushes aside the criticism on the basis that Schildt had good intentions. You'll notice that he tries to link the widespread criticism of Schildt's books (I mean, it's in the "learn C" newsgroup FAQ) with some anonymous trolls' death threats against blogger Kathy Sierra. It's basically the "LEAVE BRITNEY ALONE!" of the programming world.

I also think that post's phrasing has confused you. When he says "teaching C in practice," he doesn't mean teaching C-isms in a C++ book — he means C as it is (incorrectly) used in practice, such as teaching implementation-dependent assumptions and pretending that they're part of the standard, as well as simply wrong code that might appear to work right "in practice" in certain situations. For example, his "Annotated ANSI C Standard" stated that void main(void) was a valid main function and that padding only appears at the end of structs.