Learning to program is definitely a "learn by doing" activity just like mathematics is a "learn by doing" activity. In fact I would say that, unless you are blessed to have a skilled mentor at hand, the only way to learn either is to (1) learn the theory, (2) do it yourself, (3) see how others have done it and (4) repeat.
There are many problems with skipping (1). The most obvious is all the time you will waste rediscovering/reinventing things but that is not the only problem. I've had to clean up lots of bugs associated with undefined behavior (C & C++ has a scary amount, see
Deep C (and C++), for example) when porting code bases - not fun.
To answer the original question, if you want a gentle approach "Head First C" is pretty good for what it covers. Also, "C: A Reference Manual (5th Edition)" is very good once you've gotten your feet wet.
The ideal way to get the most out of "Handmade Hero" would be to look at the outline for each day's talk and then try to implement those things yourself first (set a time limit, say 1 hour) and then see how Casey does it. Obviously that takes a lot of time but you get out what you put in.