
A common question students ask these days is “Why learn C and C++ in the age of Python?” Another one is “Are C and C++ important?”. Students often wonder why colleges still teach C and C++. Is any software development taking place in these two programming languages? You can’t even build anything with these programming languages? It seems that the entire world has been bitten by Python!
Let me start by saying that not only are C and C++ important today, they are likely to be very relevant for quite some time. C and C++ can be used to build any type of software such as operating systems, compiler, interpreter, integrated development environment (IDE), graphics tools, And are these two languages still popular? The TIOBE index published every month shows that they are indeed important. The TIOBE Programming Community index is an indicator of the popularity of programming languages. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. This index is not about the best programming language, it is about the one where skills are in demand.
This should convince you that C (and C++) are very much in demand. Although Python and Java are in demand, that doesn’t reduce the importance of C and C++. The reason Python has reached almost the top position is that it is being used by a very diversified set of people, not necessarily from computer science background. So you could find Python being used by students and researchers of history, economics, languages, law, as well as artificial intelligence and machine learning. But for applications such as IoT (Internet of Things), operating systems, compilers, etc., C, along with Java, are still very important.
Students generally find a few features of a programming language difficult. E.g. pointers in C are generally avoided by students. Yet, pointers are the heart of most applications developed in C. Object oriented features of C++ like polymorphism, inheritance and encapsulation are again topics where students tend to start ignoring the language – but those three features are the pillars of all object-oriented programming.
Some universities also teach Scratch. Now, Scratch may be good enough to introduce programming concepts to those who need only an overview of programming without having to deal with the inner working of computer, Scratch is certainly not a language to develop highly optimized mission-critical applications. It is good as an introductory language in schools but certainly not a college-level subject.
When you are learning Python and C or C++, you may begin to fall in love with the simplicity of syntax of Python. Not for Python the cumbersome semicolons (;) and curly brackets ({, }) or the mind-numbing public static void main of Java. Python offers you a very rich library of pre-defined functions that you can plug and play and build applications quickly. So there is no doubt that you can code faster in Python, but the point is this – you write code once, but the user has to run it many times. But an application built in Python may not run as fast as one in C.
A general-purpose programming language like C or C++ provides you with the basic tools and infrastructure to develop an application. You can always use libraries, frameworks and APIs to generate a commercial application.
So where are C and C++ being used? To start with, the very browser you are using could be in C/C++. If you are using Java, then the Java Virtual Machine (JVM) is in C. Then again, compilers, interpreters, IDEs, graphic editors, video editors, animation applications, relational database applications, games, banking applications, embedded systems, IoT systems, robotics, etc., are all n C/C++. In fact, even the libraries and frameworks that other languages depend on are written in these languages. Many Python packages are coded in C/C++. Infact, Python itself has been developed in – you guessed it: C language.
If you are not being taught C and C++ in your regular courses, now is the time to enroll for an online course – Udemy, edX, Coursera, IITs all have many courses on these languages. A good book like those mentioned below will help you in learning these languages very easily. YouTube videos and online PDF exercises will also be good supplements. Follow the sequence of topics as given in a text or if you are studying online where the chapters are often not hierarchical, follow the sequence as given in my syllabus in the links below. Ask questions on online forums or to online teachers or here in the comment box. Once you learn of the languages like C, or C++, other languages become easier. I have discussed this in another artcile The Core of All Programming Languages.
I teach C, C++, Java and Python in online mode through Zoom sessions. You may want to look at the syllabus of the courses I teach. I shall be happy to guide you in learning these programming languages.
Happy learning.
My Online Course on C Programming
My Online Course on C++ Programming
Categories: Blog, C Programming, C++ Programming, Computer Science, Programming
Leave a Reply