Damien Katz, Couchbase, believes that C is still a great language for back-end programming, while other developers argue that C has too many flaws, supporting C++ or Java, while others like neither.
Most things you use are built on a layer of C. Including your operating system (a C kernel, whether it's Windows, Unix, MacOS, iOS, Android or ChromeOS); the Java Virtual Machine (built in C); the browser / javascript virtual machine (built in C).Embedded systems often use C. C is a very powerful and efficient language, that can provide low level interaction with the hardware.
Why to choose C language
- Most languages are ultimately implemented in C (at the bottom-most layer). So to understand what your computer is really doing you need to know C.
- You don't have a choice if you're writing kernel code, or device drivers, or other low-level stuff - it has to be done in C (in most cases)
- In many of the high level languages (like Python, Perl, Ruby, Android's Java) when you need to optimize for performance, you rewrite the most critical parts in C.
- Your job in college isn't to learn "languages". It is to learn computer science, and programming. Data structures, algorithms, writing good code - structured and modular programming, good software engineering practices, converting a vaguely defined real-life problem into a program specification, breaking up a program specification into a program design, breaking up a problem into pieces that can be solved, debugging, knowing where to look for answers when you get stuck, knowing how to separate the useful information from the trash in google searches - these are all far more important than which language you learn.
- Your primary purpose is college is not to get a job - but to get an education. You want to learn how to be a good computer scientist and a good programmer. Do not make your job and current market conditions the basis of your decisions. What is "hot" in the current job market changes every 5 years.