Strive to be a good engineer

Source: Internet
Author: User
Tags svm

Wen/Hangyuan li

Hangyuan Li, chief scientist of Huawei Noah's Ark Laboratory, combined his own personal experience, proposed five principles to be followed in order to be a good engineer: Face the problem, solve the problem, solve the problem systematically, stand on the user's point of view, get the maximum benefit at the minimum cost, and grind it in thin place.

I have been working in the IT enterprise Research department and have been through three companies so far: NEC, Microsoft, and Huawei. Work is both basic research and product development. In fact, both are closely related and very different in nature. The former lies in the theory and method of discovering or inventing universality, the latter lies in the development of practical systems and tools. It can be said that the former needs the way of thinking, the basic skills and qualities of scientists, and the latter is an engineer. I often remind myself that I have to know exactly what "hat" I am carrying in a specific project, whether I'm a scientist or an engineer.

I have made several blog posts about how to be a good scientist, and this article is about how to be a good engineer. In my opinion, there are five principles that should be followed in engineering, and they should be used as a guide to conduct in practical work. These principles are: Face the problem, solve the problem, solve the problem systematically, stand on the user's point of view, at the lowest cost to obtain the maximum benefit, grinding in thin place. Here to do a summary, for your reference only.

face the problem, solve the problem

There is a proverb in the West: "When you hold a hammer in your hand, you will feel as if you see something like a nail." According to their own preferences, strengths, habits to solve the problem is the great taboo of engineers. The most important thing when doing engineering is to face the problem and solve the problem. The desirable strategy should be to identify the nature of the problem, clarify the mechanism of the problem, the most direct and most effective way to solve the problem. Experience tells us that it is always bad to solve problems in a roundabout way. There is no need for theory when doing engineering. As long as you can effectively solve the problem, in fact, any method is OK. "No matter white cat black cat, catch mouse is good cat" here is also applicable. Of course, there are theoretical guidance methods tend to grasp the nature of the problem, and it is often used as a tool to solve the problem better.

While working at NEC, I attended a project meeting of the Natural Language Research group. They suggest developing voice systems to help users remotely control televisions because the remote controls are now too complex to be used by older people and children. Voice-activated TV, of course, is a good idea, and there are still many enterprises in the development of this application. What is particularly impressive is that they assert that there are no other solutions, except through the voice approach. At the time, I also thought their ideas were very reasonable.

Unexpectedly, not a few months, Japan's other electrical companies have introduced the use of coded remote control TV method, more simple, more practical. The operation of the remote control is mainly by digital input, each TV program is equipped with a code, the daily newspaper will be coded in the TV program bar, users just enter the code to watch or record the corresponding program.

This was a big shock to my heart and asked why NEC's colleagues thought only of the path of natural language and neglected the other way. Isn't it because they hold the natural language in their hands for the hammer?

solving problems in a systematic way

The cartoon "No Brains and Not happy" depicts two teenagers: "No Brains" and "unhappy". "No brains" to do things to always absent-minded, "not happy" treat people always love uncomfortable. Soon, "no brains" when the engineer, "unhappy" when the actor. "No Brains" designed a 199-storey children's palace, building a good later, only to find that forgot to design the elevator. In order to see the theater on the top floor of the building, the children need to climb the stairs with bedding and dry food for one months, Hairenbujian. In fact, we can see a lot of "mindless" works in our daily life. Engineers need to build a system that must be built. System must be comprehensive, whole, organic design, can not have defects and errors. Avoid being an engineer with no brains.

In collaboration with Dr. Tang Zhaohui, Microsoft developed the Text data Mining feature in SQL Server 2005. The term extraction tool can automatically extract noun phrases from the English text in the database. The input to this tool is usually English text, seemingly single, but when designing this tool, you must consider handling other unhealthy inputs, such as garbled, non-English, special characters, full-text capitalization, punctuation-free text, and so on. Remember that the development team worked together to build a huge logic diagram that would list all possible inputs, prepare the solution, and try to "punches". This project does exercise the ability of the system to solve problems.

look at the problem from the user's point of view

