What qualities do you need to be an excellent software engineer? What kind of books do you need to read? thank you

Software enterprises require basic software engineers to have six basic qualities, namely, good coding ability, conscious normative consciousness and team spirit, ability to understand and use databases, strong English reading and writing ability, software engineering concept, curiosity and enterprising spirit.

Good coding ability. An important responsibility of software personnel is to realize the user's demand function in a certain computer language. Coding ability directly determines the efficiency of project development. This requires software engineers to master at least one programming language, such as C/C++, VB and the most popular Java language in the world, and be familiar with its basic grammar, technical characteristics and API (application programming interface).

Self-conscious normative consciousness and team spirit. With the increasing scale of software projects, it is impossible to complete the work by one's own efforts. Therefore, modern software enterprises pay more and more attention to team spirit. Generally speaking, programmers in software enterprises can be divided into two types. One is the program guerrillas, who may be familiar with programming tools and have strong ability to make coding concise and efficient, but lack the concept of standardization and cooperation; Another kind of programmer, programming is not necessarily fast, but it is very standardized, and his personal ability is not necessarily strong, but he has a good sense of cooperation. The second kind of person is more suitable for the development trend of modern software enterprises. For basic software engineers, their role in the enterprise determines that they must have a good sense of norms and team spirit.

Ability to understand and use databases. Information is data-centric, so interaction with database is essential in all software. Understanding database operation and programming is one of the basic qualities that software engineers need. At present, the commonly used database software includes Oracle database of Oracle Bone Inscriptions Company and SQL Server of Microsoft Company.

Strong English reading and writing skills. The dominant language in the programming field is English, which is essential for writing program development documents and tools help files, understanding the latest industry trends and reading technical articles, or communicating with programmers all over the world and sending out help requests. As a basic software engineer, having a certain English foundation is very helpful for your study and work.

Have the concept of software engineering. Basic software engineers are at the bottom of the talent pyramid of software enterprises and are the foundation of the whole talent structure. Although their work is simpler than that of system analysts and senior programmers, they are an important part of the whole software engineering. Therefore, basic software engineers should also have the concept of software engineering. From the analysis of project requirements to the completion of installation and debugging, basic software engineers must be able to clearly understand and master these processes and be competent for the specific work of each link. This ability just meets the comprehensive requirements of current enterprises for basic software engineers.

Curiosity and enterprise. The software industry is a constantly changing and innovative industry. In the face of endless new technologies, the curiosity and enterprising spirit of software talents are particularly important, which is the basic condition for a foothold in this highly competitive industry. Software engineers should have strong learning and summarizing ability, demand understanding ability and sensitivity to new IT technologies, and at the same time master the latest IT practical technologies.

Books, just find the corresponding ones. It is best to read widely.