Joke Collection Website - Joke collection - Why do you want to learn C language?

Why do you want to learn C language?

1. Simplicity

Although it is difficult to use C language well, it is easy to get started with C language. I think it is easy to use C language in one sentence, but difficult to master it. The use of C language in grammar is very simple, because it is not very advanced or huge. In the second edition (k&; R), its reference manual describes the whole C language in only 49 pages, without iterator and packing ... This "low level" of C language makes us focus on our own control when learning, so we will choose to do everything ourselves. When using java or python, my first feeling is often, "Well, what tools can I use?" Too many tools to choose from is sometimes a bad thing, because there are not many opportunities for exercise, and it is difficult to grasp the key points. Sometimes nothing is a good thing. < ! -more-

2. Principles

Operating system is a course that a programmer should learn well, but the operating system concepts we are learning are difficult to understand deeply, or abstract, such as starving philosophers. Just knowing the concepts can't solve practical problems. For example, you may have learned some concepts of processes, or memory segmentation, so let me ask you, what are the windows processes asking? How to modify the data in a process in windows? What's the difference between fork of Linux and createProcess of Windows? Does linux have threads? You write one for me! Your theory doesn't work, because you haven't practiced it. So, I think the best way to learn the operating system is to make system calls in C language, which can get a better learning method under unix and linux, because win32-sdk is not suitable for learning, but more suitable for development. Under unix, you can use your operating system knowledge to communicate with fork(),exe (), Wait () and other system calls are well combined.

And it's not just the operating system. When learning C language, you have to get in touch with some knowledge of system structure, such as byte alignment, such as the address space of C language, and you will know that such a thing as stack is unnecessary if it is not recursive. You will know the conversion from virtual address to actual address. These are transparent in java and c#, but transparency is for the convenience of development. It will train more code farmers.

3, data structures and algorithms

It is appropriate to learn data structures and algorithms in C language. Write with pointers. Learning in Java and c# is more likely to be useful. You may say that C++ is better, but the essence of your class (variable+function) is no different from that of the structure+function in C language. Unless you use templates, polymorphism and overloading, I will admit that you are using c++, but your key article, aren't we talking about learning data structures and algorithms? You are learning language characteristics now.

4, a better transition

This article is about why to learn C language. As a student, I think it is a joke to say that C language development is more efficient, because when it comes to development, we start talking about money, time and a lot of things. You will ask, why not java or python? Development is a matter of development, and you can't develop it if you study hard? I just say that the route of C language is more suitable for learning, and you will ask what you can't earn to go to school? I remember once a person who came to do java training said, "We train java, and you make yourself a commodity and sell it." . I think it's ridiculous that what we want to do is not a commodity, at least a stock. Therefore, people who are afraid that what they have learned will not find a job spend all their time hesitating.