这个题目来自于 D2 的一个答辩题,过后在看直播时我本人并没有得出结论,明天在洗澡时偶尔想到一个角度来答复这个问题。
什么是「做业务」和「做技术」,这个定义在业界也比拟明确,做业务是指工作后果间接面向最终用户,比方开发淘宝的程序员、开发微信的程序员们。做技术是指工作内容是为其余程序员服务的程序员,比方开发数据库、开发框架、开发工具的程序员们。
这两者之间我会这么选?我的论断是 「做技术更有前途」。理由是 做技术的程序员通常所处的成长环境更有劣势 。
首先并不是所有的公司都有专门做技术的程序员的,但所有公司都有业务要做,大部分公司只能供养起一支开发业务的工程师团队,如果还要供养一些不从事具体业务生产环节的技术型程序员,那么对公司来说是有更高的门槛的,因为这些门槛的存在,会让领有技术型工程师的企业有更大的概率是一个各方面条件都比拟好的企业。
具体来说,一个公司要配置技术型工程师,至多须要满足以下两个条件:
- 公司的业务体量比拟大 ,比方阿里巴巴、腾讯、字节等这些公司,他们的业务每天要面对上亿的 DAU,对于稳定性、安全性、可靠性、可维护性等等,都有很大的要求。
- 老板比拟器重技术、认可技术的价值 。有些公司即便曾经做的比拟胜利了,但老板会把胜利的起因归结为商业自身的胜利,这也分两种状况,一种公司的确是重业务型的,技术能力可有可无,还有一种是老板还没有意识到技术的价值,那么工程师的工作会越来越难进行,直到删库跑路。一个认同技术价值的公司,肯定是技术占较高的比重的。
如果能在满足以上两个条件的公司工作,那么无论做业务还是做技术都不会太差,但我为什么仍然认为做技术更有前途?
- 技术上的胜利更容易失去同行的认可 。如果有两种向同行本人的形式,你会抉择那种?1)我是 facebook 的工程师。2)我是 React 的维护者。我置信大部分人会抉择第二种,起因是工程师的程度对于业务是否胜利来说并非决定性的,而技术产物的胜利与否则间接取决于程序员的程度,开发一个胜利的技术产物会让你在业界领有很高的知名度,但咱们却很少意识胜利业务背地的开发者是谁。
- 技术型工程师所在的团队更有工程师文化 。相比业务型团队而言,在技术型团队中工作,工程师领有更大的话语权,所有更有机会去建设一些工程师喜爱的工作形式,而后通常在团队的工作品质、常识积淀、技术摸索等方面会更器重,更有助于集体的成长。
- 技术型工程师的产出价值会被成倍放大 。对于业务开发而言,投入和产出根本是 1:1 的,开发淘宝网的代码只能服务于淘宝网,可能最多在天猫商城外面能复用一些。而技术型产出的是能够被用到任何业务开发中的,比方淘宝和微博可能应用了雷同的数据库,技术型工作的投入产出比是 1:N 的。
综上,成为一个技术型工程师,有更大的概率能在职业生涯中一直进步本人的能力,也有更大的概率可能取得更多的职业倒退机会。
文本转载自我的博客: https://zehao.me/ 程序员,做业务还是做技术更有前途?