I love books that go straight to the point. I appreciate terseness, and appreciate it orders of magnitude more when it comes with no loss in clarity. Its amazing what some authors can pull off with so few words.
You can guess K&R is one of my favorites.
I understand that C++ is a huge complicated language, Scott Meyers puts it very aptly by stating its a federation of languages, and this makes hard to write pithy pedagogic books. In spite of that, the ever too common 800+ page tomes have always worked against me.
Stroustrup's 3rd is probably a mighty fine book to learn from, its just not for me and its definitely no K&R.
I think my favorite is a little known book by Dirk Vermier http://books.google.com/books/about/Multi_Paradigm_Programmi...
It should definitely not be one's first programming book, perhaps not even one's first C++ book. A shade shy of 300 pages, it did serve me well with its terseness, correctness and clarity. The only thing is that its too pricey for its size, its a bit dated now because it covers c++98.
I think C++ is best understood from one pithy book that shows you the just the language to get started, and then a series of Scott Meyers, Andrei Alexandrescu, Herb Sutter style books to get good at it.
That guy has written more than 40 books according to Wikipedia - quantity over quality, I suppose. I wonder how he justifies having 9 editions for "Let Us C". It's almost as if he is doing solely to be able to force students to buy the new version (as opposed to the used version in the university bookstore).
This web page is really quite awful. There's no sense of a uniform level of treatment -- there's a condemnation of assert() right next to page-by-page book errata. The comments are not incisive at all. There's no table of contents. And the rotating gifs.
I remember using the SAMs books (which make the list). I learned more from correcting the errors, of which there were many, than I did from the books themselves. Simply horrid books that should have had much more time spent on editing.
> assert is used for algorithmic error detecting instead of for debugging only. This is a serious error, common to many, otherwise good, books. But here it is very widely used.
One man's error is another man's programming style. Using asserts as comment-like statements to declare invariants is a very useful a well-established practice that leads to a more concise code. Perhaps it's a nuance not fit for the novices, but to call a book bad because if that is unreasonable at best.
I think you missed the point: I agree that using assert() is good for declaring invariants - but it is used only at debugging (as the quoted text says). If you don't turn assert() off at production (NDEBUG) you are in a deeper problem.
The main thing should be that assert() does not replace if() or other conditionals (say for testing successful scanf()), and moreover, assert() should be used in a textbook when teaching debugging - not when teaching the basics of programming (likewise, only a very advanced student-driver is taught how to restart a stalled engine while in 60mph motion on the freeway - not a beginner one).
I've only probably read like 5 c++ books, but this one kills all the others for explaining how things work, teaching good programming style, and giving you a great all round understanding.
Interestingly, "C++ For Dummies" is absent. I wonder if he just missed it, or really thinks it's not that bad. I learned C++ from it, and I think it did a decent job.
Ha! I still have a Schildt C/C++ book on my shelf. I used it back when I was learning C with Mark Williams C on my Atari ST. Probably about time to retire it to the landfill.
totally... it's irrelevant now. The company has really changed and besides can we really say that they were that bad now? Is Microsoft Windows really such a bad product? I personally don't think so.
I learned a ton from SAMS "teach yoursefl C++ in 21 days". Yeah I didn't think I would either, but it was given to me at work, and I went through about 75% of it and it was pretty damn good.
I've read two of the books on this list and both, while having their faults, were very useful and helped jumpstart my programming experience in my teenage years. The things this person is complaining about are limited to a tiny minority of pages regarding unspecific topics that changed significantly over time and were not necessarily incorrect when written.
Overall, the website comes across as bitchy and pretentious. especially considering how their own HTML comes across as flagrantly hideous.
How so? The argument as I understand it is that all C89 standard-compliant compilers work with "int main" (and work correctly), regardless of whether or not the target OS has exit statuses. Not all compilers work with "void main", and those that do will yield executables that always produce an exit status of zero. While there are times you might write C code that doesn't need to be portable (in which case "int main" and "void main" are effectively the same if your system doesn't use exit statuses), there is no good reason for a C textbook to teach the non-standard approach that only works in certain non-portable cases. If a textbook does so, that's likely a sign that the authors made other poor decisions.
An example is the horrible Dynamic C compiler from z-world (or digi as they are now called). Guys who complain about "violating standards" clearly haven't worked in diverse enough fields on broken, shitty and half-standard compilers ;)
This list is unfortunately missing the O'Reilly-published "Practical C++ Programming" by Steve Oualline, which is a truly terrible text, and the only O'Reilly book I actively tell people to burn. It's filled with errors, code samples riddled with syntax errors, and non-idiomatic style.
Not really. You need at least "The C Programming FAQ", by Steve Summit (it has a very useful Internet (partial) version) and one or two more.
Those who understand K&R2 and C-FAQs know better than 90% of C programmers.
[+] [-] srean|13 years ago|reply
You can guess K&R is one of my favorites.
I understand that C++ is a huge complicated language, Scott Meyers puts it very aptly by stating its a federation of languages, and this makes hard to write pithy pedagogic books. In spite of that, the ever too common 800+ page tomes have always worked against me.
Stroustrup's 3rd is probably a mighty fine book to learn from, its just not for me and its definitely no K&R.
I think my favorite is a little known book by Dirk Vermier http://books.google.com/books/about/Multi_Paradigm_Programmi... It should definitely not be one's first programming book, perhaps not even one's first C++ book. A shade shy of 300 pages, it did serve me well with its terseness, correctness and clarity. The only thing is that its too pricey for its size, its a bit dated now because it covers c++98.
I think C++ is best understood from one pithy book that shows you the just the language to get started, and then a series of Scott Meyers, Andrei Alexandrescu, Herb Sutter style books to get good at it.
[+] [-] sukhbir|13 years ago|reply
[+] [-] nimeshneema|13 years ago|reply
http://www.ksetindia.com/books/let-us-c
Ironically this book is quite popular with students in Indian Universities (I guess mainly due to ignorance)
Even the wikipedia page for the author admits this fact
http://en.wikipedia.org/wiki/Yashavant_Kanetkar
[+] [-] metaobject|13 years ago|reply
[+] [-] mturmon|13 years ago|reply
[+] [-] theobserver|13 years ago|reply
[+] [-] mikestew|13 years ago|reply
[+] [-] gtani|13 years ago|reply
[+] [-] eps|13 years ago|reply
> assert is used for algorithmic error detecting instead of for debugging only. This is a serious error, common to many, otherwise good, books. But here it is very widely used.
One man's error is another man's programming style. Using asserts as comment-like statements to declare invariants is a very useful a well-established practice that leads to a more concise code. Perhaps it's a nuance not fit for the novices, but to call a book bad because if that is unreasonable at best.
[+] [-] theobserver|13 years ago|reply
[+] [-] matiu3|13 years ago|reply
I own the 3rd special edition: http://www.bookdepository.co.uk/C-Programming-Language-Speci...
and have pre-ordered the 4th edition which includes c++11 info: http://www.bookdepository.co.uk/C-Programming-Language-Bjarn...
I've only probably read like 5 c++ books, but this one kills all the others for explaining how things work, teaching good programming style, and giving you a great all round understanding.
[+] [-] andrewflnr|13 years ago|reply
[+] [-] bcl|13 years ago|reply
[+] [-] 3825|13 years ago|reply
[+] [-] arkem|13 years ago|reply
I don't think being disdainful of Microsoft is interesting either but it makes more sense in context.
[+] [-] mitchi|13 years ago|reply
[+] [-] jcmnetmedia|13 years ago|reply
[+] [-] gsibble|13 years ago|reply
Overall, the website comes across as bitchy and pretentious. especially considering how their own HTML comes across as flagrantly hideous.
[+] [-] frozenport|13 years ago|reply
[+] [-] dsrguru|13 years ago|reply
[+] [-] laichzeit0|13 years ago|reply
void main(void) { init(); for(;;) { web_tick(); serial_tick(); tcp_tick(); etc. } }
An example is the horrible Dynamic C compiler from z-world (or digi as they are now called). Guys who complain about "violating standards" clearly haven't worked in diverse enough fields on broken, shitty and half-standard compilers ;)
[+] [-] greyfade|13 years ago|reply
[+] [-] Zoophy|13 years ago|reply
[+] [-] yechielkimchi|13 years ago|reply
[+] [-] Ramonaxvh|13 years ago|reply
Has anyone noticed how many books on C are 4 times the size yet leave you with less valuable information than K&R?