“大规模、高强度的编程?我必须承认,这是年轻人的游戏。”
http://www.aqee.net/yes-i-still-want-to-be-doing-this-at-56/不,这是傻子们的游戏(大部分都是男性,但不是100%)。我今年55岁,从1981年开始就从事编程这个行业,如果从学校里算起,那是开始于1973年。我真真切切的认识到的一件事是,编程到死是值得的。
若问我到了55岁还要做编程吗?我的回答是:Yes。我仍然会喜欢编程中的各种挑战,解决复杂的问题,找到最优的解决方案。每天早上我都会浏览很多的跟技术和编程相关的网站,看有什么新的技术动态。我知道,如果有一天,当我不再关心这些最新动态时,那就是我不想再做程序员的时候了。自从我第一天从事编程工作开始,我的这种早上的必修课就没有改变过,除非有杂志、手册和书本要读,或者是偶然的会议要参加。
我还记得在我的第一家公司(General Dynamics)里做的一个工作。在那里,我要学习如何对新购进的IBM个人电脑做技术支持。这并不是我的主要工作,但这是一些很新的东西,没有人知道哪些知识是需要的,于是我就把手边能找到的资料全读了,包括全部的IBM产品文档。不久IBM的技术支持就来了,指导我们如何配置这些机器,如何把各种产品设备连接到一起。我其实并不需要学习所有的这些东西,但它们看起来都是非常有用的知识。如今,我仍然在学习新的东西,因为这很有趣——即使有些知识看起来并不需要。
如果你不再对编程世界有求知欲,不再对技术相关领域有好奇心,那你的编程生涯将不会有延续。我在上大学时知道很多人取得了计算机科学学位,但大部分的这些人在毕业后没有编过一段代码;他们对编程没有兴趣,或者是不再学习编程,最终被新技术的车轮抛弃。而我在大学学习的是化学专业。
这些年来我的研究方向变来变去,就像狼人电影里会变形的狼人(这也是我高中时的外号)。
如今,我发现的一个最重要的事情是,一定不要贪求更长时间的工作,而应该是要更聪明的工作。作为一个年纪不轻的人,这意味着你不能再每天工作20多小时,即使假设你能坚持一天工作20小时,未必你写出的就是可用的程序。要做出一个有质量的软件,真有一个每天你应该工作多少小时的限制吗?也许吧,随着年龄的增长,这个时长会慢慢减少,但是,只要你不断的学习如何更聪明的编程,你的质量和效率就不会降低,而且会需要更少的咖啡。
如今的编程环境跟我当年刚步入这个行业时比发生了巨大的变化,现在我们有着各种各样的编程语言,开发工具,开发平台,开发方法可供我们选择。一个人不再可能把这些知识全部都掌握,即使压缩到一个很窄的领域,比如我学习的IBM PC方面的知识,那也是很难的。所以说,重要的是如何在这众多的选项里聪明的进行选择。我最喜欢的一句电影对白是来自《印地安那·琼斯和圣杯》,当那个坏家伙灰飞烟灭后,老骑士说“你选错了”。有这么多金光闪闪的东西可选择,但只有一些是真正有用的。
阅历是一种优势,它能让你知道何时该前进,何时该慢下来。而年轻的好处是对任何事物都感到新奇,从不担心失败。我们用另外一种视角可以把这两种优势融合到一起,我想到了年轻时的史蒂夫乔布斯,那时他拥有所有正确的想法计划,但无法将它们实现。而年老的史蒂夫乔布斯却能够坚持这些想法,并把它们大放异彩。从这点上讲,岁月本身就是一种资源,年轻时保持一种好奇心和闯劲,慢慢的随着年龄的增长,再把阅历和一种长远的眼光融合进来,由此你将不再困惑。
如果你希望在55岁时仍然能是一名程序员,那就永远不能让自己丧失对追求更多知识、更先进的知识、更简化你的工作的知识的渴望。一旦你失去了这种进取的锋芒,快速运转的技术车轮会越来越让你感到压迫,直到最终你只能靠做一些平淡无味的事情过活。
我在24岁、做第一份专业编程工作时,从来没想过55时将会是个什么样子,但我那时就已经知道,我做的肯定是和编程相关的,并且不会回头。
30多年后还会有编程这个行业吗?不知道。在我86岁时还会在编程吗?也许编不了了,但如果可能的话,我还是愿意编程。到了那时,我应该已经聪明到能在30分钟内干完一天的工作了。
或者是我告诉我的机器人助手去帮我完成那些事情,而自己回去继续打盹!