A soldier who does not want to be a general is not a good soldier, and an engineer without good habits cannot make continuous progress. Today, I will summarize for you the valuable characteristics that are difficult to imitate among the excellent engineers I met in the past seven years of work experience.

1. Strong execution

The beginning of new engineer to join a company, the main work is probably fix software defects or finishing some documents, new on the job at this time is a comrade-in-arms and competitive relationship, some challenge or inspire creativity jobs once appear, in the team, often marketing manager, test development engineers and technical managers are more inclined to executive power is strong, Because:

• For marketing managers, developers with strong execution can deliver products faster and complete customer contracts

• For test developers, developers with strong execution can fix problems faster

• For technical managers, developers with strong execution can solve problems faster, leaving time to deal with risks, and when problems are found, they can solve problems immediately. Strong execution will leave a good impression on everyone quickly, such as energetic and responsive.

Study every day

• Just like scrolling through wechat moments every day, you need to allocate a fixed time for study every day

• Ask questions from others (” a talented and studious person who is not ashamed to ask questions from those who are inferior to him or less knowledgeable “). There is a big difference in the software development and architecture design, built a house, unless house has serious defect, the basic will not come over, and software development, software is constantly embrace change, so for the developers, with new technology, new business development, will require developers to continue to learn new technology, For example, machine language – assembly language – High level language – Machine learning, static pages – rich interactive pages – SPA/ mobile development – small programs. If developers set a goal of learning or mastering all development techniques by the age of 30, this is an impossible goal in itself. Software development is a lifelong learning process. For current technologies, such as front-end development, understand the history and fundamentals, such as browser engines, development kits, and labor patterns, and for future front-end technologies, such as ServerLEss, IOT, visual application development, and so on. In a commercial product research and development team, even if you are a senior engineer, you can often consult the team of young engineers, they are not the same thinking, also have their own profound understanding of the business, for the true master of the technical field, should dare to ask questions, but also learn to ask questions. And learn to read, reading is standing on the shoulders of giants to see the world

3. Trust technology

I often think of university teacher said a word of Java development, the number of “problem solving methods must be more than problem”, developers or whether it is good at communication inside collect, actually we encounter difficult problems, heart a little sad, especially knew nothing touches his field, but also a little could not, in fact than 20 years ago, the Internet, We are so happy that we have so many ways to solve problems:

• A larger R&D team

•Stack Overflow, Google, Github

• Consultation of business cattle

• Technology outsourcing team

• Open source project research

• Paid business custom solutions

• Books, papers

There must be a way to solve the current scale of the business problem, everyone in the DEVELOPMENT process of happiness can not only through mediocre work, it must be through overcoming challenges, ordinary people, do extraordinary things

4. DRY lazy

DRY is just “Don’t repeat yourself.” There is a theory that 80% of the value of what we do comes from 20% of the time we spend working. Software developers need to learn how to be a lazy person.

• I am an operation and I need to log in to many VMS frequently. In order to repeat the quick login script each time, I can use tools like SecurityCRT or SSH or login methods

• I am a UE, and I can abstract the commonly used UI components into the Sketch suite, reducing the repetitive design involved in the business

• I’m an architect and I can encapsulate a set of project scaffolding, such as Vue-CLI or SpringMVC

• I’m a developer and I can wrap my VSCODE configuration or MAC program installation into a standard shell script

We can use tools to streamline, automate, and simplify repetitive things. We can use our creativity to hide complex things and leave things that can be explained in one sentence and can be done in one line of instructions

5. Be an engineer, not a brick loader

In work, if the developer requires the development of a certain interface, for example, Xiaoming develops an interface for obtaining all reports of BI. If Xiaoming is a beginner, he will have three main tasks:

1. Develop interfaces

2. Tell the front-end caller how to use the interface

3. Cooperate with the test, this is just to do the basic things, if you want to do well, you have to ask more content.

• In which version is this interface online?

• Do you need grayscale?

• Which end of the call is involved?

• If the interface has no permission or error, what is the difference?

• Where is the interface document defined that new developers can understand?

• What are the procedures and specifications for testing? •

.

Developers may say, is to develop a interface, how can so much, this is the difference between do and finish, finish can only mean you are a move brick, basic skills, but well, mean you have to think, every time you look at his work, hedge the risks of product after launch, improve the team’s development way, like this, You’re officially starting out as an engineer.

6. Geek Spirit

Google has this work rule that developers can spend 20% of their time each week doing creative things to help their products grow. As FAR as I know, many companies in Silicon Valley have this Hackson Day. For example, Shareshare’s front-end development tool Alpha

7. Pay attention to technical principles and business

In the future of the race, the importance of technical principles and business talent, must be scarce.

1. Why is Yahoo designed? This has to do with the browser’s rendering engine, HTTP

2. Why can Nodejs achieve high performance? Especially non-blocking models.

3. How does static resource caching work? HTTP request header information

4. How do small programs work? Multilayer rendering engine, Worker related

5. How to improve algorithm performance? 1. Optimization algorithm details 2

6.JavaScript execution flow? Lexical definitions and grammatical definitions – “lexical analysis -” grammatical analysis – “interpretative execution

7. How JSAPI works? Native Bridge communicates with JS

In many cases, engineers are actually mainly involved in business development and do not need to understand the principle, but the basic principle of technology is particularly important in the process of technology selection and improvement. If you invest time in research and combine with your own work, you will have a sudden feeling of discovering the peach blossom land. For business, technology serves business, and business can also make technology.

Be willing to share

Developers will learn their own way, business cognition, technical understanding, fill in the pit experience to share out, for developers, continue to refine their knowledge essence, exercise the ability to write, for the shared, can expand their horizons, enrich their “life dictionary”. Sharing methods of development:

• Tech blogs

• Technical community

• Create thematic courses

• Open source frameworks such as VuEJs

• Knowledge summary awSOMexxx

• Translation project

• Business team presentations, sharing • Business team WIKI

9. Modesty: Build yourself and others

All things modest, can let oneself go smoothly go far, win a good reputation, in the team, is also mutual achievements, win everyone’s support, can do more difficult challenges

10. Stay healthy

Software development, no matter 996 or 007, no matter which way of working, everyone needs a healthy body and a positive body state. As we all know, Lu Qi, Zuckerberg, many well-known Internet people, are able to invest a lot of energy, they must have a good body, otherwise how can they keep going? For example, I run 5km every day and participate in various forms of fitness every year