|
I don't know if C is the best language to learn the basics, IMHO, there's no such thing as a "best" programming language to start in, because whichever one you choose, will only give you a partial picture of programming. - Much like learning a natural language, the first couple of languages you learn are always the most difficult.
C is a procedural language, and fairly low-level compared to many others, though still widely used in commercial projects - particularly in systems programming (eg, operating systems, distributed networked systems) and real-time systems (eg, mechanical production lines, household appliances etc).
Being a low-level programming language, most absolute beginners have a really frustrating experience trying to get seemingly "simple" things to work properly (Especially when those "simple" things turn out to be something which the standard language doesn't do). AFAIK, most colleges/universities have stopped trying to teach Pascal/C as a 'first language' because of students feeding back their frustration about trying to understand a finicky programming language, understand the low-level workings of the computer, whilst learning how to solve software problems & design solutions all at the same time.
- On the other hand, high level languages give a broader view of software development, people tend to have a far less frustrating time trying to get a simple Java/C#/Python program working, than a C program. Though high level languages generally have a narrower applicability (usually focused on heavily GUI-focused apps in windows or web applications), their main benefit as introductory languages, are that you can focus on problem solving far more than nitpicky language quirks and "gotcha's". - This comes with the caveat of a new programmer being relatively detached from the inner-workings of their computer, and a severely distorted view of what a program is actually doing. High level languages do a very good job (or very bad job depending on your perspective) of hiding away "unnecessary" detail to the programmer.
C is certainly worth knowing, being almost the 'de-facto' standard language within industry (Most employers view C as being a language worth knowing, even if the job they're offering doesn't involve C. This is less true for C++, Java, C#, etc). - Learning C as a first language certainly isn't a disadvantage, but its not easy either.
|