Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / C

New Developers and the Importance of C

4.52/5 (29 votes)
12 Apr 2015MIT6 min read 43.7K  
New developers and the importance of C; this blog post is about my opinion and views about C programming language's importance for beginners in programming. Yours might be different!

Introduction

Computer programming is a process in which programmer would create and develop software for the computers which would run a program, to solve a finite set of problems using a computer. Computer programming has been up since the beginning of computer system. In the first generation a vacuum tube was used, and after it since the transistors, binary language has been used to program the computers. Low-level programming has been introduced since Colossus; the first programmable computer.

Many changes have been made in this field and developers are stepping into this field to make computer systems even better than before. We are finding way better computers and their logic is even stronger than the previous era.

OS and the Programming Need

There was a need of an OS, since for each computer, the architecture was the same and the programs that it would run were also the same, but they had to write the same Operating System that would take control of the basic operations of the computer hardware for each of the computers separately. So, many operating systems were introduced. Dennis Ritchie was the guy behind re-writing the Unix operating system in C programming language. To teach those OSs, a language was required to tell the computer system what to do. Programming is a method of creating such applications that would guide the computer’s system in executing the commands.

C is a low-level programming language, in which control over hardware is also provided. It was developed by Dennis Ritchie between 1969 and 1973 at AT&T Bell Labs. You can easily control the memory, processor and the registers using low-level language and you can manage the connected devices too. Assembly language is one of the first low-level languages introduced after machine language (binary). But it was also less-understandable by humans as compared to C.

C Programming Language

C language is also known as the father of modern programming. Although there were other languages like BASIC and some others, C was outstanding and outweighed in plus points as compared to them.

C language is a general-purpose programming language. There are no classes, no interfaces in C. But there are much more powerful tools in it, pointers and much more which are used to manipulate the memory in run time. C has been used as the building-block for many of the languages of high-level programming, which include Java, D, Visual C#. C++ and Objective-c, when compiled, create a C language code and the C code is then compiled converting the code into native code enabling faster processing since the code is directly understandable by the computer once executed.

Why There Are No More Good software Anymore?

The new generation of the developers is really busy in their “get attention of public, specially girls” sort of thing and they lag the vital component of being a programmer which is, to help build a better digital world. I have been on too many forums, where new developers come and ask questions as vague as, why do I get Null error? I mean, really? This tells that the person, OP, does not have very basic understanding of the “programming” concept and he just heard that Bill Gates is the richest person alive, he build a computer software known as MS-DOS and hey man, I can do the same here. All I have to do is to create a software and yeah, I will be a billionaire. This mentality of the new developers doesn’t let them win the race.

Why Learn C

C programming is vital, and must be taught instead of C++. Although C++ covers the concepts of Object-oriented programming, C is the main language that almost 90% of the programmers must know. 10% can rely on C++ or any other high-level language. On my journey, I have learnt Visual C#, Java, Visual C++, Visual Basic, ASP.NET and many more languages and I have always found people complaining about the speed of the language and the answer was always to learn C language or to use C++, since they compile down to the native code making it faster for the application to run.

Problems at College Level

The college I study at teaches us; or should I say only taught us, C++ for 2 months and it was all cramming; murder of the programming concept is to teach programming on paper. Although it is because of the lack of resources here, but still new programmers must be taught programming skills. I remember my days of HTML learning, although it was never a tough language but for me, without any knowledge and understanding, the ASP.NET code was like a petition against me.

Side-effects of Not Learning Low-Level Programming Language

Most of the embedded devices require low-level programming, most of the microcontrollers require the developer to have enough understanding of the low-level programming, and the concepts involved in low-level programming such as memory management, pointers and other concepts that are required in programming for microcontrollers, or other microchips and embedded devices. For a modern developer (a developer who can only write applications on .NET framework, or Android OS) would never be able to program for such devices. There is another concept called Internet of Things that can be however programmed using the .NET but devices connected to it must be programmed using a low-level language for a better output.

No General Support of these Languages

There is no support for C and other programming languages, such as Assembly, and the best IDE (at least in my opinion) Visual Studio doesn’t support the Assembly projects, but still MASM is included. That is why major colleges and institutions teaching software engineering and computer programming do not teach Assembly, C, or any other programming language that explains the computer programming concept in real. This removes any traces and interest of a programming student to better understand the computer architect and then produce the software for it. But instead, programmers are more-likely to be developing the applications for themselves, and not for public use.

Do or Die; C or Blind

Students must be taught the difference between a low-level programming and the high-level programming and their minds must be set to always prefer low-level programming instead of high-level programming; which in turn teaches them to go for the simplest and memory-efficient method for performing a task, rather than memory consuming task. You can think of it as the programmer must always go to the harder but efficient way and must always ignore the easy but vague way of doing programming. A framework that built the application might at any time get deprecated and so on. But an application developed using the low-level programming language would never fall short at any time. This ensures not only the efficiency, but the quality of the application. Low-level programming is also not bad for the person, it makes his mind able to solve basic riddles that he might face each day.

Online Resource for Learning C

I have been searching for a C compiler and a resource library to look deep into the C language, and I found the resource library at The C Library Reference Guide. Online compiler can be easily accessed at Compile and Execute C Online.

Own quote:

Programming is best hobby for our mind, if done in a low-level language. 

License

This article, along with any associated source code and files, is licensed under The MIT License