One reason to learn C and C++ is simply that so much software is written in these languages. A related, butmore fundamental reason, is that C and C++ are relatively low-level, allowing ef?cient use of resources as well as direct access to pointers, critical for operating systems.
C is low-level, fairly close to what-you-see-is-what-you-get, with effectively no runtime system. (A runtime system is essentially an abstraction layer between the operating system and the appli- cation.) C is ef?cient in code space and execution time.
C++ is an upward-compatible (almost completely) object-oriented extension of C. This allows software-engineering bene?ts, including the use of classes, encapsulation ("private"), templates ("generics"), and other modularity advantages.