Reddit Reddit reviews Expert C Programming: Deep C Secrets

We found 36 Reddit comments about Expert C Programming: Deep C Secrets. Here are the top ones, ranked by their Reddit score.

Computers & Technology
Books
Computer Programming
Microsoft C & C++ Windows Programming
Microsoft Programming
Expert C Programming: Deep C Secrets
Check price on Amazon

36 Reddit comments about Expert C Programming: Deep C Secrets:

u/BeowulfShaeffer · 45 pointsr/programming

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.

u/ptitz · 12 pointsr/embedded

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.

u/yur_mom · 9 pointsr/programming

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

u/sindisil · 9 pointsr/C_Programming

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.

u/bit0fun · 7 pointsr/C_Programming

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

u/FullBetaReduction · 6 pointsr/programming

fair enough, I shall tell you my favorite C programming book then
deep c secrets

u/urection · 6 pointsr/programming

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

u/snops · 5 pointsr/Cprog
  • Redis is a very popular key:value store written entirely in very readable C. However if you were to expand your list to just "popular software written in C" (such as MariaDB) it would probably be very long, and not too useful. I would advise you to not do this, and focus on C specific stuff.

  • ZeroMQ is a pretty nice networking library for high performance message passing.

  • Jannson is apparently pretty popular for working with JSON. I haven't used it myself.

  • Ragel is a DSL for finite state machines that compiles to C amongst other languages. You can also use it to parse text, by describing your tokens with regex like syntax, and wiring token detection to state transitions. It sounds complex, but its actually really straightforward, and I have found it to output parsing code much faster and safer than I could write it, and it worked fine in embedded too. Zed Shaw sings its praises here.

  • Expert C Programming: Deep C Secrets is a very good book, which should certainly not be your first or maybe second C book, but really digs into the innards in a very interesting and entertaining way.

u/madsci · 5 pointsr/C_Programming

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.

u/ipe369 · 4 pointsr/cprogramming

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

u/CSMastermind · 4 pointsr/learnprogramming

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


  1. Cracking the Coding Interview: 189 Programming Questions and Solutions
  2. Programming Interviews Exposed: Coding Your Way Through the Interview
  3. Introduction to Algorithms
  4. The Algorithm Design Manual
  5. Effective Java
  6. Concurrent Programming in Java™: Design Principles and Pattern
  7. Modern Operating Systems
  8. Programming Pearls
  9. Discrete Mathematics for Computer Scientists

    Junior Software Engineer Reading List


    Read This First


  10. Pragmatic Thinking and Learning: Refactor Your Wetware

    Fundementals


  11. Code Complete: A Practical Handbook of Software Construction
  12. Software Estimation: Demystifying the Black Art
  13. Software Engineering: A Practitioner's Approach
  14. Refactoring: Improving the Design of Existing Code
  15. Coder to Developer: Tools and Strategies for Delivering Your Software
  16. Perfect Software: And Other Illusions about Testing
  17. Getting Real: The Smarter, Faster, Easier Way to Build a Successful Web Application

    Understanding Professional Software Environments


  18. Agile Software Development: The Cooperative Game
  19. Software Project Survival Guide
  20. The Best Software Writing I: Selected and Introduced by Joel Spolsky
  21. Debugging the Development Process: Practical Strategies for Staying Focused, Hitting Ship Dates, and Building Solid Teams
  22. Rapid Development: Taming Wild Software Schedules
  23. Peopleware: Productive Projects and Teams

    Mentality


  24. Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency
  25. Against Method
  26. The Passionate Programmer: Creating a Remarkable Career in Software Development

    History


  27. The Mythical Man-Month: Essays on Software Engineering
  28. Computing Calamities: Lessons Learned from Products, Projects, and Companies That Failed
  29. The Deadline: A Novel About Project Management

    Mid Level Software Engineer Reading List


    Read This First


  30. Personal Development for Smart People: The Conscious Pursuit of Personal Growth

    Fundementals


  31. The Clean Coder: A Code of Conduct for Professional Programmers
  32. Clean Code: A Handbook of Agile Software Craftsmanship
  33. Solid Code
  34. Code Craft: The Practice of Writing Excellent Code
  35. Software Craftsmanship: The New Imperative
  36. Writing Solid Code

    Software Design


  37. Head First Design Patterns: A Brain-Friendly Guide
  38. Design Patterns: Elements of Reusable Object-Oriented Software
  39. Domain-Driven Design: Tackling Complexity in the Heart of Software
  40. Domain-Driven Design Distilled
  41. Design Patterns Explained: A New Perspective on Object-Oriented Design
  42. Design Patterns in C# - Even though this is specific to C# the pattern can be used in any OO language.
  43. Refactoring to Patterns

    Software Engineering Skill Sets


  44. Building Microservices: Designing Fine-Grained Systems
  45. Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools
  46. NoEstimates: How To Measure Project Progress Without Estimating
  47. Object-Oriented Software Construction
  48. The Art of Software Testing
  49. Release It!: Design and Deploy Production-Ready Software
  50. Working Effectively with Legacy Code
  51. Test Driven Development: By Example

    Databases


  52. Database System Concepts
  53. Database Management Systems
  54. Foundation for Object / Relational Databases: The Third Manifesto
  55. Refactoring Databases: Evolutionary Database Design
  56. Data Access Patterns: Database Interactions in Object-Oriented Applications

    User Experience


  57. Don't Make Me Think: A Common Sense Approach to Web Usability
  58. The Design of Everyday Things
  59. Programming Collective Intelligence: Building Smart Web 2.0 Applications
  60. User Interface Design for Programmers
  61. GUI Bloopers 2.0: Common User Interface Design Don'ts and Dos

    Mentality


  62. The Productive Programmer
  63. Extreme Programming Explained: Embrace Change
  64. Coders at Work: Reflections on the Craft of Programming
  65. Facts and Fallacies of Software Engineering

    History


  66. Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software
  67. New Turning Omnibus: 66 Excursions in Computer Science
  68. Hacker's Delight
  69. The Alchemist
  70. Masterminds of Programming: Conversations with the Creators of Major Programming Languages
  71. The Information: A History, A Theory, A Flood

    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.

  72. Peter Norton's Assembly Language Book for the IBM PC
  73. Expert C Programming: Deep C Secrets
  74. Enough Rope to Shoot Yourself in the Foot: Rules for C and C++ Programming
  75. The C++ Programming Language
  76. Effective C++: 55 Specific Ways to Improve Your Programs and Designs
  77. More Effective C++: 35 New Ways to Improve Your Programs and Designs
  78. More Effective C#: 50 Specific Ways to Improve Your C#
  79. CLR via C#
  80. Mr. Bunny's Big Cup o' Java
  81. Thinking in Java
  82. JUnit in Action
  83. Functional Programming in Scala
  84. The Art of Prolog: Advanced Programming Techniques
  85. The Craft of Prolog
  86. Programming Perl: Unmatched Power for Text Processing and Scripting
  87. Dive into Python 3
  88. why's (poignant) guide to Ruby
