老实说,我在20岁时可没打算这样。我编程就是为了挣钱。只要编程还能挣钱,我就愿意一直这样挣下去,差不多就是这样。
到了50岁时你觉得你还能做什么?你能找出一个远离编程但符合下列要求的职业吗?:
— 需要很少或不需要任何的教育程度
— 报酬高——即使是水平一般的人
— 无数的岗位需求
— 不需体力劳动
— 没有健康安全或违法的风险
— 编程挣钱很容易。编程这个行业门槛低,但却极难退出。什么行业能替代?
我有3个律师同事——两个后来成为了程序员,一个成为了项目经理。我还没有遇到过有程序员变成律师的。我知道一个工程师——不是程序员——他后来变成了专利律师(据说的原因:“一定程度上,你会非常讨厌那些跟你的孩子年岁相仿的经理”)。你想在你50岁时做一名专利律师吗?
我认识一个经理,他说他更想当一名学校教师,认为这样的工作对社会更有价值。但他干了8个月后就辞职了,在主流报纸采访他的告别会上他说:“有时候我甚至想带一挺机关枪进教室,端起来扫射”。他现在给韩国三星工作,他感觉他的在智能手机摄影技术上的贡献已经充分的长久的使社会受益了。
我的一位同事近来一直在学习大量的知识。他有心理学和一种叫做虚拟剧院(Visual Theater)的学位。他业余时间一直在编程,靠编程来补济他的学费。他的编程工作也成了他的视觉效果工作的一部分(跟电脑声效相关)。他的编程最终也可能会资助他的艺术工作。我不能想象他某一天会退出编程。
我曾看到过很多人的“退出”,有的是学习物理的,有的是学习哲学的,他们最终转向了编程工作。金钱是有吸引力的。当然,除了钱,编程还能让你获得很多其它的满足——这就是为什么我要无偿的开办这个博客网站——但是,大部分的这些满足都是有源动力的——直接或非直接的,大部分的还是和金钱相关的。“开发有用的东西”和“挣钱”是密切相关的。
当然,你也许会有一个不用发愁的财务来源。但如果没有,编程就成了你的B计划。对于物质财富,有一点我要提醒——它是很容易被拿走的。我经过了苏联时代,所以我说的会显得有些夸张——但实际上,财产很容易被没收,钞票一夜间变成废纸,并非在苏联是这样,美国在相似的时期也有过没收公民黄金的事情。而职业能力是不能没收的。程序员在这个时候仍然能通过自己的努力来保持良好的生计。
有人说职业编程压力太大。同样,要看跟什么相比。跟医生?律师?接听暴跳如雷的客户的电话时还要留神你的回复会被录音用作以后的检视?
什么压力?真正能编程的程序员——比如,能正确的打印出二叉树结构——是非常稀缺的。这种稀缺情况下一个真正的程序员不会任人随意摆布的。你也许能胁迫他们没有报酬的加班,但很快他们就会认识到:这是买方市场,你在虚张声势。你找不到可以替代他们的人。
在这种供不应求的局面下,每个人都能在编程职业里找到自己的空间。相较于金融/投资银行类的工作来说,编程行业竞争并不是那么激烈。 程序员通常还会有“隔离带”来防止客户和高层管理人员的侵扰——这些人永远都是对的,这使得跟这些人的交流索然无味。
工期压力?不错,这是存在的,但每个人身上都会发生。我承认,我们经常会逾期完不成任务,但这不是很有压力的事,除非自己给自己制造压力。如果你被分配了一个不可能完成的任务计划,而你也尽力了,但还是没按时完成,你可以深深自责,或者保持平和心态。事实上,你的肉体绝不会因为贻误工期而受到危险,所以,你的反应完全取决于你自己。
有人说,程序员无法完全的把握事情的进展,无法完全的了解所有的API,技术层面等东西。如果你不能理解自己身处的环境,这就是压力,这可不好玩。说的很好;但是,又有谁能比一个程序员对此了解到更多呢?钻研病人内脏的大夫?翻阅法律文案的律师?监管一二十个程序员的老板?面对所有这些人为造成的复杂情况,我们仍然是境遇最好的。
事实上,超过50岁的程序员并不是很多。这意味着编程不是一个长久的活儿吗?更可能的原因是,这只是发展的结果。30年前——相对于10年前——20多岁的程序员是很少的。因此,如今50多岁的程序员要要比30多岁的程序员少的多。一定程度上编程世界的发展在慢下来,往后20年,事情又会变的不同。
所以,我没打算退出编程,并不是单因为它本身能带来很多乐趣,也是因为它比起其它行业来要理想的多。也许这不是最“热情的”词藻——即使热情耗尽,贪婪永不停息。如果你打算退出编程行业,我怀疑你能找到什么更好的职业。而且,当你数年后再次回到编程领域时,我一点儿都不会惊讶。