Beej's Guide to C Programming
&gt; it is connected to the bare metal in a way that present-day languages are not.<p>While obviously C is closer to the metal than say, Python, it&#x27;s far less clear that this is true for a language like Rust† and I am increasingly dubious about the value of any of these high level languages (yes, even C) to learn &quot;How the machine really works&quot;. I reckon it&#x27;s probably more instructive to write a little bit of ARM assembly than to learn enough C to get to the same place today.<p>† Trivial example: Your CPU arithmetic operations probably natively behave exactly the way Rust&#x27;s Wrapping&lt;u32&gt; Wrapping&lt;i64&gt; etc. types do. In C the unsigned integer types, once you figure out how big yours are, are similar, but the signed ones are not!