Though C has been around for decades, it’s still consistently ranked at the top of any list of programming languages used and studied today. I recently spoke with David Griffiths (@dogriffiths), coauthor of Head First C, about the reasons for C’s continued (even increased) popularity and what his book offers in such an established market.

Highlights from our conversation include:

Why is C still popular? It’s ubiquitous, closer to the hardware, and used to create other languages and operating systems. [Discussed at the 0:32 mark]

It’s ubiquitous, closer to the hardware, and used to create other languages and operating systems. [Discussed at the 0:32 mark] What kinds of software is C used for these days? System programming (in pure C) or specialized areas when working with languages that are extensions of C or closely related (e.g., knowing C makes Objective-C programming for iOS apps more efficient and C++ games programming more intuitive). [Discussed at the 3:18 mark]

System programming (in pure C) or specialized areas when working with languages that are extensions of C or closely related (e.g., knowing C makes Objective-C programming for iOS apps more efficient and C++ games programming more intuitive). [Discussed at the 3:18 mark] If you learn C, what will it do for you? Knowing C gets you closer to the hardware, to better understand how things work on the system level. [Discussed at the 4:55 mark]

Knowing C gets you closer to the hardware, to better understand how things work on the system level. [Discussed at the 4:55 mark] Why write Head First C? Kernighan and Richie’s The C Programming Language is one of most popular, if not the most popular, programming books, and it defined the ANSI standard. That book is still the standard, but through the language hasn’t changed, the audience has, and many learners are coming to the language from a different perspective and set of knowledge. [Discussed at the 6:03 mark]

Kernighan and Richie’s The C Programming Language is one of most popular, if not the most popular, programming books, and it defined the ANSI standard. That book is still the standard, but through the language hasn’t changed, the audience has, and many learners are coming to the language from a different perspective and set of knowledge. [Discussed at the 6:03 mark] How does Head First C make the language more accessible to this new audience? For example, it teaches how memory works in a more profound way (a concept systems programmers will likely already know, though new programmers in specialized fields might not). [Discussed at the 8:12 mark]

For example, it teaches how memory works in a more profound way (a concept systems programmers will likely already know, though new programmers in specialized fields might not). [Discussed at the 8:12 mark] Describe the labs in Head First C. The book includes three hands-on missions for the learner, presenting the project without completed source code. In the first project, the learner uses Arduino lab to program a flower with sensors to tell you when it needs to be watered. In the second lab, a computer vision system (OpenCV) is used to capture images in a web cam to check for faces, motion, etc. And finally, the learner creates Asteroids game clone, pulling together many different concepts from the book. [Discussed at the 11:13 mark]

The book includes three hands-on missions for the learner, presenting the project without completed source code. In the first project, the learner uses Arduino lab to program a flower with sensors to tell you when it needs to be watered. In the second lab, a computer vision system (OpenCV) is used to capture images in a web cam to check for faces, motion, etc. And finally, the learner creates Asteroids game clone, pulling together many different concepts from the book. [Discussed at the 11:13 mark] Arduino is making C popular among the Maker community. As a constrained platform, Arduino is a natural environment for C. C makes the most of the machine’s performance, particularly with real-time processing of input/output. And because it’s such a small language, you can become competent in basic keywords rather quickly, making small Arduino projects a gratifying introduction to programming. [Discussed at the 13:54 mark]

As a constrained platform, Arduino is a natural environment for C. C makes the most of the machine’s performance, particularly with real-time processing of input/output. And because it’s such a small language, you can become competent in basic keywords rather quickly, making small Arduino projects a gratifying introduction to programming. [Discussed at the 13:54 mark] Why should colleges continue to teach C? It’s an important, foundational language that requires you to understand the full stack of the technology. If you learn C, you’ll understand computers at a much more profound level than if you don’t. [Discussed at the 15:31 mark]

The full interview is available in the following video:

Related: