Recently more and more people are talking about the full stack, in a sense, a good engineer, must be an all-stack engineer, or at least one or two kinds of cross-language, the ability of the platform to work. In my personal understanding, I would like to discuss how to define a good engineer.
Simple version
Smart, good communication, self-motivated, passionate.
Complex version
- Have a solid foundation of knowledge. Understand the principles of computer, operating system, compiling, linking, loading and so on; understand the network principle; familiar with common algorithms and data structures.
- A deep understanding of at least one computer language. Have a complete experience in a language to achieve a product, has more than 100,000 lines of coding experience; complete control of the entire tool chain.
- Have a good learning ability. Can read the English document, often on several active English website to see the document, the code. A language can be used within a few weeks.
- Good communication skills. Can be organized to describe things, problems, according to the other side of the background, in a better understanding of the other language communication, accustomed to writing friendly documents, have a good attitude to accept the challenge, and find positive factors from it.
- Good ability of self-management. It is possible to find the most difficult point in a complex and varied problem, to achieve the desired goal in a limited time, and to control risk.
- Have the passion to pursue better best practices and better methods.
In addition to the specific capabilities enumerated above, there is one very important, or perhaps most important, to know what you do not understand.
Although the list is many, but the personal feeling is not enough. A technology-oriented company, the ability of top engineers directly determines the ability of the entire company.
Recent observations of several small and beautiful internet startups in the United States have almost always had good technical practices, and some of them are more than a wide range of full stacks across product design, visual design, software design, and documentation.
About
Tigerweibo: @Tiger_ Zhang Hu, founder of Inyumba (Yunba.io), Yunba.io Cloud backend services. Jpush founder, former CTO. A member of the Oracle VM founding team.
I understand the excellent software engineer