Lately, I discover more and more that it's good to have extensive knowledge of programming fundamentals. Sadly, I am (one of the many) self-taught PHP developers and have no regrets choosing that path.
However, I still think I should extend my knowledge to some "real" programming languages starting from zero and build up my knowledge from there. I have no intention of changing my career path, but I do think it would be good to think out of the web-development box.
I prefer not taking classes or courses, because I simply do not have the time for this. So:
What is the best way to teach myself C step by step, starting from level zero?
As my main goal is to learn more programming fundamentals, is C even a good choice for this?
If not, what language would be?
Summary so far:
First of all, thanks for all the great responses. These will be quite helpful. Although most people seem to agree that starting off with C is not a bad choice, I have also seen people state that it is probably a better idea to skip C and go with C++ or even C#, since these languages are more current.
My personal opinion is still that it would be good to start from level zero, even if the language itself is not directly contributive to the things I make. I still believe it will indirectly make me a better programmer. But then again, like said, my knowledge of these languages is quite limited, so I'd love to hear your thoughts on the matter aswell.