就现在互联网的发展趋势而言,我相信如果给大多数人一次回到十年前的机会,大多数人肯定会毫不犹豫地报计算机专业。
但,如果你翻开清华北大10年前的毕业生就业报告,会发现按照招聘数量排名,清华毕业生去向排名最高的几十家企业,几乎无一例外都是“中”字头的国企。
而过去十年,这些传统行业的趋势如何,我想大多数人应该都心知肚明。
在2020年,打开清华大学毕业生的就业报告,在毕业生去向最多的企业里,阿里华为腾讯美团等几大互联网巨头基本上霸占了榜单前几名,甚至华为、阿里一家企业招聘的博士比中核、中建之类的巨型国企还要高出几倍。
有些人在做选择的时候,常挂在嘴边的一句话是,看看那些聪明人如何选。但你看到清华毕业生10年前选的是什么,可能也并不觉得高考分数高、大学好,就一定能赌对趋势。
从清华大学毕业生们的选择来看,互联网依然是当下待遇最好的去向之一。如果一个人没有明确的方向(比如我决定了以后一定要从事什么行业),或者就是想找个工资高的行业,那么互联网无疑是很合适的选择。只是在入行之前,要做好如10年前的清华大学毕业生一样的心态,也就是高收入、稳定与成长空间是一个不可能三角。
也别说要把握以后的趋势,进入个高成长性的行业之类的话——当年那么多清北毕业生都不太愿意去的工作,在当时的人眼里,会是什么有前途的工作吗?
回到20年前的话,在很多大学里,计算机甚至都是招生分数最低的理工类专业之一。那时候,生物专业才是大热门(捂脸)
我说这话也不是要劝退,恰恰相反,大企业和发展成熟的行业有着更高的确定性,也就是待遇不错、保障好——就如10年前的那些中字头企业一样。但是,进入这些行业也就如同你看到了股票涨起来的趋势之后再买一样,就不要指望自己能赚到整个上涨区间的钱。
认清形势,做好选择,并对自己的选择负责就好。
我依然推荐没有其他更好选择的应届生,在可以进入互联网行业的情况下,选择进入互联网行业。
什么时候不推荐?当然是你有更好的选择。
比如你家就是开厂的,厂子的效益还不错,每年都能有上千万的利润,那你不赶紧回去帮助爹妈分担点压力,做好继承家产的准备,还去互联网浪费个屁时间呢?
大家别以为我在开玩笑,这种情况是真实存在的。
在十多年前,互联网,计算机行业还没这么热的时候,哪一类企业是大学生最想去的?
那时候的最佳选项是外企。
外企里面最热的就是四大,咨询公司,外资银行,以及宝洁为代表的各类行业巨头。
我就在面试联合利华管培生的时候遇到了一个家里也是开日化用品公司的人,他在终面的时候被淘汰了。
他后来就说,要不是对他们家的营销模式感兴趣,想去先学习两年,他才不稀罕这种年薪十几万的烂工作呢!
我还认识一个家里就是开化工厂的人,毕业后也想尽各种办法去某德国化工巨头当了销售代表,想的也是学习一下人家的先进经验,顺便切点人家的客户。
但如果你没有这些条件呢?
你不去互联网行业你还有什么更好的选择?
但凡你有一个更好的选择,你早就跑去报道了,根本不用在这瞎纠结。
比如你考上了发达地区的公务员,再比如你拿到了比互联网行业待遇更高的offer。
在头部高校读研究生的理工科学生,每年都有很大一部分比例在想着转行,大部分也都选择了互联网或计算机行业。
但你见过多少个头部医学院临床医学在读生放弃当医生或者继续在医疗行业混的机会,选择转行互联网的?
倒不是说当医生就一定比在互联网混要好,而是当你有了头部医学院临床医学博士学位这个巨大的沉没成本的时候,你也不想扔掉。
但是头部高校的材料博士,化工博士呢?我见过不少,说扔就扔掉的。
说白了,还是因为本行业太烂了,互联网即使已经不行了,走下坡路了,以他们的实力,也能在互联网行业拿到比留在原行业更高的待遇。
没有一个适合所有人的标准答案,当你问别人问题的时候,你首先要看清楚你的位置,不是别人做了一个选择,那个选择就也适合你。
人家也许早就跑到十楼了,而你还在一楼大厅连楼梯口都还没找到呢,也不知道电梯门早就焊死了,还在那问别人怎么进电梯呢,你凭什么觉得别人的选择你就可以参考?
两天过去了,看的人,关注的人不少,能说得上话的看来是寥寥无几,除了青椒牛老板忆苦思甜了一下,七位靓号豹哥连回答的勇气都木有了,被吓跑了
那我先写一些目前已知的信息,权当是抛砖引玉
先说一下两个现有的低延时(low latency)的gc策略,zgc和shenandoah
zgc应该都很熟悉了,出来有一段时间了,这个是oracle官方团队做的,虽然说是官方团队,但其实是bea jrockit的人写的,以前sun的hotspot和bea的jrockit是早期比较出名的两个jvm实现,hotspot用c++实现,jrockit用c和java实现,说起来还挺好笑的,当时的评测结果是,hotspot更适合客户端,需要快速启动的程序,而jrockit更适合长期运行的程序[1],后来sun和bea都被oracle收购了,这两个jvm也就合二为一,其实更确切一点说就是,合并到hotspot中去,然后jrockit被贡献给了openjdk。然后jrockit的工程师per liden就是后来的zgc的team lead。zgc现在已经做到,大部分gc的latency在1ms以内,平均只有0.1 - 0.2ms之间,基本上无感知了,正常人条件反射的时间是0.25s,也就是250ms,经过训练的运动员,可以达到100ms,眼睛对于动画的感知,在1/60s左右,也就是17ms左右,经过训练的电竞之类的,可能可以达到90或者120fps,也就是8-9ms,就是人的极限了,现在gc最长导致程序的停顿在0.2ms以下,这种级别的停顿,人是不可能感知得到的
shenandoah是red hat的作品,现在red hat被ibm收购了,以前red hat和ibm,都有自己的jvm,分别是开源的iced tea和openj9,后者到现在还在不断出新,据说内存占用上会有一定优势,现在叫terium,北洋的下载网站[2]上对terium和openj9的支持是很好的,更新得很积极。而iced tea在openjdk出来之后,基本上就处于被放弃的状态。那red hat后来基于openjdk,制作了自己的低延时的gc策略,就是shenandoah,shenandoah对比zgc,对硬件的要求相对低一点,但是对用户给出的承诺,也低一点,就像zgc早期,承诺在10ms以内完成全部gc,shenandoah从来没有给过任何这种承诺,也就是说,我尽力。然后官方oracle提供的openjdk的build里面,并不提供shenandoah,被oracle删了,但是其他的openjdk的build,都提供shenandoah这个gc策略,一般认为,zgc更适合客户端程序,shenandoah更适合服务器端程序,因为前者更满足一些硬性指标,比如保证10ms以内一定完成,后者就没有这个承诺,但是相对应的,前者对于资源的消耗也更大,一般要腾出15%左右的内存富余给zgc使用,然后cpu处理能力会有所下降,因为拿去给zgc用了,那相比之下,shenandoah对于这种资源的硬性要求就低,但是它同样也不给这个承诺,更像是随缘,我尽量,风险你自担
这是现有两个低延时gc
那按照新的gc的论文里面写的内容看,zgc和shenandoah虽然都实现了low latency,但是是以牺牲吞吐为代价,也就是需要一定的cpu和内存消耗,你需要为low latency腾出为了实现low latency gc的资源,相应的,等同cpu和内存的硬件的处理能力,就会相应下降一点,这其实也很合理,不能说既要马儿跑,又不让马儿吃草,让机器给你干点活,总要给人家点资源
但是,新的gc策略,简称lxr
认为,可以通过基于引用计数的策略,可以进一步降低对系统资源的占用,让gc在实现低延时的同时,又不需要牺牲太多cpu和内存资源,进而使得吞吐不受影响,所以论文的标题就是:低延时,高吞吐的gc策略
然后给出了一堆的评测结果,对于评测结果,你可能会怀疑,是吧,对比的openjdk 11的结果
但实际上,论文中有具体的validity,意思就是,他们打算把这个gc port到17上去,但是他们同时也对比了17的shenandoah,发现17的shenandoah和11的shenandoah结果几乎是一样的,而且11有backported improviement,也就是在后续版本中,shenandoah的改良,都会回溯到11的高版本中去,所以shenandoah的11没什么问题,17的zgc整体策略改变了,比较难对比,这个期待后续的比较吧
所以11没什么问题,然后期待他们给出17的build
然后说一下实现的过程,这个过程很有意思,他们先用rust开发了一个工具mmtk,然后这个工具提供了openjdk(c++写的)jikes rvm(java写的java研究虚拟机)和v8(c++写的)的绑定,然后再用这个rust写的绑定工具,实现了新的gc策略
从这一点上,可以看出,现在很多软件的研发,都已经从c++上转移到其他语言上去,这并不是坏事,因为c++的代码确实太难阅读了,openjdk的开发进度,其实受到c++语言本身混乱语法颇深,就是你可以感觉到,一大堆人做了好久(接近10年),但是进步相当有限,没什么成果,相比之下,你用其他语言,往往都能做得比c++更快,而且性能更好,就像graal的jit(用java aot实现的工具),什么都没改,直接替换openjdk里面的jit也就是c1/c2,都能在一些时候有高达15%的性能提升,所以现在这个时间点,没有什么太多理由继续沿用c++,当然openjdk本身的开发还要继续,只是源码这些,正在一点一点从c++中转移出去,那最终发展成什么样子,拭目以待了
然后这个gc本身诞生的环境,也很值得玩味
这是一个高校的论文,虽然三作是谷歌,但最重要的一作和二作,都是高校,这就预示了我之前说的,现在的科学和技术的发展,哪怕是技术这种科学的应用面,也越来越多,不再是企业能够推动得了的了,企业的目的是赚钱,但是推动科学技术的进步,更多的是一项事业,所谓事业,就是你要牺牲眼前短期利益,为了长远的发展考虑,那这个投入,都是动不动十年二十年的投入,企业没有那个耐心去等待,所以最好的方式就是,企业出钱,投资到高校等研究机构中去,这样一来可以减轻政府对高校的负担,人也更专业,高校里面教授博士一大堆,每天就是搞研究,企业里面,教授都罕见,教授也不愿意放弃铁饭碗去给你修福报,同时,因为是项目制的,所以搞完研究之后,一拍两散,企业不用负担教授博士们搞完研究离开公司(也就是裁员)的成本,所以这是多赢的局面,我国政府其实也正在推动这种校企合作,产学研嘛
然后这个就很好滴展示了,将来,对于技术的推动和进步,会是怎样的一种局面,除此之外,llvm,graal这些项目,研发主体也都在高校里面,现在是连传统openjdk的开发,也在逐步转移到高校中去,企业搞研究的时代,差不多过去了
所以你看,达摩院开始大面积裁员,湖畔大学关停,但是这些高校的研究成果,开始频频出现,以前关于gc的论文,还有不少是ibm,azul之类的企业发的,现在越来越多是高校发出来的,实际上虽然国内阿里用java的频次比较高,但是你看我写了这么多,有阿里什么事吗?
技术发展到一定阶段,就必然要求更高的研发门槛,就不是随便一个企业的打工仔,就能凭着一腔热血,搞搞搞,就能有所成就的,现在慢慢都过了那个阶段了,像国外贝尔实验室,早就不行了
最后本论文的一作好像是个华人
中国的平头老百姓是啥都不懂的、啥都做不了的、啥都不想做的贱民吗?
英雄的老百姓关心美国,因为它就横亘在面前。
“Because it's there.”
因为山就在那里,所以英雄的老百姓就想征服一下呐,人类的天性而已,家畜或许不能理解。
全世界所有厉害的东西,中国的平头老百姓都关心:上至国际空间站,卡西尼,奥陌陌,旅行者;下至下水道油布包,煮饭仙人,圆珠笔尖,还有猛禽,幽灵,高精狙,福特号,电磁炮,可燃冰,盾构机,大豪斯,大牛排,电瓶车,鸟语花香,老虎大象,GPS,NMD,M1p,RTX,诺贝尔,太平洋。
我想要的不多。你给不了,我就自己想办法。