Skimming through the pages, there is some things that aren't really accurate.<p>> Integers - whole numbers which can be either positive or negative. Defined using char, int, short, long or long long<p>char is either signed or unsigned depending on the platform/implementation. Use signed char if you want signed integers.<p>Telling people who are new to C to define booleans with macros is not a good idea, as they have had a proper implementation since c99.<p>It also feels weird to treat structs and pointers as advanced topics. They are basically required to be productive in the language.<p>stdint.h was introduced in c99, not c11.<p>Explaining bitwise operators as "bitmasks" is also quite weird. Bitmasking is just one of the few things you can do with them.<p>> In C, functions must be first defined before they are used in the code. They can be either declared first and then implemented later on using a header file or in the beginning of the C file, or they can be implemented in the order they are used (less preferable).<p>This paragraph reads weird. I haven't found any place where the tutorial mentions how to properly write header files. It might be because of the interactive part, but if that is the case then this tutorial doesn't really teach you how to program in C because the tooling around it is an important part of actually using the language.
It is also fairly common to declare functions in order of use. Discouraging that is like telling people they need to use tabs over spaces instead of actually focussing on language semantics.