How to learn C language well? Why do you have to learn neither deep nor solid, dabbler feeling
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 an article on CSDN that said (in a sarcastic tone) that Java programmers don't understand the underlying implementations, so it's hard to get a solid idea of the 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 you:
Small series recommended a learning C language/c++ study Skirt "627, 012, 464", whether you are Daniel or small white, is to change careers or want to join the study together to learn about progress together! The skirt has the development tool, many dry goods and the technical information to share!
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."
Learn C language and system programming. I think there are four ways to learn programming well: languages, algorithms and data structures, system calls and designs.
Language. I can tell you that there are two major themes in C. You are good at learning, one is memory management, one is a pointer! The severity errors of more than 90% of the world's C/s + + are all related to these two. Don't look at rectification's book, it's a bad book. Recommend this book to you "C programming language (2nd edition • New version)"
Algorithms and data structures. I think that the implementation of the C language algorithm and data structure is the most cool thing. Recommend you read this book-algorithm: C language Implementation (part 1th to 4th) basic knowledge, data structure, sorting and search (original book 3rd edition), and the classic "Introduction to Algorithms"
System programming. Two books recommended under Windows--"Windows Programming" and "Windows core Programming", Unix/linux recommended two books-"UNIX Advanced Environment Programming" and "UNIX Network programming Volume 1, Sockets" "UNIX Network Programming Volume 2, interprocess communication" In particular, "UNIX Network Programming" this book, follow, regardless of Windows or unix/linux, are the same.
System design. On the design side, I fully recommend the "UNIX Programming Art", after reading, you will understand what is the real programming culture. Then, when you see certain words from Windows fans, you know what's called laugh.
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!
Personal Summary
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.
I have a public number, often share some of the C language/c++ technology related dry goods; If you like my share, you can use the search "C language learning Tribe" to focus on
Welcome to join thousands of people to exchange questions and answers skirt: 627+012+464
How to learn C language well? Why do you have to learn neither deep nor solid, dabbler feeling