Should you learn C programming?- With PDF

Dear Friends, If only it were possible to answer this question with a simple “yes” or “no”. Unfortunately, it’s not an easy question to answer and varies from person to person.

Personally speaking, I love C programming. It is a good language to start your programming journey if you are a newbie. Even if you are an experienced programmer, I recommend you to learn it at some point; it will certainly help.

# What will you gain if you learn C?

If you don’t know C, you don’t know what you are doing as a programmer. Sure, your application works fine and all. But, if you can’t say why while (*s++ = *p++); copies a string, you’re programming on a superstition. (Joel Spolsky’s words, not mine ).

I believe that nobody can learn C++ or Java directly. This is because while learning these languages you have things like classes, objects, inheritance, polymorphism, templates, exception handling, references, etc. do deal with apart from knowing the actual language elements. Learning these complicated concepts when you are not even comfortable with the basic language elements is like putting the cart before the horse. Hence one should first learn all the language elements very thoroughly using C language before migrating to C++, C# or Java.

Major parts of popular operating systems like Windows, UNIX, Linux is still written in C. This is because even today when it comes to performance (speed of execution) nothing beats C. Moreover, if one is to extend the operating system to work with new devices one needs to write device driver programs. These programs are exclusively written in C.

  1. You will understand how a computer works.

    If you know C, you will not only know how your program works but, you will be able to create a mental model on how a computer works (including memory management and allocation). You will learn to appreciate the freedom that C provides unlike Python and Java.

    Understanding C allows you to write programs that you never thought were possible before (or at the very least, you will have a broader understanding of computer architecture and programming as a whole).

  2. C is the lingua franca of programming.

    Almost all high-level programming languages like Java, Python, JavaScript etc. can interface with C programming. Also, it’s a good language to express common ideas in programming. Doesn’t matter if the person you are talking with doesn’t know C, you can still convey your idea in a way they can understand.

  3. Opportunity to work on open source projects that impact millions of people.

    At first, you may overlook the fact that C is an important language. If you need to develop a mobile app, you need Java (for Android), Swift and Objective C (for iOS). And there are dozens of languages like C#, PHP, ASP.net, Ruby, Python for building web application. Then, where is C programming?

    Python is used for making wide range for applications. And, C is used for making Python. If you want to contribute to Python, you need to know C programming to work on Python interpreter that impacts millions of Python programmers. This is just one example. A large number of softwares that you use today is powered by C.

    Some of the larger open source projects where C programming is used are Linux Kernel, Python Interpreter, SQLite Database.

    Another language that’s commonly used for large open source project is C++. If you know C and C++, you can contribute to large open source projects that impacts hundreds of millions of people.

  4. You will write better programs.

    To be honest, this statement may not be true all the time. However, knowing how computer works and manage memory gives you insight on how to write efficient code in other programming languages.

  5. You will find it much easier to learn other programming languages.

    A lot of popular programming languages are based on C (and C++, considered superset of C programming with OOP features). If you know C, you will get a head start learning C++. C++, C# or Java make use of a principle called Object
    Oriented Programming (OOP) to organize the program. This organizing principle has lots of advantages to offer. But even
    while using this organizing principle you would still need a good hold over the language elements of C and the basic
    programming skills.

    Languages like C# and Java are related to C and C++. Also, the syntax of JavaScript and PHP is similar to C.

    If you know C and C++ programming, you will not have any problem switching to another language.

 

# Programs under Mobile devices, microwave oven, washing machines and digital cameras are also written in C

Mobile devices like cellular phones and palmtops are becoming increasingly popular. Also, common consumer devices like microwave oven, washing machines and digital cameras are getting smarter by the day. This smartness comes from a microprocessor, an operating system and a program embedded in this devices. These programs not only have to run fast but also have to work in limited amount of memory. No wonder that such programs are written in C. With these constraints on time and space, C is the language of choice while building such operating systems and programs.

# 3D computer games also written in C

You must have seen several professional 3D computer games where the user navigates some object, like say a spaceship and
fires bullets at the invaders. The essence of all such games is speed. Needless to say, such games won’t become popular if they takes a long time to move the spaceship or to fire a bullet. To match the expectations of the player the game has to react fast to the user inputs. This is where C language scores over other languages. Many popular gaming frameworks have been built using C language.

# Reasons not to learn C programming

You can create awesome softwares without knowing C programming at all. Jeff Atwood, one of the creators of Stackoverflow.com, apparently doesn’t know C and Stack Overflow is a really good web application.

If you are busy and don’t want to invest time on something that doesn’t have direct effect on your day-to-day work, C programming is not for you.

Also, if you are a newbie and want to start learning programming with an easier language (C is not the easiest of language to learn), you can start with Python.

# Whether to learn C programming or not ?

For newbie:

For many, C programming is the best language to start learning programming. However, if you want to start with an easier language which is clean and easier to grasp, go for Python.

For experienced programmers:

It’s not absolutely essential but there are perks of learning C programming.

Don’t leave your current project immediately (I know you won’t) to learn C. You can learn it when you have free time and want to expand your programming skills.

I hope that these are very convincing reasons why one should adopt C as the first and the very important step in your quest for
learning programming languages. However, you should learn C eventually through this online course on mathematical physics lab according to UGC CBCS syllabus.

Download this article as PDF

We hope you enjoyed to read this article. If you have any questions, please comment below!

Previous                              Main Menu                                   Next Page

Leave a Reply

Your email address will not be published.