Learning a technology is not a simple thing to think about, learning C is also not a simple matter! Learn C language, you want to learn in a short period of time, it is certainly impossible, but also do not need you to spend a decade eight years only tender spoof proficient. Today's small series on the 0 basis for the students to recommend you basic books and skills!
Read a good book if you want to read it, or you might as well not read it.
The first question that all beginners face is: How to choose a textbook. A good beginning is half the success, choosing a good textbook is a key factor in doing more with less. Unfortunately, schools usually help you to designate a very poor C language textbook, and fortunately, you can choose again.
The famous professor rectification a "C language programming", which is said to have more than 4 million circulation, as far as I know, many schools will recommend this book as a C language textbook. Although my name (Tan Haoyu) is only one word from the professor, I am very determined to black his book. The book is not for computer majors, but for other majors who need to test for a computer grade. The main disadvantage of this book is: the example program is very unprofessional, can not teach you the design should grasp the way of thinking, the program style is not good, it will let you develop the habit of writing code, too many mistakes, have been pointed out the book hundreds of errors, there are no lack of key conceptual errors. Well, this book I do not want to say too much, is interested in you can Baidu a bit:)
Kernighan and Ritchie's "The C Programming Language" (Chinese translation "C programming language") is a classic classic, but the old version of a lot of content is outdated, and now the standard C language is far from, we must look at the latest version, Otherwise it's better not to look. In addition, even the most classic and authoritative books, there is no way to cover the whole, so the standing of a "C Language Reference manual" is very necessary. The C Language Reference manual is "C Reference Manual", is a detailed description of the C language standard, including the vast majority of C standard library function details, is considered to be the best standard C language Reference. Incidentally, the latest C programming language was revised in accordance with the C89 standard, while the C Language Reference manual describes the C99 standard, which may be somewhat out of the way, and is recommended to be studied in accordance with C99 standards. There is also a copy of the "C and the Hands", is also quite good, the English name is "pointers on C", specifically emphasizing the importance of pointers, is a characteristic of this book. But this book is not very suitable for beginners, if you have learned C language, there are some C language foundation but not very solid, then you can try this book. I believe that as long as you understand the pointer, C language is no longer mysterious.
If you have eaten a C language textbook and want to go further, there are two books you must see. The first is "C Traps and Pitfalls" (the "C Trap and defect"), a very thin booklet, the content is very very interesting. Note that this book was written more than 20 years ago and that many of the C-language flaws mentioned have been improved, but it is not a bad thing to be able to understand some history. Then you can challenge "expert C Programming" ("C expert programming"), the book as its name, the book is quite difficult, once you read carefully and can thoroughly understand, you can confidently write "proficient in C language" on the resume.
Remember a principle, do not read the book you do not understand at present, it is a waste of life. If you do not understand, then you must be missing some essential basic knowledge. At this point, you have to carefully analyze what you need to add, and then go to the bookstore to find the books that tell the content. The basic knowledge after the completion of the back to learn, will be the real multiplier.
Second, unix/linux or Windows, this is a big problem
Different programming environments can create different thinking programmers. Most programmers in Windows rely on an integrated development environment, such as visual Studio, and UNIX programmers love makefile and consoles. Obviously, the integrated development environment is easier to get started with, learning C on Windows, just a few basic visutal C + + toolbar buttons will start to write Hello, world!, and under UNIX, you need some basic knowledge of console operations. Some people may think that the UNIX environment is more concise, but the power of habit is very big, everyone is very familiar with the basic operation of Windows, and in order to learn C language to install a UNIX system, it seems a little cost-effective.
For a novice who knows only the basics of windows and doesn't know anything about DOS, it's important to do something interesting and meaningful as soon as possible. Writing a small program in C is far more interesting than learning LS, cat and so on, and we have to focus on the C language itself, we have to temporarily ignore some things, such as the process of compiling links, makefile, and so on.
So I suggest that beginners should use Visual C + + 6.0 (not visualc++. NET) or Dev C + + as the primary learning environment, and never dwell too much on the IDE's skills, because you will have to turn to the UNIX environment in the future. Visual C + + 6.0 is easy to use and debugging is straightforward, but its default compiler's support for the C standard is not good, and dev C + + uses the GCC compiler to support C99 standards. By the way, many of the university's C language courses are still using the Turbo C 2.0 as an experimental environment, which is quite undesirable, because the TC 2.0 has little support for the C standard, and the other is the TC 2.0 compiled program is 16-bit, which will be very difficult to understand the 32-bit program in the future ( Of course, using something like DJGPP can make TC 2.0 compile 32-bit programs, but that's too complicated.
When you finish learning a C-language textbook, you must move on to the UNIX platform to continue learning, and almost all of the advanced C-language tutorials are based on UNIX platforms (such as "c Expert programming"). The process of change is painful, you need to face a variety of complex commands, completely different from the Windows platform thinking, but this pain is worthwhile. UNIX and C are symbiotic, Unix thinking and habits more in line with the C language of thinking and habits. Under UNIX, you can find countless good source code to read, you can easily see a library function online manual, you can see the best code style
It boils down to a phrase: Beginner C, the recommended Windows system and integrated development environment, and when you're ready to go to the "master" direction, turn to Unix
C + + Tutorial 0 Basics How to learn C language!