4 ms·
I read it a while back and didn't think it was very good. I wouldn't pay $30 for it IMHO. There are better books out there.
by satysin 10y ago
I read it a while back and didn't think it was very good. I wouldn't pay $30 for it IMHO. There are better books out there.
- raindev 10y agoWhat are good modern books on C nowadays?
- satysin 10y agoPersonal opinion - (in order from beginner) * C Programming Absolute Beginner's Guide by Perry and Miller * C Programming A Modern Approach by King * Programming in C by Kochan * C Primer Plus by Prata * Head First C by Griffiths & Griffiths * 21st Century C by Klemens * Understanding and Using C Pointers by Reese * Expert C Programming - Deep C Secrets by van der Linden
- aidenn0 10y agoYou were not the first person to suggest Klemens's book to me, but after reading it, I disagree with most of it.
- awkward_yeti 10y agowhy ?
- aidenn0 10y agoIt's hard to put my finger on exactly what it is I don't like about it. After rereading the table of contents I certainly don't disagree with some things (gdb, valgrind, version control, package management, are all good things). I think my biggest beef is it seems to approach C as if it is a general purpose language, and I would argue that in the 21st century C is no longer a general purpose language. It is at its best now when used for systems programming, embedded programming, and making portable libraries (and the last is also no longer the exclusive domain of C, as besides C++ there are a couple other languages that can export C abi compatible functions and have unobtrusive runtimes). Also, Klemens seems to like autotools. I don't hate autotools as much as others, as I remember a world before autotools was ubiquitous and it truly sucked. However, the combination of compilers not sucking like they used to (if you are using C99, you have a lot more features than you did on some crappy PCC derived vendor supplied compiler, even if you stick only to pure C99, and the odds of your compiler not "just working" on the C99 code is pretty slim) means that for simple projects a makefile that respects the CFLAGS, LDFLAGS, CC &c. is sufficient; for larger programs, there are serious alternatives to autotools. Obviously none of them are as dominant as autotools, but cmake is certainly prevalent enough to be a good place to recommend people start at.
- satysin 10y agoDid you read the first or second edition? The first edition had a lot of issues, the second edition was a lot better.
- vram22 10y agoInteresting list. Not worked much on C recently (though I am some on D these days), but had used it a lot earlier. I first started with K&R (not because I knew it was good or the best then - IMO, maybe some will not agree, and it may not be the best for a beginner), but because it was the only one available at that time and place, IIRC. Later I did read some other C books. I think the Kochan (Steven?) one you mention was one of them, and maybe also the Prata book. IIRC, the Kochan one was good. One book I read had an example of creating an index or concordance of a text file or program, maybe it was Kochan. Remember enjoying the logic.
- aidenn0 10y agoI'm going to date myself here, but my first book was "Learning to Program in C" by Plum. It was an incredible beginners guide to C, but predates C89, so is a bit too dated at this point to recommend to people. The same author also wrote "Reliable Data Structures in C" and I would love to update it for at least the features in C99 (C structs became a lot more useful at that point), as that book is a great read in that it walks you through the reasoning for doing things in a certain way, as well as providing the final result in code.
- tptacek 10y agoI don't really give too much of a shit about this particular book, but this logic is, to me, amazing. It's a book about programming --- a very specific kind of programming. The only reason for normal people to read is to acquire some new set of skills. I am having a hard time thinking of any --- literally any --- new C programming skill I would value at less than $30. That doesn't mean you can't reasonably warn people off a book! It might not be worth the time to read. It might be totally inaccurate, or fail to communicate any new skills. But otherwise, "I wouldn't pay $30 for it" wouldn't make sense even if the book were just 5 pages long.
- appleflaxen 10y agoit does if there is a better book available on the market for $20.
- segmondy 10y agoProblem is that if you are new to C, you might not know which ones are the better book. If you don't need C and need to tool up in a week, it's best to spend that $30 and learn what you can than lose some days trying to figure out what the best book is. Plenty of times, good enough is good enough.
- tptacek 10y agoIf I offered you a BMW M5 for $2000, would your first thought be, "hmm, I should check to see if someone is selling the same car for $1800"? Programming book preferences are fine, useful even! Complaints about book prices are silly. Take your career more seriously. I guess my point is just: pretty much all technical books are fantastically, comically underpriced.
- satysin 10y agoBut a BMW M5 is a good car. Sorry but I don't get your comparison. I will happily pay £100+ for a good book but I don't feel Learn C the Hard Way is worth buying at $30 when you can get better books for less. Would you pay $100,000 for a junk car when you can get a BMW for $50,000 that is better in every way?