10 Reasons - Why C Should be your First Programming Language
by Anuj
To a beginner programmer the biggest question is where to start. Which language to choose from the mighty pool of 100’s of languages.
This is was the same question I asked myself when I started writing my first program. I tried many languages but finally I came to C, the most beautiful and charming language of all. I was literally blown away by the simplicity and elegance of C.
Though C is simple it is one of the most powerful languages ever created.
In this dynamic IT world new language come every day and get obsolete, so there must be something in the C which has remained there for 3 decades and more and even today there is hardly any language which can match its strength.
90% of the starting programmer says that C has been superseded by its predecessors such as C++, Java, and C # and so on so why learn C. I don’t know why they think so but I know one thing that they will never excel the other 10% programmers who differs from this opinion. Simple reason is how could a skyscraper building stand against time if its foundation is not strong.
C was the programming language developed at AT & T’s Bell Laboratories of USA in 1972. It was written by a man name Dennis Ritchie.
Now Let us begin to analyze reason why C should be your first programming language.
1. I believe nobody can learn C++ or Java directly. To master these languages you need to have a strong concept of programming element such as polymorphism, classes, inheritance etc. Simple question is how you can learn such complicated concepts when you don’t even know about the basic elements such as block functions. C is a language which begins from scratch and it has foundational concepts on which today concepts stand on.
2. It is language on which C++ is based on, hence C# also derive its origin from the C. Java is also a distant cousin of C and share the same programming concept and syntax of C. These are the most dominant languages in the world and all are based on C. To rock the world through them you must get rocking with C.
3. C++, Java, and C # make use of OOP (Object Oriented Programming). Not all programs need it even though it is a powerful tool. Such programs are still written in C.
4. When ever it comes to performance (speed of execution), C is unbeatable.
5. Major parts of the Windows, Unix and Linux are still written in C. So if you want program these OS or create your own you need to know C.
6. Device drivers of new devices are always written in C. The reason is that C provides you access to the basic elements of the computer. It gives you direct access to memory of your CPU through pointers. It allows you to manipulate and play with bits and bytes.
7. Mobiles, Palmtops, PDA’s etc are gaining popularity every second. Also appliances such as T.V., Refrigerators, and Microwaves etc. are becoming an integral part of our daily needs. You may not know but they have a CPU with them which do need programming and the software’s written for them are known as embedded system programs. These programs have to be fast in execution but also have a very little memory. No question why C is ideally suited for embedded system programming.
8. You must have played games on your PC. Even today these astounding 3D games use C as their core. Why? The simple reason who will play the game when it takes a lot of time fire a bullet after you have given command from the console. The reply to the command should be damn prompt and fast. Reply in 1 Nano second is an outstanding game; Reply in 10 Nano seconds is crap. Even today there is no match for C.
9. C is a middle level language. There are three types of language – High Level, Middle Level & Low Level. High level languages are user oriented, giving faster development of programs, example is BASIC. Low level languages are machine oriented; they provide faster execution of programs. C is a middle level language because it combines the best part of high level language with low level language. It is both user and machine oriented and provides infinite possibilities.
10. Last but not least it is a block structured language. The first symbol of a modern language is that it is block structured. Each code exists in separate block and is not known to code in other block providing easy means of programming and minimizing the possibilities of undesirable side effects. C is designed from the base to top to be a block structured language. Many older languages, most popular being BASIC tried to introduce this concept but their short coming can never fulfilled as they were never built along these line.
I think I have given all reason I know why c should be your first programming language. One thing is for sure that there no other language which more reliable, simple and easy to use.
RSS ?
5 comments on this post
Points 1-3 suggest you should learn C before C++ or Java - I tend to agree, premature introduction to OOP seems to limit people’s understanding of abstraction, polymorphism, encapsulation etc. Points 4-10 only apply to low-level coding a subset of programming which is statistically almost insignificant, particularly for beginning programmers.
I’d sooner see them start with something declarative like Haskell so they learn what good code looks like before they approach languages that make writing it hard. But then C would be an excellent choice for a second language, providing a grounding in:
(a) how software and hardware relate (possibly leading to assembly)
(b) pure procedural code so they can tackle the nuts-and-bolts seperately before tackling the OOP stuff they need to learn for the abovementioned mainstream languages.
There are better languages than C for a beginner to learn. A feature of C, as you rightly point out, is that it exposes you to lots of low-level details about memory and machine data types and so forth. While that’s great for applications that need to access the nuts-and-bolts of the computer, all that stuff just gets in the way for a beginner.
I would suggest that a higher-level language (such as Python and so on) would be a better choice. The abstraction level of these languages is just closer to how humans think, rather than how machines work. A novice doesn’t need to jump in at the deep end.
“One thing is for sure that there no other language which more reliable, simple and easy to use [than C]” and “Nobody can learn Java directly.”
Um, are you sure?
When it comes to first programming language is always hard to even guess because all other programming languages have their strong side and weak side of doing things.. Like i, i started with PHP then later to Python now i`m on with C, but people recommend C++ due to OOP but i think is a good ideal of having to know what the compiler is doing under the hood, so thats when Assembly comes in, person like me, i`m almost bad in math but even the math in Assembly is based on the Number system that is converting between Hex, Dec and Binary numbers.. it all depend on what you really want, just of recent i have some problem with Python when i wanted to compile a very small program to .exe file just about 47 lines of code, but after using py2exe to compile to program i got a lot of dll and zip files, for just a single 47 lines program, so if you are thinging of something small and fast just go with C and based on C rating most Hackers and Virus writer use C, becuase you can call Assembly from C so you almost have access to the CPU. go C or Python
I’ve learned a lot from this site - I hope you continue writing because I love your stuff!
1 Trackback(s)