More than 50% of programmers do not program, just understand the point of grammar, 50% is conservative numbers. Perhaps 80%, from my side of the people to see, a larger listed companies, yards farmers thousand people.
Like most students have studied English for ten years, they have piled up a single time, but they can't write English compositions.
program = algorithm + data structure
And for embedded programmers, more than that
Embedded program =x* algorithm +y* data structure +z* computer architecture +t* operating system
Computer architecture refers to a variety of hardware architecture, such as disk, memory, USB bus, PCIe Bus, SATA controller, NIC, GPIO,I2C, and so on, of course, including CPU instruction set, peripheral interface, a variety of controllers, registers, even assembly language, even the GPU, network cards, etc., The more the better, the mastery is the expert!
Operating system is also the basic knowledge, preferably proficient in system theory, it is best to have a deep understanding of the kernel, in fact, the understanding of a module is not easy, such as memory management, such as the process address space, such as the file system, such as the device driver, such as the network protocol stack, proficient one or two parts are the great God
Algorithm, data structure is the foundation, need daily diligence, perseverance! Brush questions, coding for the only way!
To do the top 20%, otherwise do not do!
Strive to become an expert in algorithms and data structures, constantly increasing the research on the operating system! Come on!
At least 50% programmers don't program