为什么有些大公司的技术弱爆了?

阅读本文大概需要5分钟。

最近好几个大厂的读者不约而同跟我聊到公司采用的技术栈很落后的问题,一个读者还感叹:是不是大厂的领导都是混子?技术这么弱还不如之前呆的小公司。

回复了几个读者朋友之后,这里也想跟大家分享下这个问题:

1.大公司业务极其复杂

毕业第一年在腾讯工作,做QQ游戏大厅,当时用的IDE是VS2006,用的版本控制工具,叫 ClearCase(估计用过的人不多),IBM 开发的。

特点是极其严谨、非常强大,但流程极为繁琐,用起来简直让人抓狂,这还是腾讯花了3000万找IBM买的。

而QQGAME这个产品的代码量几十万行,DLL就有几十个,工程编译一次需要20分钟以上。

离开腾讯多年后,问了问前同事,他们居然还在使用VS2006和CleaerCase,原因很简单,更换新版IDE需要解决大量技术问题,而业务又在高速迭代,只好不了了之,更换版本控制工具?历史的各种Log就会丢掉,要是出现什么稀奇古怪的突发问题,还得去看CLeaerCase。

业务的复杂性还会导致耦合严重,一但代码工程产生耦合,改动一个地方就会牵一发而动全身,这种情况下引入任何新技术都会带来极大工作量。

大公司的业务代码,有时候明明感觉有bug,却能运行良好。

这是一个前人留下的屎堆起来的一个克苏鲁缝合怪,看起来摇摇欲坠,有无数的虫子爬来爬去。但勉强堆起了山一样的形体,蠕动着为老板赚钱。

2.大公司技术历史包袱重

大公司之所以能成为大公司,一定是找到了稳定持续盈利的业务模式,这些业务对应的产品,动辄横跨几年甚至10年,这些年业界的技术高速发展,但大公司要保证业务的稳定性,即便再落后的技术,只要能给老板赚钱,就是极好的。

你想尝试引入新技术?能带来多少用户价值、商业价值?导致系统崩溃了怎么办?小公司系统出点问题无非是影响几万用户,大公司的产品要来点小问题,就算1/100的几率,拿QQGAME上亿用户来说,那就是100万用户出问题,一下就给公司带来几千万的损失,这么大的锅,谁敢背?

所以大公司的技术leader在引入新技术这方面,一定是趋向于保守的,人都是趋利避害的,用了新技术成功了,并没有肉眼可见的好处,失败了?直接卷铺盖滚蛋吧。

3.大公司新人入职离职频繁

铁打的营盘,流水的兵讲的就是大厂,大厂每年应届招聘动辄数千,社招再来数千,离职也不下几千甚至上万。很多开发的还是外包人员,外包人员的流动性可想而知。

在这种人员流动速度面前,能勉强把旧的技术系统吃透就烧高香了,哪有心情和心思研究新技术,除非真的是遇到了某个技术困难非要迭代进化,否则很难有动力去驱动。

以上三点,是我在大公司工作多年后的一些心得,但这么说大公司的技术难道就没救了?

当然不是!

大公司在以下几种情况,也会爆发出惊人的技术战斗力:

1.组成攻坚小团队,开疆辟土

这个最经典的就是腾讯的微信团队,2012年马化腾接受张小龙的建议,要杀入移动通讯领域。公司并没有只让QQ团队来研发这个新事物,而是同时启动3个敏捷小团队和QQ团队一起赛马。最后的结果大家也知道了。

微信团队今天取得的成绩不光是用户量,同时也有多端通讯实时同步的领先技术,这项技术在2012年属于绝对领先且碾压的技术。微信团队的前身是foxmail,张小龙创造性的把邮箱的实时同步引入到即时通讯领域。

哪怕到了今天,微信团队从几十人成长到上万人,微信的技术依然保持着高速进化的状态。

2.业务老人走光,无法延续

这种情况比较极端,但也会发生,大公司老团队的业务leader跑路,然后带走骨干,又或者自然流失殆尽,导致旧的系统新人完全无解,或者迭代极为缓慢。

新Leader这种情况下,选择大刀阔斧,直接大规模重构,甚至重写。在腾讯互娱大部门,某一个游戏团队就发生过这样的事情,反而让各种新技术充分落地应用。

