Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Great post! Univiersites tend to teach a very small subset of C, just enough to make a tic tac toe application or something silly.

I learned C by myself many years ago but it's only until recent I have been using it for big projects.

Reading Redis' source code was a great aide, xv6 is also amazing to learn systems programming.

Learn C The Hard Way is also a good read, but not as your main book, since it goes too fast. Other invaluable resources are: Beej's Guide to Network Programming and Beej's Guide to Unix Interprocess Communication

A good advanced book is Advanced Programming in the Unix Environment



Books I have read so can personally recommend are (in no particular order)

    Programming in C
    C Primer Plus
    K&R (obviously)
    21st Century C
    Modern C (also mentioned in this post)
    Understanding and Using Pointers in C


I loved "Expert C Programming: Deep C Secrets" by Peter Van der Linden. Great deep dive on the minutiae of important details (the difference between arrays and pointers as function arguments, etc)


I do agree, that book is really great, both very in-depth and at the same time entertaining to read.

Unfortunately, it appears to have been out of print for a while now.

Another book I can highly recommend is "The New C Standard: A Cultural and Economic Commentary" (http://www.knosof.co.uk/cbook/cbook.html). It takes apart the C language standard (C99) pretty much sentence by sentence, explains what it means and also contrasts how C99 is similar to or different from other languages (C++ mostly, but also, say, Fortran or Pascal).


+1 for Beej. I barely knew C when I enrolled in network programming, so trying to fill my C gaps alongside learning network programming was challenging. Someone recommended Beej. Then it was just a matter of C.


Is there a commentary on Redis source code? Always been fascinated how they implement the data structures.



This is awesome. Thanks a lot.


A few people mentioned xv6. What aspects did you find amazing for your learning process?


APUE is a great reference book, but I didn't find myself reading it linearly.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: