Casey at the beginning gave a very brief introduction to C. It is not a comprehensive series but it was never intended to be.
There are a lot of video tutorials online for learning C but most of them are not good in the slightest. Many teach bad practices; out-dated versions; bad audio and bad video quality; assume you know many things already; etc.
I was wondering if people would be interested in a video tutorial series to learn C without any/little programming experience that was actually good.
Each video will have the code for that episode available and maybe a written version as well.
I will be doing this series on Windows as that is what most people will have and I will be using MSVC as the compiler (for numerous reasons).
The problem with MSVC is its C support is lacking. C99 isn't even supported properly as of MSVC 14 (2015). Should I teach a subset of C++ instead or just plain old C?
In Handmade Hero, Casey uses a subset or C++ as he uses operator overloading; function overloading; C++ zero initialization `= {}` vs `= {0}`; and more.
I personally prefer C99 with some C++(11) features:
- Function & Operator Overloading
- struct & union tags
- Namespaces
- References (mainly for const Type& in function passes)
- using instead of typedef
- Templates (only sparingly e.g. const T& max(const T& a, const T& b); Array<T>; HashMap<T>)
The other "problem" is that I prefer not to use an IDE. For a lot of beginners, an IDE can be very helpful but they are never as good as a text editor for editing text. I use sublime text as my text editor, use a batch/shell script to compile my code, and use MSVC as my debugger (on Windows).
I am also unsure as to how much I should cover and explain that is
not to do with C(++) directly. E.g. what is a: compiler; linker; text editor; debugger; command line; batch file; tabs and spaces; etc.
I am currently working on the
Dunjun Game Development Series. This is a series where I document and demonstrate the process of making a (3D) game from scratch. This series is by no means a tutorial series though as I constantly change my mind on things and how I should implement everything.
I would gladly appreciate any feedback and if anyone would enjoy and want a tutorial series like this.