Today, the Internet search boring article,Find this,not bad,Cool shell network,Ok,,Posts to Favorites。Original linkhere。
I believe,This may be a problem a lot of friends,I used to feel that way,Program compiled to a certain time,Ability to find the bottleneck,Neither deep,Nor solid,Dabbler。such as:Your long-term use of Java and .NET ,These virtual machines are convenient language for the development of convenience,But it may not be good for programmers,There are two reasons:
- Virtual machine shield system call of the operating system,As well as many of the underlying mechanisms。
- A large number of packaged library also block a lot of implementation details。
After a while,You will find that you know these,I do not know why。。I've written an article on CSDN "Java NIO libraries Selector mechanism parsing (on,under,Continue)》,In that article I mentioned said (with a sarcastic tone) Java programmers do not understand the underlying implementation,It is difficult to learn the technique more solid。at this time,Some programmers will not naturally want to learn the underlying technology,naturally,C language was put up。
Here is some advice I give this friend:
- Encourage and applaud for you。I want to encourage you to learn C language, ideas and spirit,Many people feel eager to learn C language,In fact not。(You can have a look"C language puzzle") Now this society more attention to those trendy technology,While ignoring the popular 40+ years of C language。If a technology can be popular 40 years,This is what you need to pay attention to and learning techniques,Rather than those who have just come out of the technology (Over-hyped technology,Windows programming history)。This is the sense of the spirit。
- Do not make excuses。To go down this road will not be easy,Do not give yourself excuses。I do not like to hear is "Busy,No time"This excuse。I used to do in the bank project,9:00 am to 10 pm,Monday to Saturday,I can still pumping one hour and read a book a day and specializes in,A year down can INTENSIVE 5、6The book。I now work programs and recruitment task very nervous,Just given birth to children with only his wife and two,Also you need to prepare for lectures,But I was able to find time to read the article writing maintain cool shell。so,I can tell you,“Time is like cleavage,As long as you are willing to squeeze,It must be”。
- Learn C programming language and system。I think,There are four aspects to learn programming:Language、Algorithms and data structures、System calls and design。
- Language。I can tell you that there are two major themes in C language you must learn,A memory management,A pointer! The world more than 90% of the C / C ++ is a full severity of the error and the two related。Do not look at the book Hemopurification,And that one of the Lanshu。I recommend this book to you. "C Programming Language (Second Edition·New Edition)》
- Algorithms and data structures。I think,Implement algorithms and data structures using C language than succulent things。I recommend that you read this book -Algorithm:C language(The first part 1-4)Basics、data structure、Sorting and Searching(Original book version 3),Then there is this classic "Introduction to Algorithms》
- System Programming。Windows at the recommended two books - "Windows Programming "and"Windows core programming》,Unix / Linux recommendation of two books - "Advanced Unix Programming Environment"and"Unix Network Programming Volume 1,Sockets》《Unix Network Programming Volume 2,Inter-Process Communication"In particular," Unix Network Programming "book,A pass Belden,Whether Windows or Unix / Linux,all the same。
- system design。About design,I fully recommend "Art of Unix Programming》,After reading,You will understand what is really the cultural programming。then,When you see some of the remarks during a Windows Fans,You know what a laugh。
If you can in 2 - 3 years fine reading these books,And all of mastery,Then you will understand what is the list of small hills feeling! I had spent five years is the real read all these books。At last,good luck! Efforts!
--- Update:2011/03/29 20:00——-
I think,This article would like to tell you a few things so:
- Program compiled to a certain time,You need to understand the underlying mechanisms of the system,Otherwise,I do not know why they know these。
- I do not deny the logic of non-C programmers,The logic is true - if you want to understand the underlying mechanism,Please learn C languages and operating systems。
- 40Years of Unix / C far-reaching。Including the impact of Windows。If you want a pass Belden,Be sure to learn Unix。That is the real root of computer literacy。
- Do not go thinking superficially。such as,Do not think that a DBA database engine does not consider the problem of memory pages。Do not think that Web programmers do not need to understand the performance of back-end servers and scripts as well as TCP / IP problems。
There are often master the basics of a strong system of,The surface of things is always superficial。
Original article written by LogStudio:R0uter's Blog » How to learn C language
Reproduced Please keep the source and description link:https://www.logcg.com/archives/87.html