Recently, I was preparing to pick up C language, and I found some great resources online, which I would like to share.
Course#
I have programming experience, so I found a fast-track C language course, C/C++ (cs205) by Associate Professor Yu Shiqi from Southern University of Science and Technology, which is excellent.
It covers basic syntax to macros, with a very detailed explanation of pointers, and also includes some high-performance programming techniques.
It also involves some common tools like Linux commands, GCC compiler, and simple usage of Makefile. This course is on C/C++, and since my goal is to learn C, I did not focus on the C++ features.
There are many demonstration codes in class, all available in an open-source repository, and I recommend pulling them down for careful study.
The only downside is that the post-class exercise resources are somewhat insufficient.
Experimental Section#
Compared to attending lectures, the practical application of learning a language is more important.
To supplement the post-class exercise resources, I found the C language experiment documentation from Huazhong University of Science and Technology on GitHub, which I used as post-class practice.
There are a total of eight experiments, which are somewhat challenging for beginners in C language, but I gained a lot after completing them.
The most complex part is the pointers section, and my understanding of pointers significantly improved after finishing it.
Final Assignment#
According to the usual practice, after finishing the course, we need to write a small demo to test our results.
I found a common student management system assignment online, which has limited difficulty and is just for practice.
Student Management System Reference PDF
Ending#
If you focus on working, completing this entire process would take about a week, and finishing it can be considered a successful entry into C language.
The works mentioned above are personally implemented and can be found at https://github.com/saleroa/C-program-learning for reference.
Supplementing some commonly used resources
C Language Reference
A C language tutorial written by Teacher Ruan Yifeng, which includes an analysis of commonly used standard libraries and is quite detailed. C Language Tutorial
VSCode Debugging C/C++
Debugging is an essential skill, and I feel that there are good video tutorials and documentation available. Documentation Video is relatively simple and just for beginners.