If you don’t want to miss my updates, remember to click the top right corner – view public account –set as a star, and I’ll send you a little star.


The C language can be considered an “ancient” programming language, yet it remains a mainstream programming language in embedded systems today. Without C, there would be no various embedded systems and operating systems we have today.
Although C is the foundation of programming development, to what extent have you mastered it?
Let’s take a look at the different levels of proficiency in C programming:
1
Novice Level
Has studied related books on
2
Entry Level
Has learned to use C to write programs and develop some small projects, which can be considered as starting to apply C in practical applications.Proficiency level: understands module encapsulation and invocation, function interface declaration and definition, multi-file programming in C, can do some simple C projects but often needs to refer to examples, and frequently consults books, Baidu, or Google for guidance on how to write code, lacks mastery of statements and syntax.
3
Intermediate Level
Proficient in C programming, has a solid grasp of various C syntax, and no longer needs to consult books while coding.Knows the various pitfalls that may be encountered in C programming: memory leaks, segmentation faults, and is skilled in using complex syntax such as pointers, arrays, double pointers, pointer arrays, and array pointers.Can generally design some applications based on personal ideas.
4
Advanced Level
After years of practical programming, has a thorough understanding of C programming, is well-versed in various programming techniques and syntax, and continuously reflects, summarizes, and refines from past programming experiences, significantly improving programming skills.Knows how to use C for large project development and management; learns to view C from the perspectives of user needs, software engineering, and project management, and understands the strengths and weaknesses of various programming languages.Master various development environments and debugging skills, can quickly locate issues when engineering problems arise, and possesses the ability to independently analyze and solve problems.
5
Expert Level
Has honed skills in C and embedded development for many years, and the perspective on problems is no longer limited to C itself, but extends to the underlying operating mechanisms and hardware principles behind C.Familiar with one or more CPU architectures, masters assembly languages of several architectures, learns to use disassembly to analyze the underlying operation of C; familiar with compilation principles, operating systems, algorithms, CPU architecture, and other full-stack knowledge systems.In a company’s project development process, when engineers encounter technical problems that cannot be solved for a long time, it usually requires this level of expert to step in and save the day.
6
Master Level
Experts are common, but masters are rare.At this level, in addition to accumulated work experience, diligent continuous learning, and self-motivation, generally, interest and talent are also needed as a buffer.At this point, learning embedded systems and C is no longer just to meet work or project needs, but driven by passion. Interest and love motivate a person to spend more time and energy on programming, often neglecting other aspects of life.They may not pay much attention to hygiene, and their emotional intelligence may not be high, but over time, they will stand out from the crowd, gradually gaining some fame in the community and becoming objects of admiration for those around them. They do not worry about jobs, as if they carry a halo; wherever they go, there is brightness, and their working aura is powerful, having transcended embedded systems and C itself, possibly inspiring you to feel energized and eager to try.Working with them is a joyful experience, as if playing in a high-level match, executing tasks effectively, cooperating skillfully, and occasionally reaching small climaxes, making it exhilarating.Therefore, cherish such people around you, or those with such potential.


How does a CPU work? We need to hear a story!

What are the differences between the HAL library and the standard library of STM32?

Hard-earned C language notes, glad I didn’t give up.

Top ten filtering algorithms commonly used in microcontroller AD sampling.

What is the difference between u-boot and bootloader?