Hardware engineers mainly need to understand the knowledge of circuits, know the functions and principles of commonly used electronic components, know how to use electronic measurement tools, know how to use electronic production tools, also know how to assemble, test, production process, maintenance, etc. Hardware engineer is combination of technology and manual operations.
Software engineers are proficient in circuit knowledge, analog circuits, digital circuits, can analyze circuit diagrams, design circuit diagrams, make PCBs, understand the principles, usages, and models of various electronic components, are proficient in microcontroller development technology, and use programming languages (assembly language, C language), can use the computer as an auxiliary design tool to work very proficiently, can use common design software handily.