Hello, World! So in my previous post, I discussed the programming language that is best for a beginner to learn. If you are looking to venture into programming, then you should check out that post.

As a sequel to that post, my next few posts will be in a series which I will call the “Why You Should Learn…” series. The series will be aimed at giving you the insight you need to make proper choices about the programming language you should learn.

Each post in the series will discuss a specific programming language, present you with its advantages, and leave you to decide for yourself why (if at all) you should learn the language.

This is because, in reality, only you can make the right decision about the programming language you should learn. All you need is the right information; and that is what I bring to you.

This is the first post in the series and, in this post, I discuss the C programming language.

C programming language was invented, in 1972, by Dennis Ritchie for the UNIX operating system which was popular at the time.

What this means is that C has been around for nearly half a century! Yet, C has continued to retain its relevance in today’s technology ecosystem. Virtually all compilers of modern programming languages are written in C. In addition, the popular operating systems used today, as well as, several embedded systems and enterprise applications that drive the today’s technology world are written mostly in C.

So why should you learn C? Well, it depends on the decision you make. But here are 3 points you may like to consider when making your decision.

#1 C Teaches You “Responsible Programming”

You see, unlike some modern languages, C is a very strongly typed language. What this means is that C enforces that every piece of data in its programs must have an explicitly specified data type. This ensures that data cannot be created and manipulated carelessly by the programmer.

This is what I call “responsible programming” because it forces the programmer to be intentional about, and in control of, how every part of their programs work. By enforcing strong data types, C teaches its programmers this important skill of “responsible programming.”

Another way C teaches “responsible programming” is by not providing an automatic garbage collection system. Automatic garbage collection is a feature, in many modern programming languages, whereby the runtime system of the programming language automatically frees up memory that a running program no longer uses.

Although it is a well intentioned feature, it has the effect of denying programmers the opportunity to learn “responsible programming.” This is because, it provides a safe haven for programmers to allocate and abandon memory blocks carelessly.

However, C language does not allow for such “irresponsibility.” In C language, all allocated memory blocks must be explicitly released by the programmer or else they would linger around, waste memory, and eventually lead to memory leak errors. Thus, every C programmer has no choice than to take the responsibility and follow the path of “responsible programming.”

#2 C Gives You Direct Access to the Internal Workings of the Computer System

Traditionally, programming languages are categorised as either high-level or low-level languages. However, computer science experts usually refer to C, fondly, as a “middle-level” language. This is because, in spite of the fact that C is technically a high-level language, it gives programmers access to the internal workings of the computer just like a low-level language would do.

For example, some C features like pointers and bitwise operations exactly reflect how computer systems work under the hood.

Pointers allow programs to access any addressable location in the computer memory. With pointers, a programmer can even manipulate data in byte-sized chunks.

What’s more, a programmer can even go further and use bitwise operations to manipulate individual bits. C even has keywords (for example the register keyword) which are used to speak directly to the computer processor!

In short, the depth of access that C gives is unrivalled by any other high-level language. Other high-level languages mostly build a level of abstraction upon these low-level aspects that C naturally exposes.

This explains why the compilers of many high-level languages are implemented in C. It also explains why the software frameworks, upon which most modern software run on, are written in C.

For these same reasons, if you are a interested in getting deep understanding of computer science concepts, you may find C language very useful – I was a computer science major so I am saying this from experience 😁

#3 C is the Basis After Which Most Modern Programming Language are Modelled

Java, JavaScript, C++, C#, Objective-C, PHP… name them. They all have one thing in common: their “C ancestry.” In fact, almost all modern programming languages are modelled after the C language.

In this way, C has established itself as a “grandfather” among programming languages. Its syntax, semantics, and basic philosophy have come to be a sort of standard template which other programming languages adapt and extend.

What does this mean to you as a programmer? Well, it means that once you acquire excellent fluency in the C language, you have invariably acquired a significant level of fluency in virtually all languages used in today’s technology world!

So, why should you learn C? Well, only you can answer that for yourself. But before you answer, check out my other posts in the “Why You Should Learn…” series so that you can take a more informed decision.