You say C language rubbish. 80% of schools are still giving freshmen. Will they out?


I shared an article before to show the great side of C language, and then someone commented on a “garbage” below.

Personally, I think you don’t like C language and shouldn’t slander it. It’s good for you to have your favorite language, but you can’t say other languages “rubbish”. This principle is also applicable in many aspects.

So let’s share this article today. The author has studied programming for more than ten years. In this process, he has learned many programming languages. Let’s listen to his views on C language!


The following article is from the WeChat official account “TechFlow”, written by Liang Tang.


Hello, everyone. Recently, a little partner asked me backstage that freshmen are teaching C language. Is it out of date? What is a good first language to learn? What courses during the university are of great help to the employment after graduation?

Today’s article will briefly talk about this problem with you.


About me

Let me tell you something about myself first. After pinching my fingers, I found that it has been more than ten years since I first learned programming.

I learned programming in high school. At that time, we learned Pascal. It’s normal that you haven’t heard of it. It’s a very old language. How old is the language? It’s so old that its ide has a blue screen that it looks like a crash. It’s probably like this. When we were writing code in the computer room, there was a blue light and followed up the ghost film scene.

At that time, learning Pascal was just a taste. I just learned some basic usage. I didn’t even know how to use structures. Many people say Pascal is a very suitable language for beginners. I don’t know if I’m too good. I haven’t got it yet. Since then, I have learned many languages, such as C / C + +, Java, python, JS and recently go. Pascal’s grammar learned ten years ago has long been forgotten. At that time, the programming habits were frustrated and basically changed.

If I have to say that learning Pascal will help me now, the only help should be that it makes the process of learning C language very simple. Basically, I just took a brief look at the grammar of C and mastered it after doing some exercises. In fact, this is also the meaning of the first language that most people learn. It is not to start doing things after learning, but to lay the foundation for learning other contents in the future.

So strictly speaking, C language is my second language to learn, but I am the first language to master better.

You say C language rubbish. 80% of schools are still giving freshmen. Will they out?

Is C language suitable for getting started

I have had a reversal on this issue. I once felt that it was inappropriate for some time.Because the process of learning C language is the process of writing various mathematical problems in the face of a black box. It is very boring and boring. Many people are discouraged in this way.

If it is python, JS and other languages, there are many things that can be done. Learners will have great enthusiasm to continue learning, so the threshold for entry may be lower.

I think many people think so, because learning C language will have a feeling of nowhere to show. We spent a lot of energy learning how to program such a black technology. After a long time, we couldn’t do anything except doing questions in the black box,That’s not cool.

Look at python. After learning it, you can climb pictures and process documents. Isn’t it fragrant?Some people may not understand it very well and think that the emerging languages such as Python and Java are a little better than the old c language.

In recent years, my view has been reversed again. Now I think C language is actually very suitable for beginners. It also has many advantages that other languages do not have. Similarly, Python and Java, which seem to be full of charm, actually have many defects.

C/C++Learning skirt [712]   two eight four   seven zero five  】, whether you areXiaobai is still an advanced person, whether you want to change your career or join it, you can learn about it, make progress together and learn together! There are development tools in the skirt, and many dry goods and technical data are shared!


What is the biggest advantage of C language? Personally, I think there are two points:

First pointIts syntax is very clean. The basic syntax of C language can be found in almost all other languages. This is also reflected in the go language. It is simplified to the extreme, and there is no superfluous at all. In other words, the programming skills you have accumulated in C language can basically be used in other languages, but this may not be the case for languages such as python. There are so many new features in python that you may not be able to play in another language.

Second pointC language distinguishes between reference and pointer. It is very important for beginners to understand this. References and pointers are directly related to parameter passing and variable processing logic in functions, but many languages only involve one of them. For example, there are only references in Java and pointers in go language. If you don’t know the difference between reference and pointer, many hidden dangers will be buried. For example, you write wrong logic when passing parameters. For example, there is no concept of memory use at all, and the memory leakage of the written code is serious.

Of course, there are many problems in C language. For example, there are too few application scenarios and not many library functions. It is very difficult to write code.But this does not prevent it from being very suitable for cultivating programming ideas and good programming habits,For beginners, having a good habit and awareness is actually more important than what they learn. From this point of view, there is no problem with C language in the first language class of freshmen.

You say C language rubbish. 80% of schools are still giving freshmen. Will they out?

Choice of language

Of course, some schools offer Python or Java to freshmen (such as MIT and Stanford). Are these schools wrong?

In fact, it’s not. It’s a matter of choice. For example, python may be interesting to learn, and some colleges may pay more attention to students’ interests. Another example is that Java is all object-oriented. Starting from Java may be more conducive to object-oriented learning later. Some Daniel started from JS because it would be more convenient to engage in the front end later.

In fact, there are no problems. There is no so-called correct line stipulated.Language itself has no distinction between high and low, and some have only different scope of application.

So, in fact, what we choose is not language, but direction. For example, if you want to engage in algorithms in the future, Python is obviously a must. You not only need to learn, but also need to be more in-depth. For example, if you want to do development, you should recommend Java. The threshold for entry is relatively low, and there is a big job gap. You can’t find a job after learning. For example, if you want to be a front-end, you obviously can’t use Python and Java. The three piece set of HTML + CSS + JS is the king.


In other words, language is linked to our direction. We need to study and study in this field accordingly if we want to become engineers in this field.Strictly speaking, no language is universal. Engineers in any direction need to master it.

Another point is that learning a language in the later stage is far from as hard as you think. In fact, after being familiar with the core logic of programming, there are basically only grammatical differences between languages. For example, in order to complete the entry test when I first started, I learned the go language in three days, and wrote a simple background program in go language from nothing to useful. It sounds like it’s an exaggeration to learn a language in three days. In fact, it’s not. I just read the basic grammar and began to get started. I just looked at it and checked it. This is not my special ability. In fact, most newcomers have done this.

The first language choice is important, but it is not so critical. The key is whether we can find the right direction in the future.

You say C language rubbish. 80% of schools are still giving freshmen. Will they out?

Growth route

When it comes to direction, it is estimated that many people have a headache as soon as they hear it, especially the student party. Many people may not know what to do in the future, nor what ability requirements these posts have.In fact, this is also very normal, because there is less part of engineer training in school education.It is only responsible for teaching, not for the training of engineers, which is the core reason of this problem.

You say C language rubbish. 80% of schools are still giving freshmen. Will they out?

What shall we do?

I think you must want to know the answer, but unfortunately, everyone needs to find their own growth path, and no one knows what you are suitable for.

These are some pertinent views of the author.

Xiaobian believes that no matter what language you want to learn, learning C / C + + is not wrong. C / C + + is used in Windows operating system, driver, patch, image processing, audio and video processing, industrial control software, embedded (mobile phone, smart machine) and other fields. C + + has become one of the most popular languages for developers and consolidated global systems and services.