From the perspective of language level, why should we be proficient in the c language?
Speaking of C language, many people's first response is to define the variables, if... else... and other detailed syntaxes. However, we should never forget its position in the programming world. Those in the former are syntax details, while those in the latter are more and more familiar with the syntax. Why is there a saying that "I have never dared to speak C language for ten years. So here we look at the C language from a macro perspective.
Programming Languages started with machine code 0101. At that time, programming was indeed a job that only people with high IQ could do, because you had to recite a bunch of commands, such: the ADD command is assumed to be 10011100. Remember this! Therefore, such programming requires a lot of trouble and is not conducive to popularization. If the number of people is limited, the function cannot be too powerful.
As a result, our predecessors improved their social needs and provided the original translator: compilation. In this way, people no longer need to write machine commands such as: 10011100, but as long as they write ADD, they can convert ADD into machine code through the Assembly Tool, thus simplifying programming, this is the original programming language: assembly language. However, this language cannot solve one problem, that is, the instructions you write are determined by the machine's CPU command system, different CPU command systems determine that the commands you write are different. That is, the portability problem. This is not produced by the assembly language, but is actually there. The Assembly has not been solved yet.
The portability problem is not solved, so the same software has to be rewritten on different platforms, which is very troublesome.
Therefore, the upper-level programming language should appear. This is the C language. It solves the cross-platform CPU command system, but more and more hardware operations are encapsulated as various drivers, carried by the operating system, therefore, the current cross-platform architecture does not only require cross-platform CPU command systems, but also supports cross-platform operating systems. In this way, we will continue to generate more advanced cross-platform platforms, such as java. Java implements a more perfect cross-platform approach by producing intermediate bytecode (rather than the final binary method.
Although it is a functional solution, it sacrifices the code quality. The better the compatibility, the more exceptions to be considered, the better the fault tolerance, and more code. In this way, the compiler has more and more powerful functional requirements, powerful functions mean lower performance, just as the overall efficiency is determined by multiple key links in the series circuit. The worst part determines the overall efficiency. Therefore, the higher the programming language, the lower the performance. It is shown that the underlying language is required for developing powerful things. Therefore, the engine in the gaming industry should not be developed using PHP or JAVA, and both are developed using C/C ++... otherwise it will be stuck to death... similarly, the installation of software and the software that is very stuck in the APP are caused by the development in upper-layer languages, which leads to performance problems that cannot be solved.
Therefore, whether it is the hot industry that people are pursuing: embedded, mobile Internet, Iot, cloud computing, big data, these performance is good, it has to be C/C ++ to support. For more technical industries, the depth of water is the implementation of C/C ++.
For example, the missile's sailing speed is 8000 meters/second. Imagine if your program has an error of 0.1 seconds, then you will have an error of 800 meters. This doesn't mean which one to hit, but the East to hit the West.
This sentence is widely used in programming efficiency and performance fields.
What we are pursuing now is speed, speed, or speed !!!
1: Performance Comparison reference:
The most efficient is machine language. Its performance is about twice that of the assembly language, while the Assembly Language is twice that of the C language, and the C language is 1.5 times that of the C ++, And the C language is five times that of JAVA;
In terms of speed, it takes 1 second to execute the machine language, 2 seconds to complete the assembly language, 4 seconds to complete the C language, 6 seconds to complete C ++, and 20 seconds to complete JAVA, it is estimated that all the daylily programs are cold.
The higher the language, the slower the speed;
2: Summary of language levels:
Figure:
3: C language status...
The core position of C language can be seen from here that it is a basic language for other languages such as C ++ and more advanced languages. C language is not good, C ++ is difficult to master, C/C ++ is not good, JAVA is difficult to master, PHP is also difficult to master, JS is also difficult to master, basic courses required for data structures and algorithms... linux OS is hard to grasp. These are all consistent, just like applying for a high-paying job in PHP. Other people ask you about the linux operating system, data structure, and Nosql instead of taking your PHP syntax into consideration.
C language is the most important programming language in history. To enter the programming industry's master level, C language is required. Of course, to make a lot of money, you must be proficient in C language. It is a required subject for all universities in science and engineering, and also a core programming language in future science and technology. It is an interview competition for almost all famous enterprises, foreign companies, and high-paying programming jobs. Programming Languages that hackers and hackers must master.
Therefore, I am not afraid to learn C/C ++ well all over the world. Now hurry to make up for the C language ..., whether you do it now. NET, JAVA, PHP, or JS... "C language, cool" 2017, is born for it!