Kind of a bummer, but fortunately I already worked through the book when it was in alpha and saved a copy of all of my exercise solutions in case I need to refer back to them in the future.
EDIT: Looking at an Archive page reinforces my view on this:
"This is the in-progress free version of Learn C the Hard Way."
So my understanding is we were basically beta-testing his book for him and providing feedback in exchange for his making it free. He's finished it, smoothed it out, and finalized it with some additions and videos, so now he wants money for it. Seems fair enough to me.
I've seen the physical edition at Barnes and Noble a few times. I might thumb through it one day and see if there's enough content beyond what I pulled from the alpha to be worth buying.
For the insane amount of work Zed's put in the material, I consider it a very worthwhile purchase. Given the tremendous amount of value I've derived from Zed's other free books, parting away with the $30 is the least I could do to support his efforts.
Thanks Zed for this excellent resource!
I don't blame him for finally charging for it either. It's a good book and giving it away for free got him nothing but harassment and libel.
update: Beej's Guide to C is also on that list.
Too many factual problems and a presentation that gets you to do things wrongly before being shown how to do it correctly, and not even always then.
There are people who think not checking every syscall is a good idea?
Beej's Guide to C: http://beej.us/guide/bgc/output/html/singlepage/bgc.html
Full of mistakes.
##c is laughable. I'm not sure they actually use C, or just think about the C Abstract Machine and Glorious Specification.
I remember witnessing a new C programmer ripped for several minutes on the channel for simply mentioning the heap and stack in their explanation. Instantly he was shot down with "implementation detail and not defined in the C standard" and told to ask his question in #unix.
You can find the whole article at http://www.theorangeduck.com/page/ready-fight.
I've used & contributed to Daniel's stuff (mostly mpc¹) and his code is (IMO) quite high quality. ##c is a bit deluded.
They're very deluded.
"Too many factual problems and a presentation that gets you to do things wrongly before being shown how to do it correctly, and not even always then."
That said, I know why this is on the list. Zed honestly doesn't like C, by which I mean that he recommends a lot of things that are (in my opinion) genuinely best-practice, but fly in the face of either historical norms, or the techniques that the ISO C team wants to push. Depending on what you're aiming for, this might indeed make it a bad work—but it can also make it a great one. I'd liken it in some sense to DJB's projects: Zed recommends a fairly unorthodox, but (again, in my opinion) excellent way of writing C. If you need to interface with people who write C the way most people write C—you're working on an operating system, perhaps, or a legacy codebase—this may be a problem. If you're writing C because you need to write a few components of your project in C for performance or [lack of] abstraction reasons, and would prefer not to hate yourself later, it's great.
But as far as LCTHW goes: I doubt very much its author has the same objectives for writing a book about C that the standards weenies do, and I doubt very much that they took that into account before warding people away from the book.
Not to mention that Qmail is (well, was at some point) one of two biggest
sources of wild workarounds in all the other MTAs, the other being MS
Exchange. DJB took standards and implemented their subset that suited him.
The whole thing seems kinda snarfy and out-of-touch. It's basically single-sentence "Oh this is totally not worth it", which is usually a sign of people on the 'net jerking themselves off over how elite they are. It's just a bunch of folks on IRC showing off.
They pan a nice book on implementing a lisp in C and a simple guide from Beej (of Beej's Guide to Network Programming).
This channel is hardly known for being friendly. Generally anything other than K&R is regarded as Socratic corruption. And not checking the return value of malloc is on par with adultery. Nor do they have much concern for encouraging the next generation of C programmers. I remember witnessing a new C programmer ripped for several minutes on the channel for simply mentioning the heap and stack in their explanation. Instantly he was shot down with "implementation detail and not defined in the C standard" and told to ask his question in #unix. The channel is generally a great place to go if you want to be told you're an idiot.
This is my favorite C related documentation online. The first book on C I read was a PDF of K&R, I liked it. I used to think the paperback was way too expensive. Instead I bought C Primer Plus, never read it. Few books capture the gist of a language as well as K&R in as little space. Though Modern Perl and Programming in Lua also come to mind. If they ever make an updated version of K&R I would definitely buy it.
How much was it?
I asked about the price because it is, or at least used to be, a lot less expensive than that, in India, from the time when I first bought a copy (when first learning C, near the start of my career), to at least some years ago, when I bought several copies of it to give to the students of a C course I was conducting for a company. In that whole period it was just a few hundred rupees (INR) in price, which is just a few USD (under $10 or so, even with the change in exchange rate over the years). I do know that publishers have variable pricing for different countries, of course.
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.
I'm incredibly wary of just about any textbook that isn't an official reference for this reason.
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.
Firstly, probably yes. If you're selling way below the market price, there's something wrong with your BMW. But leaving that aside...BMW M5s are not nearly not as easy to produce or copy as books. I could probably generate a (horrible) learn to program in C book in a matter of days and put it up for sale for $30. I would appreciate someone telling the world "Don't buy this, it's a bad idea."
Now I maybe you have already read the book and know it's not particularly bad, or you think Zed's reputation as an author is good, or something else like that – and it's fine to offer those as rationales for buying the book. But the argument that "Any book about C is likely to change your career* and you're quibbling over $30?" is a terrible argument IMO. The likely thing that happens with the average C book is that you read the first 10 pages, can't grasp some point that the author is particularly bad at explaining, and wander off to watch a Youtube video or something.
Now if your book is so engaging that it prevents this sort of attention wandering, that is a book where you can reliably present this argument. One example (from my perspective) are the Feynman Lectures on Physics. I can read them for ages and ages without getting bored. If you or anyone else in the thread knows about that kind of C book, let me know. K&R (surprisingly) is the closest I've come.
If I offered you a $100,000 car for $2000, your first instinct would be to see if you could get it cheaper?
I agree completely; it's a really important point.
But not everyone on HN is a professional programmer, and there are students, self-improvers, and individuals in other countries for whom the sentiment of "just buy it; it's sufficiently valuable to you" is tempered by the opportunity cost (yes; the opportunity cost of $10) and the need to get the best value/dollar.
This is probably why poverty is so self-sustaining: because you have to burn ridiculous effort over trivial nonsense. Your thin budget gets even thinner, and now you're stuck.
But...as I pointed out in my previous argument, a book is not comparable to a BMW, acquiring a new skill is. "$30 is cheap for acquiring a new skill" depends upon the premise that the $30 has some potential towards acquiring the new skill (which would depend upon some evaluation of the author and the book contents). Otherwise it's just an "I have $30" iPhone app.
Actually I think I could put it this way better – if I tried to sell you a $2000 lottery ticket with a BMW as a prize, wouldn't you at least enquire around and see if you could get one cheaper?
Not everyone is a professional developer in an advanced economy, I am neither. Some books I've bought, have costed me as high as 25% of my monthly income. Also I am not talking about Tanenbaum hardbacks, I have never bought a book that expensive.
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?
* 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
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.
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.
I generally like stuff by Zed E. Shaw, though. Is there an official statement about this? Will he be making other books unavailable too?
Andrew Koenig was/is a C and C++ guru from a long time. Was at Bell Labs, IIRC, and worked with some of the original people who worked on C++, maybe, and worked on it himself.
I've read part of his C Traps and Pitfalls book, too - also good.
And my question for anyone who has gone through it, Is it worth the tag ?
it's still available for free in other locations, just search.