3.技术密集型的业务,必须不断在技术层面取得突破

哪些是技术密集型的业务?比如谷歌的搜索、微软的操作系统、亚马逊的云计算、华为的5G。这些大公司的业务,你丝毫不用担心技术上有任何落后。

他们事实上已经进入技术无人区,必须依靠企业的内发创造力,不断取得突破。所以他们会大量招募全球最顶尖最聪明的人才。

比如华为会在俄罗斯广泛招募数学天才,微软亚马逊吸引了大量能力智力双高的华人。

最后说下我对大厂的总体看法:并不是大厂员工能力问题导致某些技术落后,完全是业务和商业市场的选择导致。

另外,我认为程序员职场初期(前五年)进大厂是非常必要的,不管是不是最先进的技术,最起码完善的技术培训体系、薪资福利、更人性化的管理、人才密度等等,完全碾压小厂。

PS:程序员多刷算法好处多多,算法好的朋友进大厂非常容易,送大家一本阿里P8撰写的算法笔记,刷完进大厂很轻松,大家公众号回复01获取,另外不是做技术的朋友回复1获取一份我写的职场进阶PPT:

今天就分享这么多了,我们下期见~

·················END·················

你好,我是findyi,毕业于华科、清华,

一位大厂的业务负责人,

做过大厂技术总监,

也做过小厂CTO的产品技术人,

同时,也是一位信奉终身成长的职场人。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304609.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

普通程序员转型深度学习指南

AI领域人才奇缺,炙手可热的AI专业应届生年薪30万起步,AI毕业生基本不用找工作,都已经被企业早早预定。AI人才究竟有多紧缺?据腾讯研究院《全球人工智能人才白皮书》报告数据,目前全球AI领域人才仅约30万,全…

sm缩写代表什么意思_pe、PE在电气有代表什么意思,你发现没有,电气技术很有意思...

pe、pe、pe这些是什么意思解说1,听小课堂电小二跟你讲PE是Protecting Earthing的缩写,简体中文名称称之为“保护导体”,也就是我们通常所说的“地线”,我国规定PE线为黄绿双色线 。1.PE线的应用PE线是专门用于将电气装置外露导电部…

java短信接口 调用_带你了解短信接口的调用

查看接口说明image.png注册账号注册成功的页面如下:image.png设置短信内容的签名比如:将短信签名设置为yzcimage.png查取短信接口密钥image.png设计Java程序短信发送客户端的代码如下:package day02;import org.apache.http.Header;import or…

抢鲜体验.NET6 Preview1,配上Docker简直停不下来!

新年复工后的第一件大事儿就是上周三重磅发布的.NET6 Preview1,发布了很多的新特性,让人欢欣鼓舞!然而有些小伙伴儿却担心学不过来了,其实不用担心的,照常用你的.NET5,等11月份.NET6 LTS正式发布了&#xf…

实用金属材料手册_机械密封选用手册

《机械密封选用手册》较系统地介绍了机械密封的原理、结构、材料及辅助系统装置及安装、使用方法和故障分析等。内容以产品样本图册为主,并做了相应的结构说明。本书重点介绍了机械密封的选用方法,读者可根据介质、温度、压力、转速等工况条件选取合适的…

为什么在人工智能火爆的现在,我们还在做数据分析

这些年来,随着进入大数据时代,各行各业均有一个词频频被提到,那就是数据分析。那么数据分析究竟是什么呢?数据分析就是指用适当的统计分析方法对收集来的大量数据进行处理分析,提取有用信息并形成结论,从而…

加入域--深入理解DNS在域中作用

接前面《创建windows域--深入理解域概念》这篇文章,来说说加入域的问题。 有人加入域时很顺利,几分钟甚至几秒的功夫,完毕。有人加入域时很恼火,折腾了一天甚至几天始终丈二和尚莫不找头脑。有个学生,很勤奋&#xff0…

学生成绩管理java代码_Java swing学生成绩管理系统

项目描述本系统主要分为5大功能模块,分别为:登录模块:实现用户登录。参数设置:包括学生年级设置、班级设置、考试科目设置以及考试类别设置。基本信息:包括学生信息、教师信息以及学生考试成绩信息管理。系统查询&…

