到了 50 岁你还愿意做编程工作吗?

简介:

Jim Bumgardner

你真的愿意到了50岁还要做编程吗?

“大规模、高强度的编程?我必须承认,这是年轻人的游戏。”

不,这是傻子们的游戏(大部分都是男性,但不是100%)。我今年55岁,从1981年开始就从事编程这个行业,如果从学校里算起,那是开始于1973年。我真真切切的认识到的一件事是,编程到死是值得的。

若问我到了55岁还要做编程吗?我的回答是:Yes。我仍然会喜欢编程中的各种挑战,解决复杂的问题,找到最优的解决方案。每天早上我都会浏览很多 的跟技术和编程相关的网站,看有什么新的技术动态。我知道,如果有一天,当我不再关心这些最新动态时,那就是我不想再做程序员的时候了。自从我第一天从事 编程工作开始,我的这种早上的必修课就没有改变过,除非有杂志、手册和书本要读,或者是偶然的会议要参加。

我还记得在我的第一家公司(General Dynamics)里做的一个工作。在那里,我要学习如何对新购进的IBM个人电脑做技术支持。这并不是我的主要工作,但这是一些很新的东西,没有人知道 哪些知识是需要的,于是我就把手边能找到的资料全读了,包括全部的IBM产品文档。不久IBM的技术支持就来了,指导我们如何配置这些机器,如何把各种产 品设备连接到一起。我其实并不需要学习所有的这些东西,但它们看起来都是非常有用的知识。如今,我仍然在学习新的东西,因为这很有趣——即使有些知识看起 来并不需要。

如果你不再对编程世界有求知欲,不再对技术相关领域有好奇心,那你的编程生涯将不会有延续。我在上大学时知道很多人取得了计算机科学学位,但大部分 的这些人在毕业后没有编过一段代码;他们对编程没有兴趣,或者是不再学习编程,最终被新技术的车轮抛弃。而我在大学学习的是化学专业。

这些年来我的研究方向变来变去,就像狼人电影里会变形的狼人(这也是我高中时的外号)。

如今,我发现的一个最重要的事情是,一定不要贪求更长时间的工作,而应该是要更聪明的工作。作为一个年纪不轻的人,这意味着你不能再每天工作20多 小时,即使假设你能坚持一天工作20小时,未必你写出的就是可用的程序。要做出一个有质量的软件,真有一个每天你应该工作多少小时的限制吗?也许吧,随着 年龄的增长,这个时长会慢慢减少,但是,只要你不断的学习如何更聪明的编程,你的质量和效率就不会降低,而且会需要更少的咖啡。

如今的编程环境跟我当年刚步入这个行业时比发生了巨大的变化,现在我们有着各种各样的编程语言,开发工具,开发平台,开发方法可供我们选择。一个人 不再可能把这些知识全部都掌握,即使压缩到一个很窄的领域,比如我学习的IBM PC方面的知识,那也是很难的。所以说,重要的是如何在这众多的选项里聪明的进行选择。我最喜欢的一句电影对白是来自《印地安那·琼斯和圣杯》,当那个坏 家伙灰飞烟灭后,老骑士说“你选错了”。有这么多金光闪闪的东西可选择,但只有一些是真正有用的。

阅历是一种优势,它能让你知道何时该前进,何时该慢下来。而年轻的好处是对任何事物都感到新奇,从不担心失败。我们用另外一种视角可以把这两种优势 融合到一起,我想到了年轻时的史蒂夫乔布斯,那时他拥有所有正确的想法计划,但无法将它们实现。而年老的史蒂夫乔布斯却能够坚持这些想法,并把它们大放异 彩。从这点上讲,岁月本身就是一种资源,年轻时保持一种好奇心和闯劲,慢慢的随着年龄的增长,再把阅历和一种长远的眼光融合进来,由此你将不再困惑。

如果你希望在55岁时仍然能是一名程序员,那就永远不能让自己丧失对追求更多知识、更先进的知识、更简化你的工作的知识的渴望。一旦你失去了这种进取的锋芒,快速运转的技术车轮会越来越让你感到压迫,直到最终你只能靠做一些平淡无味的事情过活。

我在24岁、做第一份专业编程工作时,从来没想过55时将会是个什么样子,但我那时就已经知道,我做的肯定是和编程相关的,并且不会回头。

30多年后还会有编程这个行业吗?不知道。在我86岁时还会在编程吗?也许编不了了,但如果可能的话,我还是愿意编程。到了那时,我应该已经聪明到能在30分钟内干完一天的工作了。

或者是我告诉我的机器人助手去帮我完成那些事情,而自己回去继续打盹!

目录
相关文章
|
5月前
|
机器学习/深度学习 人工智能 Cloud Native
大模型时代,程序员的工作还是“写程序”?
大规模模型时代的到来可能会从根本上改变现状。程序员可以通过市面上的大模型工具在短短的几个月时间内就轻松地掌握了不同的前端框架(基于TypeScript),了解了机器学习算法,云原生基础设施,并学习了各种组件和框架的使用。语言、框架和基础设施的经验似乎已经不再那么重要了。全栈曾经是一个非常遥远的目标,今天已经变得非常容易实现。
|
8月前
|
程序员
《软件设计的哲学》第三章 工作代码是不够的
《软件设计的哲学》第三章 工作代码是不够的
|
8月前
|
设计模式 SQL 分布式计算
快速适应工作之工作范式的寻找
快速适应工作之工作范式的寻找
96 0
|
11月前
|
NoSQL 算法 MongoDB
使用项目驱动学习编程的诀窍
使用项目驱动学习编程的诀窍
125 0
|
12月前
|
消息中间件 敏捷开发 JavaScript
为什么说程序员是一个极度劳累的工作?
为什么说程序员是一个极度劳累的工作?
|
自然语言处理 程序员
高级程序员解决问题的思维模式和普通程序员的区别在哪里?
先给你出一道题,看你会如何思考: 假设你是一个程序员,常年保持自学和超长工作时长的状态,承受着不为人知的压力和痛苦,面对同行程序员的攀比和压力,在公司title、年薪、房子之间深陷,35岁大限越来越近,头顶日愈清凉……
151 0
|
Java 测试技术 Android开发
让测试工作为项目运行保驾护航 | 带你学《Java面向对象编程》之一百
本节为大家介绍了用例测试工具JUnit,并详细介绍了JUnit组件包的导入方法以及编写JUnit程序测试类进行项目测试。
 让测试工作为项目运行保驾护航 | 带你学《Java面向对象编程》之一百
|
测试技术 程序员
带你读《软件测试(原书第2版)》之二:软件开发的过程
本书涵盖了软件测试的方方面面:软件测试如何适应软件开发过程,基本的和高级的软件测试技术,在常见的测试任务中运用测试技能,使用自动化提高测试的效率,测试工作的计划和文档化,有效地报告发现的问题,衡量测试工作的成效和产品的改进,测试和质量保证的区别,寻求软件测试员的工作。
|
程序员
如何在大一时候系统学习编程?
大学生从大一开始规划自己的编程学习计划很有必要,具体如何来做那?
1453 0