I too learnt C from K&amp;R.  It is good for coming to grips with the language.  Coming from Python, you might have to come to grips with pointers, typedefs, structs, etc.<p>Once you have the basics sorted, the real learning comes from reading some open source project.  There are lot of conventions and patterns in use.  They are dictated by the compiler (and other tools) being used and the project&#x27;s conventions.<p>Personally I learnt a great deal from studying Unix kernel sources from the John Lions books.  A more modern equivalent is &quot;Linux Core Kernel Commentary&quot;.<p>Once you read up on different open source projects, you will see that there is <i>no one way</i> of using C.