编程压路机不等人

本文是翻译,版权归原作者所有


所有我做过或今天用过的东西当中,唯一和我的第一份工作相同的就属写代码了。其它一切一直在变啊变啊变。如果你不坚持学习,不坚持阅读,不坚持提高技能,最终身后险恶的压路机就会将你永远轧平。你的职业生涯随之就结束了。

当我刚参加工作时,我不知道将来会是什么样。在1981年事情好像没有出现大变化的迹象。人们仍然在大型机上写批处理程序,有一些小型电脑终端,个人电脑还没有玩具多。很少家庭配备电脑,大公司之外没有email,甚至email很少使用。当然没有因特网或网络。仅有少量的编程语言,大多数语言是在50年代创造的。

杂志很少提到编程,几乎没有展览会的动静。甚至我的那些拿到了计算机科学学位的朋友也没有真正接触过开发工作。人们可以没有经验或学历就获取一份编程工作,我就是这样子。你可以自学,或者在工作中学。

我在第一天很少意识到所有这些背后有一头巨大的、刚刚崛起的怪兽。

前两年我大部分用Fortran和一些其他语言。我坚持使用Basic和其他各种语言,甚至在家里玩Pascal。我看了能找到的任何资料,因为它很有意思。

当我接触微型计算机时,生活突然加快了。当我初次尝试在Apple上写代码时,IBM PC出现了,我开始用Pascal写。有人找我评估一套“可携带”的Unix box,配备给将来客户查看F-16参数。这是我首次接触C,我订购了一个用于工作的C编译器。没有人听到过。同时我短暂用过Lisa但是不了解Object Pascal【注1】。我见过 Mac commercial,但我们它好像不适合在工作中使用。

我辞职后开始创业,准备开发一款Mac(Trapeze)下的电子表格程序,我们决定用C,即使Apple貌似仍然钟情Pascal。后来证明这是正确的选择,因为C统治了很长时间(仍然运行在Linux)。

与此同时我阅读了《Byte》杂志关于Smalltalk的文章,我马上意识到Object属于未来,我需要理解它。

现在我真正开始懂得在编程上,变化的步伐不会再慢了。甚至在没有因特网或email的80年代晚期,新事物出现的速度已经非常明显了。

在卖掉了公司之后,我们建立了一个Mac编程顾问公司Deltagraph,我为C开发对象扩展。那时候至少没有能用的C++,我需要效益,因此我开发了一些漂亮的扩展允许我只用一个内部输出生成器来构建多路输出驱动。

最终在90年代早期C++出现了,我已经理解了如何从面向对象角度设计。当然我有时候仍然使用C。

那段时间我看了一些称作web的资料,尝试了一点基于浏览器的文本,为此非常着迷,认为它会引领潮流。到后来的90年代中期,我在Bay Area工作了一年,经历了Netscape的首次面世。即使这样,我仍然不能看到巨大变化即将到来。

回家之后,我记得看了一种叫做Java的新语言,鼓捣了一会儿。如今web已经开始了,但是它仍然简单,我不确定它会引领潮流,但是现在我知道要了解。当一个巨大变化在世界上出现时,你或许不知道它的领先地方,但是你必须接触它。

我在专注于用称之为Objective-C的超能语言开发的NEXT WebObjects的web咨询公司获取了一份工作。显然,80年代早期的一些人迷恋于C和Smalltalk,和我一样,除了他们建立了一个真正的、其他语言。我不仅仅学习了这门新语言,而且发现了另一个古怪的语言,叫JavaScript,它和Java没有关系。借助HTML,我突然有了在上面开发的整套新平台。

那时候我开始看到人们讨论其他语言。从我的第一份工作看,我意识到我不再可能掌握人们在编程上做的所有工作了。我不得不学习如何关注一些技术,和其他技术保持足够的了解而不落伍。

大型压路机开始动了起来。

在迎来第一波web编程时,我的很多有计算机科学学位的朋友退步了,我突然发现他们失去了工作,因为人们开始放弃大型机和Cobol,而这些朋友一直没有任何技术。他们和我不一样,他们仅仅关注掌握的东西,就这样工作了快20年,所有一切突然消失了。

他们被轧平了。

当Java和J2EE(现在是JEE)出现时,我实际上玩了一会儿,就介绍给其他公司草草了事。我称之为“外星人技术”。很快我们选择使用Java J2EE开发web app,它和当初一样简单。

在00年代中期的工作中,我看了一些叫做AJAX的资料,决定将它应用在内部app上。当我向其他架构组提起时,他们认为我买了新技术!我不得不解释,它只是JavaScript。人们告诉我JavaScript正在死去,为什么人们还愿意用它开发一些新东西呢。人是很有意思的。

现在因特网完全普及了,开源成为一个流行的概念,简直一团糟。我甚至不能从外围跟踪每项技术。你不得不挑一些需要深入的,一些需要了解的,祈祷你至少知道最新事物的名字。如今加快了不少,有时候还很吓人。

每周会出现一门新语言。加上框架,HTML5,CSS3和多得人们记不住的字母缩写。今天的编程世界是新想法的漩涡。有的力量强大,有的潜力巨大,很多烟消云散。但是,所有编程之外的东东,使你不得不快些找到正确的方向!

可怕的压路机一触即发,程序员像疯了似的往前冲。我做ROR,还是开发原生的JavaScript app?我学习Python还是Scala?SQL or NOSQL? iOS or Android? Cloud需要吗? 愚蠢的或疯狂的,做出你的选择吧。回头想想我这30年处于浪潮之巅的生涯,我不敢料想从7个人共享一台终端,我在纸上写Fortran的、刚开始的那些日子到现在,到底发生了多少变化。这段时间发生了太多变化,很多人碰到了,变成了经理,或管理网络,或被淘汰了。

接下来的30年会是什么样子?还有程序员或我们被压平吗?我不能想象历史的一段在某个行业会以如此巨大的步伐发生如此多的变化。你必须学习新东西防止今天的你明天被淘汰,这刻不容缓。

如果你是20岁或55岁,今天你什么也不知道或没做过什么,好像你还能继续存在10到20年,这没有关系。我已经看到悲剧一次又一次地重演。我喜欢的一条谚语“唯一不变的就是变化”。我想再增加一个说法:变化一直很快。在你脖子底下呼吸的、可怕的怪兽一直在伴随着你。

注:一名读者把我指向了从2001年开始写的文章:Ray Kurzweil的《The Law of Accelerating Returns》。你需要大概12年才能全部完成!

原文地址:http://thecodist.com/article/the_programming_steamroller_waits_for_no_one 注1:Object Pascal:http://zh.wikipedia.org/wiki/Object_Pascal

译文:编程压路机不等人 》| 腊八粥