How to learn C language well
March 29, 2011 Chenhao Post a comment Read the comments 193,858 People read
Someone asked the following questions on the Cool Shell message board
Keep_walker :
I read this article tonight.
Http://programmers.stackexchange.com/questions/62502/small-c-projects
I also met the same problem as the foreigner who asked. Can you give a suggestion to a programmer who has trouble like this? Thank you!
I believe that this may be a lot of friends of the problem, I have such a feeling before, programming to a certain time, the ability to find the bottleneck, neither deep nor solid, dabbler. For example: You use Java and. NET for a long time, these languages with virtual machines are convenient for development convenience, but may not be very good for programmers for two reasons:
The virtual machine masks the system calls of the operating system, as well as many underlying mechanisms.
A large number of well-packaged libraries also block many implementation details.
After some time, you will find that you know it, do not know why. I used to write a "Java NIO Library selector mechanism analysis (up, down, continued)" in the csdn, I said in that article (ironically) Java programmers do not understand the underlying implementation, so it is difficult to learn more solid technology. At this point, some programmers will not naturally want to learn the underlying technology, it is natural that C language has been raised.
Here are some of my suggestions for this friend:
encourage and cheer for you . I encourage you to want to learn C language ideas and spirit, many people think C language studious, in fact, not yet. (You can take a look at the "C-language puzzle") Now the society is more concerned about the fashionable technology, but ignored this popular 40+ years of C language. If a technology can be popular for more than 40 of years, this is the technology you need to focus on and learn about, not just the technology that comes out (over-hyped technology, the history of Windows programming). This is the spirit of steadfast.
don't look for excuses . It's not easy to go down this road, don't make excuses for yourself. The last thing I like to hear is a " busy, no time " excuse. I used to do projects in the bank, as early as 9 o'clock to 10 o'clock in the evening, Monday to Saturday, I can smoke 1 hours a day to read books and research, a year down can also be intensive reading 5, 6 books. I am now working on the project and the recruitment task is very tense, just born child only own and wife two people, but also need to prepare lectures, but I still can find time to read articles to write articles to maintain cool shell. So, I can tell you, " time is like a cleavage, as long as you are willing to squeeze, there will be."
If you can finish these books in 2-3 years, and all of them, then you will understand what is the feeling of the mountain small! It took me 5 and a half years to really read all these books. Finally, I wish you good luck! Efforts!
——-Update: 2011/03/29 20:00 ——-
I think this article mainly wants to tell you a few things:
Programming to a certain time, you need to understand the underlying system mechanism, otherwise, know it does not know why.
I do not deny the logic of non-C programmers, the real logic is-if you want to understand the underlying mechanism, please learn the C language and the operating system.
More than 40 years of unix/c have a profound impact. This includes affecting Windows. If you want to follow, be sure to understand UNIX. That's the real root of computer culture.
Don't think about the problem in a superficial way. For example, do not assume that a DBA will not take into account the database engine's memory page problems. Also do not assume that Web programmers do not need to understand the performance of servers and scripts in the background and TCP/IP issues.
Master often have a strong system of basic knowledge, the surface of things is always superficial.
How to learn C language well