Apple's products, such as the ipad, are simple, intuitive and easy to use. Two-year-olds are said to be able to taught and use the ipad freely. The reason is very simple, Apple products are for the sake of the user, standing on the user's point of view design. Because of this, Apple's products can be loved and sought after by the vast number of users. The truth is simple, but we will find that many engineers often do not do this when they develop the system, so the things they make are not very useful at all.

The first project to attend in NEC was a failed project. The goal is to develop a natural language user interface that automatically converts a user-entered Japanese question into an SQL statement that makes it easy for ordinary users to access the database. The project is well-intentioned, but the biggest challenge is that the expressive power of language is extremely powerful, and the same meaning can be said to have many different ways of saying it. Development to the end, the system can only accept limited natural language input (at that time there is no statistical learning to solve the problem, perhaps through the big data, statistical learning method to some extent can solve the problem, which is the natural language processing in the future research direction). To the user, the feedback is very poor, because it is more difficult for the user to master the restricted natural language than to master the SQL language. Failure to consider a problem in the user's perspective has caused the project to fail.

get maximum benefit at the lowest cost

Car King Ford once said: "For industrialists, an important rule is to produce the highest quality products at the lowest possible cost and to give workers maximum wages." "Ford's Model T car Price in 1908 was $825, and not many people were able to afford it, and by 1924 the Model T price dropped to $290, becoming a Volkswagen, and one of the two cars sold in the United States was Model T.

The reason is that Ford introduced the production line, greatly reducing the production costs. On the assembly line, the Model T components are standardized, and the maintenance costs are significantly reduced. The difference between engineering and other fields (such as science, art) is that it must take into consideration the cost of development, the cost of promotion, the cost of use, and the cost of maintenance. When engineers develop systems and tools, they must weigh the benefits and costs to achieve maximum benefits at the lowest cost.

I was involved in the development of SharePoint in Office 2007, Office 2010, Office 2012 in Microsoft, and specifically in the development of metadata extraction and enterprise search capabilities. My research team has developed a file metadata automatic extraction tool, which is implemented in two ways: CRF and SVM. The accuracy of CRF is 1% higher than that of SVM, but in terms of the amount of code extracted, the CRF is several times of SVM. Find the architect of SharePoint Meyerzon to discuss which method is best. Meyerzon not hesitate to answer: Of course, choose SVM, because its accuracy is only 1% lower, but the need to develop and maintain a much smaller amount of code. For the product, the cost of development is a factor that cannot be considered.

Grind in Thin place

For engineers, God exists in thin places. Only fine carving, painstaking and artificial, can do a good job project. Good systems and tools are polished by bit by bit. Engineers must continue to hone their skills in the actual work, in order to achieve a skilled, skilled situation, can be as Cook looked through as possible to solve the cow, like selling oil Weng drip without splashing oil.

During NEC, the head of the engineering development team who worked together called Hamada, who learned a lot of programming skills from him. Especially under his guidance, the paper develops the core algorithm in the Topicscope of text data analysis system. I am not a programmer, programming only ordinary programmer level, but colleagues say my code is well written, clear, structured, content refining.

This is because I spent a lot of time writing code under the influence of Hamada. The design of the project, the allocation of the files are repeatedly considered, the function, the name of the variable is carefully elaborated, the system's execution efficiency are continuously optimized. Write a good program, after a while to check, evaluation, modification, until you can not find fault (unfortunately, after joining Microsoft, almost no time to write code, I really hope to do some programming work in the future).

starting from the actual work

The above principles are simple, but it is not easy to do a good job, it can be called "knowing the blame, the difficult." It is important to work in practice in accordance with these principles to do, develop the habit of becoming a good engineer. Train yourself to solve problems, solve problems systematically, solve problems from the user's point of view, and consider the ability to solve problems with benefits and costs. Constantly improve their professional skills, work hard to do the details. You must know some excellent engineers, they are even around, can take them as an example, humbly consult them, learn their strengths, and constantly improve their quality and ability as an engineer. In addition, dare to try, not afraid of failure, in the failure to learn in a timely manner, experience is also very important.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.