#19 in Computer programming books
Use arrows to jump to the previous/next product
Reddit mentions of Expert C Programming: Deep C Secrets
Sentiment score: 21
Reddit mentions: 36
We found 36 Reddit mentions of Expert C Programming: Deep C Secrets. Here are the top ones.
Buying options
View on Amazon.comor
- Addison-Wesley Professional
Features:
Specs:
Height | 9.1 Inches |
Length | 7.55 Inches |
Number of items | 1 |
Weight | 1.4550509292 Pounds |
Width | 1.2 Inches |
I read an interview a long time ago where one of the K&R guys said something to the effect of "Yeah, we got some of the operator precedence rules wrong. We noticed it after awhile but we didn't change it because by that time there were hundreds of kilobytes of code written in C and it didn't seem fair to change it."
I don't remember where I read that; it might have been in this book. Incidentally the fish on the cover is a coelacanth, pronounced "C-le-kanth" and it remained undiscovered until the 20th century, making it a "Deep C secret". I love the double pun and the book was quite good.
When I know that an interview is gona be technical - I run through Expert C Programming: Deep C Secrets by van Linden. It's pretty dope - not boring and goes pretty deep on the low-level stuff.
K & R and Expert c programming are the best books I have read on programming. http://www.amazon.com/Expert-Programming-Peter-van-Linden/dp/0131774298
If you fully understand c then you will better understand how computers work and be able to debug issues in other languages where details are hidden in the language libraries and syntax
You only need one book: The C Programming Language, 2nd Edition.
However, I would also recommend you own C: A Reference Manual, Fifth Edition, especially for the C99 coverage. Not needed immediately, by any means, but well worth having - the reference section of K&R will serve you well for quite a while for any C89/C90 coding.
A fine supplemental book is C Programming FAQs. Much of it is available online as the comp.lang.c Frequently Asked Questions, but the book adds material and polish.
Once you're ready for advanced C knowledge (I'd guess after at least a year of substantial C programming, but only you know when you're ready and interested enough), you really want to read Expert C Programming: Deep C Secrets, by Peter van der Linden.
There are some other very good books that have more or less direct applicability to C programming. The two I would call out are The Practice of Programming and Programming Pearls. Both worth far in excess of the asking price.
Good luck, and welcome to the deep end of the pool. The water's fine.
The book "Expert C programming: Deep C Secrets" link is pretty good with that kind of stuff. Also there are a ton of jokes so it's not a dry read
fair enough, I shall tell you my favorite C programming book then
deep c secrets
excellent post, thanks, it's always enlightening to get historical perspective like this
in a similar vein I recommend Deep C Secrets which is overflowing with historical anecdotes about the evolution of C and Unix systems
This book is a good resource for making sense of a lot of the spec. I'd read that (or something like it) and understand it thoroughly before trying to interpret the spec yourself.
This doesn't sound like 'advanced C', this just sounds like having low level knowledge of certain things. You'll probably have better luck searching for books on kernel development if you want to know about the linux kernel for example, or compiler dev for compiler dev, or machine learning for machine learning etc.
Doesn't get much simpler than C, past the basics programming better C just involves expanding your mental model of the cpu - i.e. understanding that memory isn't just RAM, but also your CPU has caches helps when optimising code.
That being said, I picked up this from the library and read the first couple chapters. Seemed quite good, and gave you a nice overview of some of the idiosyncracies of C! https://www.amazon.co.uk/d/Books/Expert-C-Programming-Peter-van-Linden/0131774298
I've posted this before but I'll repost it here:
Now in terms of the question that you ask in the title - this is what I recommend:
Job Interview Prep
Junior Software Engineer Reading List
Read This First
Fundementals
Understanding Professional Software Environments
Mentality
History
Mid Level Software Engineer Reading List
Read This First
Fundementals
Software Design
Software Engineering Skill Sets
Databases
User Experience
Mentality
History
Specialist Skills
In spite of the fact that many of these won't apply to your specific job I still recommend reading them for the insight, they'll give you into programming language and technology design.
Right. But don't be so quick to judge. =)
The issue is that there isn't anything much better out there. A lot of the issues with teaching C is C itself.
C it a very simple language, maybe too simple. A lot of the safety in C is difficult because C doesn't give you anything to get that right. The solution to this is being very good at it, know what you're doing and avoid the problems. Modularity barely is possible in C (it is only through simple means). Dynamicity is a pain. All of these things that other languages simply support out of the box, you have to go through major hops in C so you get them.
From what I understand, most uses of C today only exist when nothing else is applicable. That is, when they really need the sort of benefits you get from using C, because the language itself isn't that great.
You could write whole books on getting modularity right in C, on getting dynamicity right in C, on getting security right in C, and so forth. And in fact there are:
It goes on and on and on. The C standard library is extremely thin (in comparison to everything out there). How can K&R2 teach you how to write highly sophisticated programs if the most advanced stuff in the standard library is sorting? I'm being a bit simplistic in this argument, but it's not so much distant from the truth.
https://www.amazon.com/Expert-Programming-Peter-van-Linden/dp/0131774298
Expert C Programming
I think using sizeof() to find the size of an array is just fine (using the idiomatic
(sizeof(foo))/(sizeof(foo[0]))
The problem is when the array has decayed into a pointer, for example across a function call.
Something a lot of people don't realize is that the [] is essentially meaningless in a function parameter argument list, except for triggering the pointer decay. For example, in the function prototype, the OP wrote:
void displayArray(int[], int);
but he could have just as easily written:
void displayArray(int[99], int);
and there wouldn't have been so much as a warning, even though an array with only 3 elements was passed.
Recommended reading: Peter van der Linden's "Expert C Programming"
My favorite was Expert C Programming: Deep C Secrets, aka the fish book.
It's very well written, and has an almost conversational tone (and some jokes) despite its technical nature.
dunno, but maybe read this book next: http://www.amazon.com/Expert-Programming-Peter-van-Linden/dp/0131774298
Well, let's see.You need to learn ANSI C, not K&R C. That is deprecated.
Books:
Free:
Note: Some repositories/projects of interest for practicing; those you will have to find yourself on bitbucket, github, assembla etc.
Yes. Got every answer correct, with correct explanation.
There are a few very, very good books on this topic I can only suggest everyone to read:
Peter van der Linden's Expert C Programming (Google Books, Safari) is a good resource on this question, though it's slightly dated and undoubtedly not the whole story.
Yes, that is required C reading.
Also Expert C Programming, which is actually funny at times.
Then I hear C: A Reference Manual is the last C book you'll need after those other ones, but haven't gotten to it.
Expert C Programming : Read this after reading K&R C book.
Programming Pearls : Excellent Book
Algorithm design manual : Read it after CLRS.
If you're looking for a good book I recommend Expert C Programming.
This is by no means a beginner book, but it's one you might want to pick up as you progress. It is excellent ...
https://www.amazon.com/Expert-Programming-Peter-van-Linden/dp/0131774298
I've read almost all the books on C. I think you can get by with just:
C books I've found useful:
Beginner
Intermediate
Expert
>Give me a C statement where the intended meaning cannot be discerned.
p = p+++++g;
Programmer could (and likely does) mean: p = p++ + ++g;
C parses: p = p++ ++ + g;
Just the first thing that popped into my head, example from Expert C Programming. I highly recommend reading it, the first several chapters are devoted to the limitations and problems of C based on undefined things, errors in the ANSI spec, poor decisions, legacy PDP-7/11 artifacts, etc...
I love C, but the language has its warts-- more than "it gets complex."
I think you would enjoy Expert C Programming: Deep C Secrets. Note: the book was first published in 1994
Have you considered alternatives? Expert C is quite good.
If you don't have any intentions on buying a book, there were several scanned copies I found when you step off what Google shows you. I'll leave that as a exercise in piracy for you.
Το βιβλίο υπάρχει και στα ελληνικά και είναι καλό. Αξιοπρεπέστατο είναι και το βιβλίο των Τσελίκη-Τσελίκα "C Από τη θεωρία στην πράξη" - http://www.c4all.gr/
Τα δικά μου favorites by far: K&R και Deep C Secrets του Peter van der Linden .
First note that Career/Job/Market is quite different from Knowledge/Intellectual satisfaction. So you have to keep "earning money" separate from "gaining knowledge" but do both parallely. If you are one of the lucky few who has both aligned in a particular job, you have got it made. Mostly that is never the case and hence you have to work on your Motivation/Enthusiasm and keep hammering away at the difficult subjects. There are no shortcuts :-)
I prefer Books to the Internet for study since they are more coherent and less distracting, allowing you to focus better on a subject. Unless newer editions are reqd. buy used/older editions to save money and build a large library. So here is a selection from my library (in no particular order);
Off the top of my head this book comes to mind.
https://www.amazon.com/Expert-Programming-Peter-van-Linden/dp/0131774298
I think the article is quite good, even with the syntax problem others have pointed out. It covers most of the issues common to embedded development.
For more C, I recommend this book (it's very readable):
http://www.amazon.com/Expert-Programming-Peter-van-Linden/dp/0131774298
Exceptional C++ and Effective C++ (and the More ** versions) are also actually pretty damn useful in the C world.
Since you didn't mention C knowledge, you'll still need to either start with K&R OR C Programming: A Modern Approach by King.
Expert C Programming by van Linden is the best book for really learning what's going on in C. It's 20 years old, but still relevant. This is the famous "Ugly Fish Book".
http://www.amazon.com/Expert-Programming-Peter-van-Linden/dp/0131774298