你可能不知道的按位与、或运算技巧

背景最近在园子里看到了这篇文章,看完这篇会有意外收获:C#枚举高级战术https://mp.weixin.qq.com/s/yipaL6Acil-uxq_bDDgdyg想起了很久之前的自己的一篇总结,特地找出来说说概念在工作中遇到按位或组合权限串。一直不是特别明白。今天终于花了…

web高德地图怎么加载离线地图_怎么验证全国离线卫星地图缓存文件的完整性

1. 概述自从我们发布了《如何离线浏览全国7137GB海量谷歌卫星离线影像》一文后,很多用户都在问下载海量数据的具体方法,为了解决大家的困惑,于是又分别发布了《如何一次性下载全国谷歌卫星影像地图数据的方法》和《如何一次性下载谷歌地球的全…

为什么程序员发现不了自己的BUG?

最近在朋友圈流行了这样的一个小学数学题,当然结果是“出乎意料”,看似简单的结果,几乎很少有人做对,而分析下来的原因无非是惯性思维下的粗心导致的完全错误,今天小编就带大家一起分析下思考过程。看图可知&#xff0…

IP代理在网络游戏中的应用

前些天同学开了打钱工作室,想玩外服魔兽打点游戏B赚点钱,可是不会上外国魔兽,叫我帮忙给看看怎么才能玩外服。现在我就来做个简单的教程,说明一下怎么玩外服吧。先说明一些现状:一些海外网络游戏服务器和带宽资源有限&…

python游戏代码运行不了_无法使我的tic tac toe游戏在python中正确运行

转不到“玩家1”的原因是你的支票中缺少一个空格。你也没有正确地检查一个玩家何时获胜,这就是为什么你会有这种奇怪的行为。你需要检查每个位置,而不仅仅是最后一个。我还添加了对用户输入的检查,以确保用户输入的是一个数字,如果不是,它不会崩溃。我完全不明白为什么你基本上…

Csv解析CsvFile

Excel导出是非常常见的需求,而大多数时候只需要导出CSV格式文件即可。Csv文件非常简单以及快速,除了日常导出报表,还可以导出大量数据用于跨系统数据交换,曾经多次遇到一次性导出数百万行数据。NewLife.Core 内封装了CsvFile类&am…

java流的序列化_Java中的对象流和序列化介绍

最近,在讲流的使用,其中对象流的作用其实就是将自定义类的对象与流之间相互转换的流。看起来还是挺简单的,那么看下面的例子:public class Student{private int id;private String name;private String sex;private String tel;//…

【干货】人人都能看懂的LSTM

推荐阅读时间:8min~13min推荐理由:这是在看了台大李宏毅教授的深度学习视频之后的一点总结和感想。看完介绍的第一部分RNN尤其LSTM的介绍之后,整个人醍醐灌顶。10. 从RNN说起循环神经网络(Recurrent Neural Network,RN…

Csv数据库CsvDb

在工控领域,经常遇到断电关机数据库文件损坏的情况,SQLite如此,LiteDb也是这样。ZTO有数万自动化扫描设备,每天都有数百台设备因断电数据库损坏等原因,而不得不重装软件。因此,设计了CsvDb,用于…

Lucene的一些基本使用方法和概念 (JAVA)

Lucene是apache组织的一个用java实现全文搜索引擎的开源项目。其功能非常的强大,但api其实很简单的,它最主要就是做两件事:建立索引和进行搜索。1. 建立索引时最重要的几个术语* Document:一个要进行索引的单元,相当于数据库的一行…

java jdbc分页_使用JDBC进行分页查询

package day03;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;import java.sql.Statement;import day01.JdbcUtil;/** 演示:JDBC的批量处理*/public class Demo3 {public static void main(String[] args) {// testI…

python计算四舍五入_Python实现小数四舍五入的方法

对小数在Python中实现四舍五入的方法,不能使用round函数,round函数的执行的是HALF EVEN,不是四舍五入(HALF UP)。而使用decimal模块提供的接口,就可以精确实现十进制小数的四舍五入。本文对这个topic进行详细介绍。Python的浮点数…