2 ms·
C exposes the underlying memory structure rather than abstracting it away "safely" like many other languages. Requiring the programmer to understand and manage
by gregjor 3y ago
C exposes the underlying memory structure rather than abstracting it away "safely" like many other languages. Requiring the programmer to understand and manage memory presents the difficulty, because programmers usually start with languages that hide the details, whether they start with BASIC like I did, or with Python as many do today.
Understanding how CPUs and memory work requires the programmer to put in more effort learning the fundamentals at a lower level of abstraction. That creates a filter -- some people won't get through that and will forever find pointers, and therefore C, confusing and mysterious. I could say the same thing about SQL. If you don't actually understand the relational model and how databases work you stay at the surface level, never really sure what goes on inside.
The best intro to C remains the classic The C Programming Language by Kernighan and Ritchie, called K&R for short. I would recommend Adam Osborne's books on microcomputers to understand processors and memory but they went out of print decades ago.