Suitable for IT beginners, especially first and second-year students who are just starting with computer programming.
Key Summary: Several learning suggestions+ one book +1 e-book document and source code+ one video course is enough!

1. Why should we learn C language?
Why learn C language? What can we do with C language? If we cannot clarify these two questions, we are likely to miss the target during the learning process.
First, C language plays a transitional role in the field of computer science.
Second, C language can be used for embedded system development.
In addition to being used for writing computer operating systems, C language is now mainly used for embedded system development. The underlying systems of devices such as cars, cameras, and household appliances are written in C language.


The first is syntax: this is the most important content in introductory textbooks, including variables, data types, branching, loops, functions, pointers, etc.

The second is the function library: simply put, the function library consists of C functions that have been written by others, which you can call directly. For example, calling the printf() function will print on the screen. Many people may think that library functions are not important and that they are just encapsulated by others, so you only need to remember the function names. However, I want to express that library functions are the key to learning C language and applying it in practice.
Because learning to call others’ library functions (such as the malloc function, calloc function, realloc function, free function) gives you the opportunity to write your own library functions. Otherwise, starting from scratch is simply unrealistic.
2. Learning Methods:
Self-study is the hard truth. Strong self-learning ability is fundamental to solving problems independently, and programmers need to possess strong self-learning skills.
A person can go fast alone, but a group can go further. It is best to join a technical group with a good atmosphere, make friends with one or two capable peers, and improve together.
In the beginner stage, coding should be the focus, with videos as a supplement. Don’t get it reversed. Remember this formula: just watching+ not practicing= a false trick.
If you don’t want to become an excellent engineer in the future, don’t want to go further in computer science, and just want to be an ordinary coder, then I recommend a path: follow the teacher step by step, following the university’s teaching plan, and you will be fine.

The above 4 suggestions actually apply not only to learning C language but also to learning any programming language. If you can persist like this, in a few years, you will be an engineer who is good at solving practical problems, not just an ordinary coder.
Actually, any book on C language will do. The one provided by the school is sufficient. If I have to recommend a few, you can look at several (note: just use them as reference materials, remember not to read them from start to finish!).
“c primer plus““C Programming Language“ and so on, there are many books in the school library.
Introduction to Programming——C Language (Zhejiang University, Weng Kai) is a national quality course that is well taught and highly recommended.
B站 offers all courses for free, link: https://www.bilibili.com/video/av73747962/
Learning Suggestions
First, watch the first three sections to understand the significance of learning C language and its position in computer language learning. Then, students will have a clearer understanding when learning.
For the later chapters, review the corresponding knowledge chapters of this course for those you didn’t understand in class, and you will basically get it sorted out.
Reaching the beginner and intermediate levels of C language is sufficient; it is not recommended to reach the advanced level, 90% of students will not use C language skills to find jobs, but it will be used in graduate school entrance exams, job interviews, and data structures and algorithms courses.
Listen to the class honestly, take notes, and strictly complete the assignments according to Teacher Weng Kai’s requirements. If you have extra energy, consider the post-class questions. If you have no ideas, first look at others’ discussions, and then gradually learn to summarize yourself.
There is no C language that cannot be learned, only incorrect learning attitudes.
Four, Teacher Ruan Yifeng’s C Language Introduction Tutorial
This tutorial is open-source, uses a Creative Commons license, and the source code is hosted on GitHub, which can be safely used.
GitHub Address: https://github.com/wangdoc/clang-tutorial (the above has corresponding example code for the course, available for use during the learning process)
E-book online reading address: https://wangdoc.com/clang/
