程序员代码不朽

2018-12-30 绝然不同的事

2018-12-30  本文已影响0人  john_adhoc

我们往往非常理性,会认为汽车就是跑得更快的马。
诺,你看,第一天,它跑的还不如马快。我们为什么需要它?

困惑

笔者大学毕业之后,投入工作岗位,在全世界程序员的还算比较向往的大公司工作,每天在吸收西方最先进的经验,可谓一日千里(当时的感受)。 每日赋闲的时候,笔者常常苦思一个问题:为什么这些经验,我在大学里压根学不到?这些工作方法和流程,连听都没有听说过?

笔者的大学,也是国内数一数二的高等学府,大学教授也都水平很高,上课深入浅出,旁征博引,不可谓不科学;课程作业也是难度极大,不可谓不专业。 到底差了什么?

关键的变量

直到某一天,笔者看到如下事实,忽然大悟,有一个关键变量,决定了两者是绝然不同的事。在大学和顶级工业界之间,在这个维度的差距,永远也填补不了。

G1.jpg G2.jpg
环境 代码规模/行 整体工程规模/人年
大学课程作业 ~1000 ~0.1 人年
初创公司-手机App ~10,000 ~1人年
创业项目-10人左右小型团队 ~100,000 ~10人年
中型商业软件-50人左右研发团队2年 ~1,000,000 ~100人年
大型开源项目-e.g. k8s ~5,000,000 ~500人年
。。。 。。。 。。。
Windows Vista ~50,000,000 ~50,000 人年
Google(2015) ~2,000,000,000 ~200,000人年

表格最后一行Google 的工程规模按照25,000人(2015),假设Google工程师数量线性增长(from 1998 to 2015)来近似推算。

惊人的差距

跑的再快的马,也无法赶上汽车
-- John Adhoc

一个非常显而易见,但往往被忽略的事实就是,上面表格中任意相邻两行,其实都不是一件事情。 学校里的作业,和一个创业项目做一个完整的手机App,是两件不同层面的事情。 负责一个10人团队,研发一年,完成一个创业项目,拿到融资,会管理一个50人研发团队,完成一个商业型的交付系统,是两件不同层面的事情。依次类推。

两件事情的含义

这里不得不多论述一下,两件不同层面的事情 意味着什么:

回到困惑

篇幅有限,笔者对于其中更深层次的思辨,留到以后有时间继续进行。

上一篇 下一篇

猜你喜欢

热点阅读