C makes you wibble
I'm hardly a great judge, having just started with the language myself, but after years of high level dev (in language terms, not skill) using Perl, Python and PHP for web, I find that C can take you so close to the metal on the platform that you're working on, that it becomes less of a language issue, and more of an architecture / platform / OS issue.
C has few keywords, the same-ish loop structure as everything else you've used, so "learning" C is pretty easy. Learning "how" to use C could take a lifetime. Just poke through some of the docs on a friendly FreeBSD server, or look at the source code and see what can be achieved. It's mind blowing.
I am just getting started on all this myself.
I am learning through school rather then going through any sort of self study. I took an introduction to programming concepts where I learned psuedo code, then I took fundamental programming where I learned C# and at last I am on to C++.
With the first class I feared I had made a mistake and all of this was way over my head and there was no way I'd ever get it.
Then C# gave me hope, but I didn't have an IDE to work with and the compiler I was working with was cheap and annoying. I enjoyed what I was doing but I struggled with every new concept and execution.
Now I am working with a better book, an actual IDE instead of notebook and I am having so much fun. I see this as a form of art and I am enjoying myself so very much. I'm already planning programs in my head that are far beyond my capability.
how long should it take an average hobbyist to learn to program in c as the first language.
Depends on how long it takes you to read understand and implement the things you learn in the vast number of books and tutorials you'll be reading. I find that as soon as I have something I've been studying figured out completely; I have to turn the page...
I also find that reading, understanding, and implementing is a repetitive cycle on any particular subject. In what I've read its unlike a regular book where you can skip over the big confusing words and the rest of the novel/artical still makes sence.
Take your time and don't rush it. If you run up to something you don't understand it's best to try and figure it out.(write a lot of code until you will remeber what the words were at least refering to)
Nearly 20 years of C and I'm still "learning." Or rather, re-learning something I forgot about.
For the basic syntax, I'd give it a few months. To learn the C library well enough to not constantly have to consult a book, another year or so.
To get to the first thousand line program, at least a couple of years, unless you're unusually gifted.