Hi guys, am learning c as a beginner language and am finding it rough
especially with pointers and data files. What do you think, am i being
too pessimistic or thats how it happens for a beginner? Are there
better languages than c for a beginner? For instance visual basic or i
should just keep the confidence of improving?
First of all, programming is a skill, and like any other skill it
requires non-trivial amounts of time and effort to learn; you're not
going to figure everything out all at once. Usually, you have to take
some things on faith and hope that they'll make sense in the future.
Eventually, things start to click, but it can be weeks or even months
before some concepts will be clear.
C is terrible as a teaching language, and pointers are just the tip of
the iceberg. It was designed for people who were already expert
programmers and wanted something a bit more flexible than what was
available at the time. There are a ton of subtle little gotchas that
you just have to learn about over time, and the syntax can be less than
intuitive now and then.
*Any* language is going to be tough for a beginning programmer, since
you're having to learn how to program in addition to the language
itself. Some languages are tougher than others, though, and C falls
well into the "tougher" category. Unfortunately, my experience with
other languages isn't all that broad. I've heard from others that
Python or Ruby make good teaching languages. I think languages like
Java and C# would work pretty well as teaching languages, provided
you're willing to learn OO concepts on top of everything else.
Another thing to consider: C is a product of the early 1970s, and it
shows. It provides no high-level support for networking, or file
system management, or graphics, or sound, or any of a number of other
features that more modern languages like Java and C# do. If you want
to start writing Windows apps, you might be better served starting with
something like C# and the .Net framework.
Then again, switching gears at this point might be even more
counterproductive than just plugging along in C.