程序员摸鱼指南:副业成就未来

你可知道,大名鼎鼎的 eBay 在当年就是由副业项目发展壮大起来的。今天,摸鱼大神 Zed A. Shaw 给我们娓娓道来他的摸鱼经验,要知道,他在上班期间就摸了好多鱼,不仅开发了网站,还在业余时间写了一套丛书。另外副业也是你对抗贪婪企业的主要手段。

这是一则关于 eBay 的 Java 企业版程序员的故事。

eBay 刚成立的时候,Java 正如日中天。彼时,每个人都在用 Java 编程。如果你是一名真正的程序员,那么你所做的一切都是基于 Java。我之所以知道这一点,是因为我曾被卷入到一个无休止的、可怕的 Java 项目中。直到 2008 年银行倒闭潮,这个糟糕的 Java 项目才随之而去。

2008 年银行的倒闭潮确实对 Java 企业版带来了毁灭性的打击,该事件最终还扼杀掉了 Sun(2009 年被 Oracle 公司收购,Java 是 Sun 在 1995 年 5 月正式发布的产品)。在 2008 年,Sun 大约 40~50% 的资金来自运行 Java 的各个银行。当银行因为抵押贷款欺诈而倒闭时,Sun 的一大笔收入几乎在一夜之间蒸发殆尽。随着较小的银行被并入其余三家较大的银行,对 Sun 的合同义务也随即被取消了。

还有一种形式的 “罪恶关联” ,因为 Java 与僵化的旧系统联系在一起,这些旧系统无法以足够快的速度做出改变,以至于未能在 2008 年的崩溃事件中幸存下来。要问我怎么知道的,那是因为我曾在 Bear Stearns(贝尔斯登公司,成立于 1923 年的美国第五大投资银行与主要证劵交易公司之一)一个僵化的 Java 系统上工作过,亲眼见证了整个崩溃的过程。

要不是因为 Android,Java 这门语言早就在 2008 年悲惨地消亡了。这就是我为什么一直说 “企业版” 的原因,因为这个版本的 Java 比较特殊,从那时起,大多数程序员都很讨厌这个版本。这种怪异的、无限的、迂回的、晦涩的代码,似乎是为了让企业程序员保住饭碗才存在的。我至今还记得那些令人讨厌的 “老胡子” Java 程序员,如果你没有把所有的东西都封包在 AbstractFactoryIndirectFactoryFactory 中,他们就会辱骂你、骚扰你。

这种使用错综复杂、晦涩难解的代码写法,因其充满 AbstractFactory 特征,确实起到了将新人排除在行业之外的壁垒作用,同时也保住了程序员的饭碗。

你不能解雇那些 Java 企业版程序员,因为只有他们才懂那些令人难以置信的晦涩代码,每年一次的 Bug 修复还得靠他们,而且这 Bug 还有一个诡异之处:每次在他们应该得到奖金的时候就会出现。你不得不一年又一年地支付 8000 人的工资,而他们上班所做的事基本就是:坐在那里,看着一堆 Java 虚拟机无所事事,否则有一天(就在要发奖金之前),这些虚拟机就会崩溃,到那时你就找不到人来修复它们了。

这些企业版 Java 程序员存在的问题是,一旦公司倒闭,你就需要找到一份新工作。你可能会认为,2008 年那场崩溃事件会给这些程序员上一课,但他们根本就没有吸取教训。你可能还会以为,他们已经意识到没有一份工作是安全的,他们需要掌握第二门编程语言,并有大量替代项目,以防万一因公司倒闭而失业。

eBay 的程序员就是一个很好的例子。

eBay 大裁员

我曾用过几次 eBay,即使到了 2014 年,它的用户界面仍然是恐龙级老古董。当用户结账时,它会把