Pictured is a peer learning day occuring


Why you should learn C

C, a general purpose programming language, was originally developed by Dennis Ritchie in the early 1970s. Being a middle-level language, C maintains modern control flow and data structures while offering the developer low-level capabilities such as pointers and memory allocation. The development of The C Programming Language was closely tied to and greatly influenced the development of the Unix Operating System. The Unix OS is written in C as well as the C compiler and all Unix applications.

Due to its speed (it’s faster than other high-level languages like Python) and portability, many modern programming languages and interpreters are also written in C such as Bash, C++, Javascript, SQL, PHP, and Python. C is a small language compared to many modern day programming languages.

With only 32 reserved keywords and a lack of restrictions, it would not take long for someone to trivially learn the language. However, there is quite a learning curve due to all of the possible mistakes that freedom entails. It will take a bit of time and studying for most people to write a program in C that does anything beyond trivial tasks. However, don’t fret! Just by learning basic C principals, you will strengthen your computer science and programming fundamentals.

C quote

It’s not a coincidence that many classes and universities teach C as the first programming language. While there is a learning curve, it exposes and teaches how the computer works under the hood. When learning something, you want to begin with the fundamentals before going to a high level concept. Once you’re comfortable with C, working with higher level languages like Python that abstract a lot allows you to concentrate on other things like algorithms.

C does not abstract anything from you. What you see is what you get. It’s close to the processor, and it gives the programmer control over memory. However, you must be able to understand how memory works in order to utilize it. Pointers, variables that hold memory addresses, are an important topic in C programming. They allow programmers to work directly with memory and the data stored in those specific places in memory. Stay tuned - we’ll discuss pointers later on in our series.

"The C programming language helps students build strong foundations of computer systems and understand the internals of how modern software stacks run."

—Mehdi Amini, Software Engineer at Google


Without the C programming language, we wouldn’t have higher level languages that make up so much of the technology that we use daily. By learning C, you will build yourself a solid foundation in your programming knowledge. aving a solid foundation is important, as it will help you understand new technology faster, since you will know what the technology is build on at it very core. Now that we understand the importance of C, next in our series, we will introduce important topics and commonly used functions in the C standard library. Stay tuned!

Written by:

Jinji Zhang, Cohort 6 (SF Campus)

Software Engineer Apprentice at Pinterest