u/phao · 4 pointsr/C_Programming

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:

u/achacha · 3 pointsr/cpp
u/TheSuperficial · 3 pointsr/cpp

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"

u/crunchy_fetus · 3 pointsr/learnprogramming

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.

u/jones77 · 3 pointsr/Python
u/[deleted] · 2 pointsr/learnprogramming

Well, let's see.You need to learn ANSI C, not K&R C. That is deprecated.

Books:

  1. K&R 2nd Edition (ANSI)
  2. C: A Reference Manual
  3. Expert C Programming

    Free:

  4. c-faq.com
  5. C Programming

    Note: Some repositories/projects of interest for practicing; those you will have to find yourself on bitbucket, github, assembla etc.
u/Leandros99 · 2 pointsr/programming

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:

u/leoc · 2 pointsr/programming

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.

u/faehnrich · 2 pointsr/learnprogramming

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.

u/jimauthors · 2 pointsr/compsci

Expert C Programming : Read this after reading K&R C book.
Programming Pearls : Excellent Book
Algorithm design manual : Read it after CLRS.

u/TheLordIsAMonkey · 2 pointsr/learnprogramming

If you're looking for a good book I recommend Expert C Programming.

u/TraylaParks · 2 pointsr/cprogramming

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

u/nickdesaulniers · 2 pointsr/programming

I've read almost all the books on C. I think you can get by with just:

  1. Head First C
  2. Expert C Programming: Deep C Secrets
u/eric_weinstein · 2 pointsr/learnprogramming

C books I've found useful:

Beginner

u/yellowking · 1 pointr/programming

>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."

u/plana · 1 pointr/Cplusplus

I think you would enjoy Expert C Programming: Deep C Secrets. Note: the book was first published in 1994

u/theboxingfox · 1 pointr/C_Programming

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.

u/xmachina · 1 pointr/greece

Το βιβλίο υπάρχει και στα ελληνικά και είναι καλό. Αξιοπρεπέστατο είναι και το βιβλίο των Τσελίκη-Τσελίκα "C Από τη θεωρία στην πράξη" - http://www.c4all.gr/

Τα δικά μου favorites by far: K&R και Deep C Secrets του Peter van der Linden .

u/Truth_Be_Told · 1 pointr/C_Programming

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);

u/dysoco · 1 pointr/todayilearned

Off the top of my head this book comes to mind.

u/garagumu · 1 pointr/programming

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

u/keltor2243 · 1 pointr/learnprogramming
u/ivorjawa · 1 pointr/EngineeringStudents

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