Even with so many other system-level languages to choose from, C remains the popular choice. Many key projects—such as the Linux kernel and the Python runtime—still use C, and they will likely do so indefinitely. For some fields of computing, like embedded programming, C is a must.
And there has never been a better time to learn C. Resources abound, from books to guided courses. Here we’ll look at four major online course offerings for learning C programming, each aimed at different levels of user and offering different approaches. For instance, one combines learning C with learning Linux, while another teaches C and C++ together.
Udemy: C Programming for Beginners
C is not necessarily the easiest programming language to learn first, but that doesn’t mean it’s not a suitable first language, or can’t be taught as one.Udemy’s C Programming for Beginners proves it, taking a “basics first” approach.
Not only does the course include an entire section devoted to installing the needed software on your system, be it Windows, Linux, or Mac, but it uses the beginner-friendly Code::Blocks as the code editor of choice. The course is also available with closed captions in multiple languages: English, French, German, Italian, Portuguese, Polish, and Spanish.
Length: 24 hours, self-paced.
DartmouthX and IMTx: C Programming with Linux
One thing you typically learn with a programming language is the toolset that goes with it. The DartmouthX and IMTx C Programming with Linux course teaches C programming hand-in-hand with the toolset provided for C in Linux. This makes sense, given that Linux itself is built with C, and Linux distributions include a C compiler. Windows is less friendly to C programmers in that you must obtain all the tools elsewhere.
Note that this isn’t a simple course. It consists of several modules over the course of a year, at an estimated three or four hours a week.
Length: One year (three to four hours per week), self-paced.
Duke University: Introduction to Programming in C Specialisation
This five-month set of four courses is aimed at newcomers to programming. It is not as full-out completist as some of the other courses here. It doesn’t cover the use of C in Linux, for instance. Rather it starts right at the beginning, taking its entire first course to talk about programming as a general problem-solving technique.
From there the sequence segues into the basics of C (course 2), then covers pointers and recursion (course 3), and memory management and system interaction (course 4).
The last course also touches on important differences between classroom-sized and real-world programming projects including their scope and management challenges. The four courses are given in English, but also subtitled in French, Portuguese (Brazilian), Vietnamese, Russian, Spanish, and English (for the hard of hearing).
Length: Five months, self-paced.
MIT Open Courseware: Effective Programming in C and C++
The course provides much material on C++ as well, including object-oriented programming and the use of features new to the C++11 standard. To that end it’s suitable for people who are considering C++ as well as C, and want some idea of how C++ expands on and enhances C.
Length: Four weeks, starting first week in January. However, open courseware can also be used independently.