C Foundations through Operating Systems
Start with typed C functions, variables, integer and decimal arithmetic, choices, loops and arrays. Small operating-system examples give each language feature a purpose. Finish by combining helpers into a resource summary; no previous programming experience is assumed.