Edmond Lau, who has worked for companies such as Google and Quora and is currently a software engineer at Quip, interviewed senior software engineers at well-known Internet companies such as Facebook, Instagram and Google in his book "The Effective Engineer", and summarized the five abilities that they believe highly productive and outstanding software engineers possess. 1. Don’t be afraid to explore unfamiliar programming languagesWhen you are approaching a new project or changing your career path, you may need to learn a completely unfamiliar programming language. Many people are afraid of this and even give up before trying. The fear of stepping out of your comfort zone is often greater than learning the program. They worry about whether they can reproduce the good performance of their past work, and even doubt their own abilities. No matter how good an engineer is, he or she must have a starting point. For example, Dave Cutler, a senior engineer at Microsoft who built the foundation of Microsoft Windows, was born in the literary group and had no formal computer science education. He spent more time learning from mistakes than his peers. Among them, the two most important keys are to have a "growth mindset" instead of a "fixed mindset" and an "optimize for learning" attitude. This critical skill of learning an unfamiliar programming language will become more and more accessible with practice, and will make you a better programmer in the process. 2. Master Debug"Why does the program run differently than I expected?" is a question that many engineers will encounter. Debugging ability is often a key factor that affects whether an engineer can successfully complete a project, but it is underestimated by most people. The systematic thinking of debugging is as follows:
From this, we can see that if you want to speed up debugging, you need to improve your ability to "propose hypotheses" and "examine hypotheses." The ability to make hypotheses can be improved as debugging experience accumulates, while the ability to examine requires strengthening the skills of using detection tools. In this process, you must first assume that everything is examineable and find tools or mechanisms that can be used to test or speed up testing. Never use only tools that you are familiar with. 3. Develop time-saving toolsSpend less time doing tasks that computers can already do, such as developing time-saving tools and automating workflows. Bobby Johnson, a software engineer who was in charge of Facebook's software infrastructure team, led the team from 6 people to more than 100. He observed that most of the people who performed well in the team wrote many tools. The development time of these tools, which seemed to have no direct correlation with performance, might take up one-third of the working time, but greatly improved work efficiency. These tools included tools for deploying programs, monitoring systems, and other time-saving tools. 4. Optimize the speed of repetitive tasksSoftware engineers may need to search and browse function definitions many times a day. Making good use of keyboard shortcuts can save considerable time. For example, each search takes 12 seconds, and similar steps are repeated 20 times a day. If shortcuts are used, the search time can be shortened to 2 seconds, which saves 40 hours a year. Other situations include testing on different devices each time you debug. In addition to opening the app separately, you also need to set up test scenarios. At this time, you can think about how to speed up such repetitive tasks. 5. Develop a systematic thinking modelWriting program code and making the program work is just the tip of the iceberg. To produce truly valuable programs, we must think from the program itself to the entire system.
Thinking about problems from a macro perspective can help you better understand how to allocate time and energy to achieve the best results for the program. |
<<: Ten apps that Android developers can't put down
>>: Sharing of iOS network layer architecture design
With the popularity of short videos, more and mor...
The 2018 Russia World Cup will open at 23:00 Beij...
In the national fitness trend, there are two word...
1. The meaning of extreme and abnormal In order t...
There are many examples of making money in the wo...
"Users say they want this feature, why haven...
Tom Cruise Movie Collection (1981-2017) 30 HD Eng...
There are two undoubted points about the Internet...
Apple AppStore has just announced the results of ...
Consumer insights , which marketers often talk ab...
From sharing overseas shopping to establishing it...
Expert of this article: Pa Lize, Chief Physician ...
We wear jeans in all styles and colors, but there...
As the leader in English enlightenment and K12, Y...
What is the most popular social short video platf...