-
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.