Kingofark's 50 Points Of View About Learning C and Programming
K] [N g of a r k? About 50 perspectives from C and programming
2003 revision
Revision 2.0
BY K] [N g of a r k?
Forehead
Long Long Time Ago, ON A Topic Far Far Away ... Yes, a long time ago, Kingofark wrote an article about learning C and programming. No, this article was circulated by N kinderial network compatriots so that the author was unforgettable, which was referred to as KS50PV, anesthesed in shallow and impetuous.
A drunken dream late night, Kingofark closed the computer, ink black in the house, suddenly found a thoroughness and tranquility outside the window. Go to the window to look at the sky, surprised to find white light - not, agent bulder, not ufo - from Yuan Moon. The author Lenovo gave the cowherd girl - the ancestors had already fly to the smoke, and only the story was circulated because it was circulated.
An article cannot be circulated because it is circulated, and it should not be circulated. With this impulse, Kingofark turns on the computer ...
It is previewed for everyone, and it is re-examined after Kingofark and combines the author's latest revision. Some of these terms are thoroughly replaced or modified. This aspect reflects the changes in the domestic book market in recent years, and on the other hand, it also reflects: In fact, some people say the most. Welcome everyone to criticize and even cast discovement.
In this revision, the author did not delete the old terms, only added "new" before the old terms, "old" two words are distinguished. The new and old terms are accompanied by authors.
1. Take C as a new language study (and there is no relationship! Really.);
Yes, we should still hold such a mentality to learn C . For a few more, C / C User's Journal has a series of articles about C and C relationships, Bjarne Stroustrup, Herb Sutter, etc., Masters, which discussed C / C in the future of C / C , is quite profound.
Look at the problem is deep, it is highly low. We are not a master, don't say C and C as if you have two sons.
Fruit knife is a knife. The Swiss army knife is also a knife, but it is not a scissors, screwdriver, saw, file, toothpick, compass, ruler, magnifying glass ...? Who must train how to use a fruit knife before using the Swiss army? In addition, at the fruit knife, a scissors, a screwdriver, a knife, a toothpick, a compass, a ruler, a magnifying glass ... I am estimated that it will not be too easy to use (not called "Swiss Army Knife", called "Super Weapon Overlord 3000").
Old: 2. Look at "Thinking In C ", don't watch "C becomes dead";
New: 2. Look at "Accelerated C ", see "C Gochas";
Today, "Thinking In C 2nd" also has a Chinese version, the quality of translation quality is good, kingofark doesn't want to talk again - after all, some people (at least in www.china-pub.com) I feel that the translation is not bad. Kingofark, who often couldn't help but debate the quality of the translation, suddenly understood another inference of the radish cabbage theorem: reading book seems to see a film, some people love to see Europe and America, some people love to see the daytime, have their own fun. I will measure it yourself, but it is best not to participate in the bored tongue war on the book information page. Please remember a sentence, a word, a black cat white cat, can catch the mouse is a good cat. Andrew Koenig's "Accelerated C " is a truly practical entry. The book has passed the elaboration method of "Ruminations On C ", and fully reflects the true advantage of C by another specific design instance. In fact, the author thinks that Andy's book is a programmer must read (it is not much). For "Accelerated C " comments, there are all foreign websites, and the author is no longer educated.
Stephen C. Dewhurst '"C Gochas" is a "strange" book. Say "奇特" is not because the words of Gotcha are difficult to understand (let alone Chinese translation simply don't want this title), but it is: Dewhurst with sour, laughing tiba tips Remind the programmer some to write C programs ( Originally) the problem that should be noted. Among these issues, there is a problem with the code, there is code habit, and even personal cultivation issues. There is a comment on the book on Cuj, and the author believes that it is more than known. The author saw the feeling of the book is: loyalty is always reversed; this book can not agree, but it does lead to some questions that should be paid (and usually not paying), this for one Programmers are very concerned.
Old: 3. Look at "The C Programming Language" and "Inside THE C Object Model", don't look at it because of them is difficult and we are actors, so I don't look at it;
New: 3. Look at "The C Programming Language" and "Inside THE C Object Model", don't want to engage in "academic research" because they are difficult and we don't want to engage in "academic research".
These two books are indeed not suitable for beginners, and the old terms are somewhat over. They want to be Kingofark is hoping to stimulate those "impetuous people (including Kingofark) (see Terms 10-15).
The total listener said that "the language is actually connected". Q: When can I integrate? A: When it is transparent.
Learn, you!
4. Don't be confused by vocabulary such as VC, BCB, BC, MC, TC - they are all integrated development environments, and we have to learn is a language;
5. Don't let anyone seem to be simple programming small problems - they are often less simple, or you can lead a lot of knowledge points;
Mr. C Primer Answer Book and the "C Solutions - Companion to TCPL" translated by Mr. Li Zongyan have been published. As a student or C self-scholar, through the two books to practice their own coding practice, it is really the most suitable.
6. Will use Visual C , do not explain that you will C ; you will sing and play guitar, do not explain that you will engage in music creation - just a little "diameter" (and not unable).
7. Learning Class is not difficult, Template, STL, Generic Programming is alive - it is difficult to have a long-term adherence to practice and spare no effort;
Expo group is not necessarily necessary, but to learn or not to learn ... what is the question! Learn C , these contents are indispensable.
Old: 8. If it is not a genius, don't want to play games. Do you think you have done it, in fact, your C level does not change with your customs clearance - actually remember: learn C It is to compile the game;
New: 8. Learning programming and playing games, the two "interaction, mutual influence, dialectical unity" can be divided; however, there are many people to learn from the game, and many people have played Game; in fact, the truth in this is simple. If you are not a chef - and you will do a good dish, you will have a delicious taste; if you are a chef - please don't take a look, learn the kitchen line N't it work? Looking back, I will fall into the pig circle, I can't recognize you.
The old terms are unsatisfactory thoughts, derived from the anxiety of "subject students" on the sinking game.
Regarding the game programming, there are also many good books, such as Andre Lamothe's "tricks of the windows game programming gurus 2nd" Tricks of 3D Game Programming Gurus ", is easy to understand, the threshold is low, the experience of the master, the experience of the master Tao, brighter, straight into the core. For the author's book, foreign websites have evaluation, do not need to be in charge of the pen (good words with light).
The author is also very interested in the programming of the game, and I like the book of Andre Lamothe. How is the book? So, "Tricks of the Windows Game Programming Gurus" Chinese version is translated, the difference is unparalleled (for example, translating the data structure Linked List as "Listing list"), still still does not cover up, you can sit in front of the computer VC, reading late night, experience the fun of writing games using VC / DirectX SDK.
Old: 9. See Visual C book, you can't learn C language;
New: 9. In the working environment, please speak whispers to your colleagues.
Fast food, KFC, which is convenient and fast (and easy to get fat), and KFC to China, become the children's tooth sacrifice and weekly festival, couples dating cheap venues. One to weekends, "a jubilant scene" in McDonald, KFC store. Everyone speaks loudly.
The coffee shop was originally the dream of "Zero Star with elegant handsome men and beauty in a soft light" in the past. China's cafes, smoke, speakers send out the nostalgic European and American songs (and generally not the original singer) - local words, swearing, words; mobile phones, cards, sound, sound Ear. Everyone speaks loudly.
Inside the software company, developers explore technical issues, intermittent interest, it is normal. A and female secretary B is giggling; c In order to tell D documentation has been done well, stretch the neck covered the sound of AB; E is a thick discussion of the high-end red neck Puzzle, this is absolutely ignorant of who is higher than him; G is not working hard to manage the H complained that the company's software engineering is not good. Everyone speaks loudly. Please remember a little: You speak loudly, my colleagues only can see your voice; your small voice talk, colleagues also can see your mood. Communication needs is a state.
10. Impetuous people are easy to say: XX language is not ok, you should learn yy; - is yourself! ?
11. The impetuous people are easy to ask: What should I learn in the end; - don't ask, learn is right;
12. The impetuous people are easy to ask: Is XX have a money? - I suggest you to grab bank;
Old: 13. The impetuous person is easy to say: I want the Chinese version! I can't speak English! Don't you? Learn!
New: 13. The impetuous people are easy to say: I want the Chinese version! I can't speak English! - I hope this is not the reason why you are not working hard.
14. Impetuous people are prone to: XX and YY which is good; - tell you, all - as long as you learn;
15. Impetuous people are divided into two: a) people who are only watched and don't learn; b) only learn and not persist;
16. Hang the fashionable technology in the mouth, it is better to remember the outdated technical;
17. C is more than just supporting object-oriented programming languages;
C is a universal language of multi-paradigm, learning should be fully understood. The standard library has done a lot for you, and it is a waste of waste. And if you are doing embedded, you may wish to refer to the specification of Embedded C .
Technical follow-up, tool update, not necessarily blind impetuous - how to get a foreign guns? The author is willing to believe that students, young programmers, beginners are more likely to understand these, and they need to be guided to understand. But in the domestic, university professor, project manager, believe in the leaders of "people who are not myth" - do they understand? I suspect it.
Rape, licking innocent people; rape young girls, destroying pure heart; publishing obscene audiovisual book products, poisoning adolescent children. The biased these things are not illegal fouls in the IT field.
18. One of the best ways to learn programming is to read the source code;
JDK, CLI is the best reference. Aspects of C , in addition to STL, there are excellent code worth research, reference, and even plagiarism (if you have enough technical skills).
Old: 19. Don't think that your book in your hand is enough at any time;
New: 19. The book is not there, the good book is spiritual;
Nowadays, the biggest changes in the domestic book market have been the introduction of a large number of foreign books. When the book is less, there is no room for choice; when the book is more, there are too many, and there is no obey. There is a problem with how to choose a book. Accept recommendation is a good choice - no, I am not saying the tongue on some books sites.
In this case, the reader needs is actually the correct guidance.
Old: 20. Please read "The Standard C Bible" (Chinese version: Standard C Collection), master C standards; new: 20. Please refer to "TCPL 3RD" "C Primr 3rd" "The Standard C library", master C standard ;
Basically, in the current book situation, we must master the "C standard, see which book can also see" The Standard C Bible "> (Chinese version: Standard C Collection) This book. The author has published a view of this book in another article.
Speaking of the authoritative C reference book, must not have "TCPPL 3RD" "C Primer 3rd" "The Standard C Library".
Bible? 唔 ... readers "TCPL 3RD" "C Primer 3rd" "The Standard C Library" reader, you can do not believe it.
21. Please understand the book, please look carefully; don't understand the book, please look hard;
You know, many times, don't understand, but there is no confidence, think that you can't understand.
This Territor is equally applicable to learning foreign languages.
22. Don't expect to see what the first pass can remember and master what - please see the second pass, the third time;
There is always someone (even Kingofark yourself) complaining that there is not enough time to read. From a certain angle, it is true - but this is not the reason you don't read, right?
Old: 23. Please see "Effective C " "More Effective C " "Exceptional C ";
New: 23 See "Effective C " "More Effective C " "Effective STL" "Exceptional C " "More Exceptional C " "Exceptional C Styles" "C Templates" "Ruminations On C " "C Traps and Pitfalls" "Expert C Programming ";
Write so much not to have anyone to buy. These are top-level good books, read according to their own situation, and they are easy to receive.
Andrew Koenig's "C Traps and Pitfalls" is a programmer to read. The author is not cold, and many of the mistakes mentioned by the book have been committed (and have been committed!). "EXPERT C Programming" is also a very good book, which is also a matter of translation, but unfortunately, the translation of some allusions is independent, and as a cultural phenomenon of the West is penetrated. As side of Western civilization, the reference to some of these allusions may be less prone to understanding for the Chinese.
24. Don't stay on the cradle of the integrated development environment, you must learn to control the integrated development environment, but also learn to handle the program by command line;
It is particularly surprising that some people find some people (actually!) I don't know if VC is also a command line compiler called CL.exe! Hello World in Super Yangchun is required to build a project in the IDE! Have you heard of BCC32, Dumpbin, Grep, Nmake, makefile, javadoc ... ... ... hit an improper than square side: Winter is not to wear cotton jacket thick trousers to enjoy the fun of love? 25. Discuss the meaningful C knowledge points with others, rather than quarreling xx can't do or YY and ZZ which is better;
Note: XX, YY, ZZ can refer to: a computer language; an expert; a philosophical system; some kind of software development theory; a new technique new thinking; a "service virtual (pragmatic)" point of view; a class Boys.
26. Please see "Programming Practice" and strictly follow it;
Exterior: From HERB SUTTER's website www.gotw.ca, Sutter and Alexandrescu are still an expectation book.
Old: 27. Don't think that they look the same because there are some syntaxes and keywords in C and C , they think that their significance is exactly the same;
New: 27. Note the difference between C and C .
In China, there is such a group of pigs ... Oh, I said the university teacher ... Oh, I said the project manager ... No, no ... Sorry, in fact, I want to say "people", for C / C / Java / c # / ... There are too many misunderstandings (generally stupid, so others don't know how to explain).
Old: 28. C is never called "expansion" - if c is called Z language, you will not contact the C and Z language so tight;
New: 28. Understand the relationships and differences between various languages, avoid blindness and comment;
Regarding C and C , the development and evolution of C , C creator Bjarne Stroustrup has been very clear in "The Design and Evolution Of C " (Chinese translation, "Tria Zongyan Translation).
Friends who learn C should look at this book, just literacy.
Old: 29. Please don't think that I have learned the XX language to change school C . You only learn a new language;
New: 29. Please don't think that I have to study XX language again. YY will have any problems - you just learn a new language;
30. After reading "INSIDE THE C Object Model", then I have learned that I have learned C ;
In fact, such a high-end book You don't necessarily want to go, the key is the issue of impetuousness and not impetuous, confident and complacent.
31. The secret of learning programming is: programming, programming, reprogramming;
This is a good manifestation in the Andrew Koenig's book "Ruminations on C " "ACCELERATED C ". With the programming of Andy's book, you will have a very wonderful learning experience.
Old: 32. Please pay attention to the following books: "C Effective Object-Oriented Software Construction" "Object-Oriented Software Construction" "Design Patterns" "THE ART" OF Computer Programming "; New: 32. Please pay attention to the following books:" Design by Contract, BY EXAMPLE "" Refactoring "" Design Patterns Explained ";
"Design By Contract," Refactoring "" Design Patterns Explained "is undoubtedly a good book, and the Chinese translation is expected.
Old: 33. Remember: Object-oriented technology is not just C proprietary;
New: 33. Remember: Wow! Object-oriented technology is not just C proprietary;
Ok? How can I say "again" this word?
Old: 34. Please enter the program in the book to the computer to practice, even if there is a source code in the CD;
New: 34. Good and use the supporting CD;
35. Expand the meaningful example of seeing in the book;
36. Please pay attention to the exception handling technology in C and use it in your own procedure;
36. Pay attention to DBC (Design By Contract) and exception handling technology, and use it in your own procedure;
Exception Handling triggers countless discussion. Regarding the various issues of Exception Handing, you can see some "shock" in the HERB SUTTER's article. Embedded C is quite simply - All deleted light - I have a suitable range.
DBC is more than just assertion. DBC requires all components to do with each component, and the communication and collaboration is based on very clear and stringent provisions. DBC is not overlooked, the level and depth of it involves it, perhaps the exception of our imagination, deep.
37. Review the procedures you have written before, and try to rewrite, and use the new knowledge you have learned in;
38. Don't miss any of the exercises in the book - please do all and record the idea of the problem;
39. The integrated development environment of C languages and C should learn and master at the same time;
40. Since I decided to learn C , please persist in learning, because the purpose of learning programming language is to master program design technology, and programming technology is cross-language;
41. Let the various platforms in the C language and the development environment to fierce competition, we must learn from learning> C language itself;
Old: 42. When you write C programs, you find that you use it very badly, please don't stop right away; please complete the remaining part of the remaining part to ensure the integrity of this design, then analyze your mistakes and Rederate and write (see 43);
New: 42. Only by coding practice can understand design thinking;
43. Don't worry, design C Class is really not easy; Class and your own Class design level in our program is perfect and developed in constant programming practice; 44. Never follow it because the program is "very small" Some of your unskilled rules - good habits are cultivated, not a remember;
45. Every time I learned a C difficult point, try to explain this knowledge point and let him understand it - you can explain that you really understand;
46. Record the knowledge points that you have neglected or not understood during communication with others;
47. Continuously write a higher request for the procedures you wrote, even if your program version number will become Version 100.xx;
Solemn reminder: Please learn to use the version control tool! Visual Source Safe, CVS - Use their version control definitely better than you create a directory named "myapp_new2"! In actual development, the results of the non-use version control tool can be summarized in one sentence: can become more, it will become more bad.
48. Save all the programs you have written - that is one of your best accumulation;
49. Please don't be impetuous;
50. Please love C !
In fact, Eiffel, Java, C # is also good :-)