What makes a 10x programmer/software engineer?

这是我有一次在Quora上看到的毕业于Stanford University的Ph.D在Facebook工作的华人的一个回答,举的例子都比较直观够简单,前段时间一直把它放在草稿箱中这次看到了又想了起来这个回答,这算是对作为一个程序员比较实际的类似于未来发展的指南吧,虽然我也还没有毕业,因为自己具有多元背景看到的比较多所以深以为然,一个人再厉害也没有团队的力量的大,能够将一个团队组织的真正的高效能够“干大事”,当然我也觉得个人的技术才是一个programmmer最核心的能力,而不得不承认有的时候技术的提升空间真的不是那么的快且有效,是需要时间和实战去消化的,有点像计算机的进程的概念,一个进程在堵塞的时候还是可以进行上下文切换去完成其他的进程,异步调度并不影响性能和稳定性,而线程的调度却能最大化的利用CPU,合理的调度算法能够最大化效率和稳定性,所以,一个劲优化某一个进程的算法复杂度,当然不是不可取,而我记得有一个计算机中有一个理论是就算将某一块的性能提升到了100%,实际上对总体性能的提高却极其有限,当然也不是上来就像当领导,而是朝着做一个真正“高效”有“价值”的程序员而去努力。
 
machine learning engineer
 
You become a 10x engineer by making ten engineers twice as productive. You unblock other engineers and help them fix their most difficult issues.
  • The whole system is broken and no one can do any work. Every hour the system is broken is 10 wasted hours of engineering time. You fix the system in 1 hour. You are a 10x engineer.
  • Your friend would have spent three days fixing a bug. Instead, he asks you for help, and you solve it in 1 hour. Your 1 hour saved the other guy 24 business hours. You are a 24x engineer.
  • Your friend writes a diff with a bug in it. You review the code and find the bug before he puts it in production. If it had made it to production, it would have cost 5 hours of time to fix, but you found it in 15 minutes. You are a 20x engineer.
  • Your team’s code has no unit tests. You add a bunch of unit tests to the code. Other people copy the style of your code, so soon there are hundreds of unit tests. Now bugs that took days to catch are being found immediately. You are a 50x engineer.
  • Your friend is doing a project. You learn that someone else on another team is doing exactly the same thing. You take them both out for ice cream, and they find a way to work together. They save 6 months of development time. You are a 200x engineer.
  • Your friend is unhappy and thinking about leaving the company. You coach him and talk him through his problems. He becomes happier and decides to stay. Replacing him and ramping up a new team member would have taken 6 months. You are a 200x engineer.

 翻译:

  • 你成为10倍的工程师是通过让10个工程师的工作效率提高两倍。你为其他工程师打开障碍,帮助他们解决最困难的问题。

  • 整个系统都坏了,没人能做任何工作。系统每坏一个小时,就浪费10个小时的工程时间。你在1小时内搞定系统,你是个十倍的工程师。

  • 你的朋友可能要花三天时间来修复一个bug。相反,他让你帮忙,你在1小时内解决了,你的1小时节省了别人24小时的工作时间,你是个24倍工程师。

  • 你的朋友写了一个有bug的程序。在他将其放入生产环境之前,你检查代码了并找到错误。如果它被组织到产品中,它将花费5个小时的时间来修复,但是你发现它只需要15分钟,你是一个20倍的工程师。

  • 团队的代码没有单元测试,在代码中添加一组单元测试,其他人会复制你的代码风格,所以很快就会有数百个单元测试。现在,花了几天时间才发现的漏洞被立即发现了,你是一个50倍的工程师。

  • 你的朋友正在做一个项目。你会发现另一个团队的其他人也在做同样的事情,你带他们出去吃冰激凌,他们就会想办法一起工作。它们节省了6个月的开发时间,你是一个200倍的工程师。

  • 你的朋友不开心,正考虑离开公司。你鼓励他,和他讨论他的问题。他变得更快乐,决定留下来。替换他和增加一个新的团队成员需要6个月的时间,你是一个200倍的工程师。

原文地址:https://www.cnblogs.com/RQfreefly/p/13491719.html