Many people feel at a loss about learning C language, and often ask me the same question: How to learn C language? I am a teacher and have been developing programs for many years. Like many people who are just starting out, the first computer language I learned was C language. After these years of development, I deeply understand how important C language is to a programmer. If you don't know C language, it almost sounds ridiculous to want to write low-level programs. If you don't know C language, it's simply impossible to write excellent and efficient programs. Why is C language so important? First: The syntax structure of C language is very concise and exquisite, and the programs written are also very efficient and easy to describe algorithms. Most programmers are willing to use C language to describe the algorithm itself, so if you want to make achievements in programming, you must learn it. Second: C language allows you to go deep into the bottom of the system. Which operating system do you know is not written in C language? All Windows, Unix, Linux, Mac, OS/2, there is no inside or outside. If you don't know C language, how can you go deep into these operating systems? Not to mention writing their kernel programs. Third: Many new languages are derived from C language, C++, Java, C#, J#, Perl... Which one is not? Mastering C language means you have mastered many languages. After a simple study, you can use these new languages to develop. This once again proves that C language is an important foundation for programming. And, let me say a little more: Even if programmers are recruited now, the exams are all C language. If you want to join the IT industry, you must master C language. So how to learn C language? 1: If you want to do your work well, you must first sharpen your tools. Here are some essential things for learning C language: A development environment, such as turbo C 2.0, which once occupied most of the development programs in the DOS era. But now in the Windows era, turbo C feels inconvenient to use. It is very difficult to edit the program, and drag and drop, and there is no automatic sensing function of function variables, and it is not convenient to query reference materials. It is recommended to use Visual C++. Although this thing is relatively large, it is very convenient to use once it is installed. A learning tutorial. There are so many C language textbooks now, but I recommend you to use "C Language Programming" edited by Tan Haoqiang, the second edition, Tsinghua University Press. This book is very suitable for beginners and the content is very concise. In addition, there are many software to assist learning. After all, it is the Windows era now, and there are so many learning software. It is not like when we first learned, only reading books and doing exercises. I recommend an "Integrated Learning Environment (C Language)" to everyone. The knowledge point summary and routine explanation are very good. There is also a question bank test environment. It is said that there are thousands of questions. There is even a trubo C under Windows. Beginners can practice programming without installing other compilers. It is very suitable for beginners. There is also a "C Language Learning System" software, but it feels like a question bank system. If you feel that the questions are not enough, you might as well try it. 2: What is the best way to learn computer language from the Sunflower Book? The answer is: reading programs. That's right, reading programs is the fastest and best way to learn C language. Like me, now learning new J#, C# and other languages, no longer holding books line by line, but learning their routines. Of course, for beginners who have not learned any computer language, it is best to read the tutorial first. After learning each chapter, you must carefully understand all the concepts in this chapter, and then do not miss all the routines mentioned in this chapter. Then study the program carefully until every line is understood, and then find a few programming questions, preferably similar to or the same as the routines, and try to write out the program you have already understood. Don't think that you have understood the routines, so you can write the same program as it. It is definitely not necessarily. If you don't believe it, just try it. If you can't write it, don't worry. Go back and continue to study the routines, think about why you can't write it, and then write this program again, over and over again, until you can catch it. Congratulations, you are almost getting started. 3: Reaching the pinnacle The highest realm of writing programs is actually to master various means of solving problems (data structures) and methods of solving problems (algorithms). Is writing low-level programs a programming expert? No, writing low-level programs is nothing more than mastering the structure of the hardware. Moreover, hardware is different from hardware. To write a driver for a chip, it is nothing more than mastering the various registers and their combinations of this chip, and then writing and reading values. That's all. This is just familiarity with some IO functions. So what does it mean to be proficient in programming? How can you be proficient in programming? For example: There are 10 people in front of you. Find a person named "Zhang San", what should you do? The first method: directly ask these 10 people: "Who is Zhang San?" The second method: you ask each of them "Are you Zhang San?" until the person you ask is Zhang San. The third method: you ask each person one by one "Do you know Zhang San? Point him out to me." Don't underestimate this question. You said that of course you would choose the first method. That's right, congratulations, you got it right, because this method is the fastest and most efficient, but finding the best way to solve the problem and the means you use in programming is an important sign of testing a programmer's programming level, and it is not easy to achieve. The question just now is similar to the data structure and algorithm: Map data structure, exhaustive search and binary search. Therefore, mastering data structure and some common algorithms is the inevitable way to reach the pinnacle. Finally, I recommend to everyone "Data Structure" by Yan Weimin, published by Tsinghua University Press. I hope everyone who wants to become a programming expert will read this book.