December 24, 2019

Learn C for Unix: A Coding Adventure


As I learn more about Linux and venture deeper into the roots of how my computer works, I encountered an issue. Many people rave of the customizability of ST, a Suck-less terminal program, but one may only customize it via C. I only know python, and at that not a lot of python. So I figured I’d learn C, why not? It makes up both many programs like ST and also the Linux Kernel itself. To truly embark on this Linux Journey. I must Learn C.


How shall I learn C? I encountered many different resources offering to teach C, from YouTube videos, to online courses, to books. One shines out above the rest though, the book “The C Programming Language (2nd Edition)” by Kernighan and Richie. Kernighan was one of the original developers of the C programming language, and he even invented the famous program “hello world”. While many sources offer to teach C, non are as tried and true as this book.

My Journey

I’ve just begun learning C a few nights ago, and as it’s the holidays and I’m a little busy my progress has been a little slow. I plan to get through this book on C and after that read the book “advanced programming in a UNIX environment” so I will know more about not just the C language but how it applies to Linux and other Unix based operating systems.

I hope I’m able to share some of what I learn with you and I may use what I learn to help create interesting new projects for this blog that inspire you.


  • Careful! While “The C Programming Language” does teach you a lot about the – very old state of the – base language, it applies extremely poor, terrible programming style and habits.
    Nowadays it is considered more of a well-written classic, a relic so to speak.
    From a modern programmer’s standpoint, Stephen G. Kochan’s “Programming in C” is a better introductory book, although arguably not as well-written, and with less complex algorithms according to my memory.
    I’ve heard the best things about “C Programming: a Modern Approach” by K. N. King so far, although I haven’t read it myself.

    • Thank you, I gathered that a bit. As I have read a bit more I’ve more switched to reading a bit less in depth so I can still learn a bit about the base language. After that I do plan to move onto a book that talks more about modern C and current techniques/best practices in C. I gathered that this book does not offer all the most modern best practices however as a systems nerd I do like to get into the nitty-gritty of the base language itself than build up from that, which I think is provided fairly well from this book. I will check out the books you reccomended after I’m done with this one 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *