年过 40 岁的老程序员们,他们的故事你知道多少?

2024-07-15
来源:网络整理

作者|

译者:薛明灯

关于程序员是否只是年轻人的讨论由来已久,对于那些步入中年的程序员来说,似乎如果不转行做管理,就会被精力充沛的年轻程序员所取代。然而,总有一些顶尖的软件开发人员不愿从事管理岗位,仍然活跃在写代码的一线。你知道哪些呢?

写在前面

美国劳动力的平均年龄为 42 岁,一项关于年龄的调查显示,40 岁以上的开发人员仅占开发人员总数的 13%。那么其他人呢?他们是被解雇了,还是被提拔到管理岗位?软件开发是否意味着 40 岁以上的人的末日?

本文列举了10位40岁以上程序员的故事,他们都是拒绝从事管理岗位、依然活跃在开发一线的顶尖软件开发人员,以编程作为主要收入来源。

Rob,高级软件工程师,加利福尼亚州洛杉矶,45 岁

专业知识:Web 开发、测试驱动开发、敏捷软件开发、、、和。

我编写代码已有 16 年,在作为独立承包商工作了几年后,我在 42 岁时加入公司并成为一名高级工程师。

我每天都在写代码。我目前最喜欢的语言是。我想学习 Go,但我通常使用 Java,还有。我一直在学习新的东西,即使它们都是小东西。我知道我会成为一个糟糕的经理,所以我根本没有打算发展管理方向。

很大程度上取决于你的态度。不要成为讨厌新技术的老前辈,也不要嘲笑那些正在使用新技术的人。在选择技术时,你的经验应该成为决策的基础。如果你选择旧技术,那是因为它们正好适合当前的需求,而不是因为你想保护你积累多年但即将过时的专业知识,也不是因为你害怕那些新来者会带着 Node.js 和 Go 语言来抢走你的饭碗。

Ebbe,A/S 高级软件设计师(),62 岁

专长:开发实时嵌入式软件、软件配置管理、构建测试用例(系统测试和单元测试)。具有实时嵌入式系统编写和文档编制经验,并且(包括 .NET),精通 C、C++、C# 和 .

我于 1980 年获得了电力系统电气工程学士学位,从第一份工作开始,我就一直以开发软件为生。由于我的学位,我花了将近一年的时间才找到第一份工作,但从那时起,我就一直是一名软件工程师。

我几乎每天都在写代码,没有做过任何管理相关的工作,其实我很早就意识到自己没有管理方面的天赋。

作为一名程序员,我很享受这个角色,我很适合这份工作。如果让我当经理,我肯定会有大麻烦,而且我一点也不喜欢管理工作。

我的同事中只有两位比我年长,其余的(包括我的上司)都比我年轻。我的直线经理不到 40 岁,他是我见过的最好的经理之一。我 58 岁时才得到这份工作,但我并不是最年长的员工。我的两位同事比我年长,但尽管如此,他们还是被公司录用了。

有时你几天甚至几周都不会学到任何东西,有时你只需学习几个小时就能弥补“失去”的时间。重要的是你总是想方设法学习,做好准备,等待机会的到来。

John,Make&(佐治亚州)高级软件架构师,47 岁

专长:企业架构与开发、敏捷指导、数据可视化软件。信用卡处理、IT 服务和移动应用开发。

我喜欢解决问题,也喜欢寻找解决问题的新方法,因此,我似乎拥有与时俱进的技能。

我目前正在使用 Node.js 开发一个项目,也使用过、开发过应用程序,写过 Go 语言代码,熟悉的各项功能。

我也关注Java的最新发展,以及JMS,REST,JSON,JPA和其他相关技术。

我也对技术生态系统的其他部分给予了相当大的关注。过去几年,我使用、、和 Vi 作为开发工具,并且喜欢用它们来解决各种问题。我一开始使用 CVS,然后学习了,最近又学习了 Git。我也使用过 AWS。我还是一名经过认证的产品经理和开发人员。我编写了很多自动化单元测试(测试驱动开发是我在构建系统时最喜欢的挑战之一)。

我不怕学习新事物。我使用 Ruby on / 开发过 Web 应用程序,还使用 ​​Perl、PHP 和其他语言开发过解决业务问题的应用程序。我还拥有 SOAP 和 AOP 方面的经验。

我正在努力成为一名全栈开发人员。我熟悉Unix,并且经常编写脚本。我喜欢部署应用程序、服务器和工具,既用于开发也用于生产。我熟悉SQL和,并且知道它们各自的优缺点。我了解TCP/IP,并且了解路由、DHCP和各种代理的基础知识。我构建过MVC应用程序、消息驱动应用程序、EJB和基于的服务。我也做过前端和CSS开发。我不想成为一名屡获殊荣的UX开发人员,但至少我可以完成基本功能。

我打算再干 21 年。如果我们从 Web 开发转向 D-ware 服务器开发,我可能会落后。如果函数式编程最终占据主导地位,我可能会落后。但当这种情况发生时,我仍然抱有希望。

, 软件架构师和软件工程师(加利福尼亚州帕洛阿尔托),60 岁

专业知识:C、C++、Java

我在准备成为一名律师的时候就开始学习计算机科学了(如果你能想象那是怎么回事的话)...现在我靠编写大量有据可查、功能齐全的 Java 代码谋生(至少目前如此)。

我开始使用 3.0 进行开发(大概是 1986 年左右,我记不清具体时间了)。大约 10 年前我换用 Mac,从那以后就再也没有回头。我觉得自己像个极客,在 Pro 上工作……使用 C、C++、Java 等进行开发……

我最近的工作要求我从头开始设计整个系统,这是我第一次做这样的事情。我很难跟上网络和移动开发的步伐,但即使我已经 60 岁了,我也远没有“老”起来。过去我曾得到过一些“管理”工作机会,但我拒绝了,更喜欢编程……

不过,我也知道,一些与我同龄(或比我年长)的下岗同事很难找到工作(“经验太丰富?”),所以我理解人们认为那些过了黄金年龄的人没有前途。但我认为关键在于你继续为雇主创造价值。

我目前是软件基金会项目的 PMC 主席。作为一名 Java 开发人员(Java 相关项目的提交者),我希望 Java 能够永远存在。至少不会有更好的语言,我必须将我的所有代码移植到它...

,(ID)高级软件工程师,50岁

专业知识:框架、解析器、建模、图形、数据库子系统的设计和实施、数据库设计(SQL、DML、DDL 和 LINQ)、xml 设计、单点登录解决方案(SSO)、互联网应用程序、应用程序和动画。

我当了 34 年的程序员,简历只有一张纸。所有超过 5 年的技术都只是在简历上简要提及。我还有第二份简历,列出了我使用过的所有编程语言和开发工具、数据库、动画系统等。这样,人们就能更容易地了解我。只有在被问到时,我才会拿出第二份简历。

在大公司(至少对我来说),高级程序员想转管理层是很常见的。我也一直面临类似的选择,但我不擅长管理。我只喜欢做程序员或架构师。

我发现我的记忆力已经大不如前了,已经记不住一个大系统的完整模型了,但是我发现我丰富的经验却越来越有价值。

我们必须承认,我们必须在整个职业生涯中不断接受训练和成长。世界变化太快,如果我们停滞不前,最终将被淘汰。

我每两年学习一门新的编程语言,有些是自学的,但大多数是因为技术发展的需要(有些是新工作的要求)。这很有趣。我目前正在学习数据仓库(OLAP)、ETL 处理、Star 和。

,SAS 首席软件工程师(北卡罗来纳州卡里),56 岁

专长:专利文件系统或数据库的内部组件、持久性数据结构、目录和索引搜索技术、服务器管理、DASD IO 驱动程序、机器代码生成或跨架构代码转换、对象持久性、客户端-服务器接口、多租户、分布式缓存和大型授权系统(实施、管理和日志记录)。目前正在 SAS Viya 平台上进行研究、设计和编程。

我的现有团队成员平均年龄50岁,每个成员都有20多年的系统软件开发经验。

web开发程序员小工具_程序开发工具箱_web开发软件工具

我和我的同事花了很多时间编写代码、调试、测试和解答系统架构问题。我们中的一些人还评估硬件技术、出席会议并为开源社区做贡献,等等。

过去两年,我加入了一家软件公司的精英工程师团队,这家公司有许多才华横溢的工程师,其中许多人拥有计算机科学和应用数学的高级学位。在此之前,我在一个小团队工作了 10 多年,从头开始设计和开发多线程元数据对象集群服务器。

团队中我最亲近的人都比我大 5-6 岁。那段时间,我获得了 4 项美国国家专利……都是在我 40 岁之后。

只要我能做出有意义的贡献,我就会继续工作。我的职业生涯中多次重新充电,从最早的学习和研究,到后来职位的需要。这是我的天性,也是我不断进步的动力。

我认为今天的技术无法让我活到 70 岁。我从 1983 年开始工作,靠着四项主要的计算机技能生存下来。

虽然我所拥有的技能可以让我维持到退休,但在未来几年里,我将把我的专业领域扩展到机器学习领域。

也许 10 年后,对普通程序员的需求会大幅下降。如果一个人真正喜欢计算机技术,但在编程方面无法达到更高的水平,那么他可以考虑成为一名经验丰富的系统管理员。他们总是有很多工作要做,例如配置、部署和维护系统。

亚历克 (Alec) 是帕洛阿尔托的首席软件研究员,今年 60 多岁。

专长:嵌入式、多线程、多进程、驱动程序、通信堆栈、C/C++、Java、硬件。软件架构师/工程师,尤其擅长与硬件紧密相关的软件系统,与硬件工程师合作,最大限度地提高软件和硬件的性能。

我今年 62 岁,是公司里最年长的开发人员,其他人都是 40 多岁或 50 岁出头。

我最年轻的同事大概20多岁,我和他们之间有35岁的年龄差距,但这不是问题。

我们必须拥抱技术。现在的世界与我刚开始职业生涯时(穿孔带时代)相比已经大不相同,而且它仍在变化。但另一方面,需要解决的问题始终如一,无非是如何将人类的需求转化为计算机能做的事情,如何避免犯错以及如何找出不可避免的错误。编程语言、开发环境、工具包、API 等只是解决问题的手段,我们只是在需要时才学习如何使用它们。

我从穿孔纸带开始。即使到了磁盘文件,我仍然是第一个从行式打印机读取程序的人。然后是普通的文本编辑器。现在我使用带有语法高亮的 IDE。

我认为,10到20年后,软件开发人员仍然会存在需求。在我看来,软件开发人员的工作就是将客户的需求转化为计算机执行的指令,这样的工作不可或缺。这个世界永远需要一些比普通人更了解计算机、拥有大量与工具(包、API、接口等)相关知识的专家。

我很幸运选择了这家公司。我大部分时间都在从事软件开发,而且总是在做一些我以前没有做过的事情。软件开发总是有一些重复的工作,我可以想象这会很无聊。但是,如果你总是在做一些新的事情,就不会无聊了。

我所在的嵌入式领域似乎比应用领域更能抵御潮流。每隔几年就会出现一些新事物,有些几乎是昙花一现,有些持续一段时间,经历一个高峰,然后消亡。嵌入式一直保持强劲,基于 C 语言,混合了少量 C++。另一方面,硬件也在不断变化,这让事情变得更有趣。

,密歇根州安市高级软件工程师,54 岁

专业知识:精通编程、C/C++ 和 .NET;精通 MS 和所有基于 SQL 的环境;还具有 TCP/IP、企业系统自动化和分布式计算方面的经验。

架构和管理是两条平行线,在一个250人以上的公司,技术人员一般都有这两条路可以选择。

你喜欢你正在做的事情吗?如果喜欢,那就继续做下去。为了薪水而放弃你热爱的事情,整天忙于会议和电子邮件,这是不值得的。

每两年,游戏规则就会发生变化。但不要为此感到沮丧。花 3-4 天时间学习新的编程环境并用它来支持业务。在过去的 30 年里,我几乎每 4 年就会学到一些新东西。我所在的团队有 6 个人,年龄从 48 岁到 56 岁不等。我们经历了 3 到 8 次技术更新。

这是我的职业生涯的概述。

Kurt,软件工程师,50 多岁

专业知识:/Unix、嵌入式;算法设计、C++、C、多线程和分布、电信、安全、套接字编程、标准委员会成员、产品规划和概念实施;TQM、ISO 9000、敏捷开发和传统开发方法。

软件开发仍是一个年轻的领域,工具和技术仍在快速变化。如果软件开发人员不不断更新自己的技能,那么不到 20 年,他们就会被淘汰。因此,一个 40 岁的程序员很快就会发现自己不再胜任工作,他的未来岌岌可危。

优秀的开发人员会持续学习直至退休,就像 Ken 和 一样。然而,我们大多数人(尤其是 40 多岁的人)最终都会意识到,我们无法成为自己所从事领域中的佼佼者。

C++ 变化很大,每隔几年就会推出新版本,提供全新的功能,而我从未停止学习。话虽如此,我已经成为一名非常有经验的 C++ 开发人员,拥有超过 20 年的全职系统编程经验。如果有人让我以 1 到 10 的等级来评价我的经验,我肯定会给自己打 9 分,因为唯一比我更了解 C++ 的人是那些写书的人。后来,我写了一本关于 C++ 优化的书。

编程很简单。你告诉他们该做什么,他们就会去做。他们是可靠的。代码没有好日子或坏日子,它就在那里等着你与之交互。代码可能是一个难啃的骨头,需要非常注意细节并付出相当大的脑力劳动。

人类与代码完全不同。他们狡猾、善变,不可能被当做工具使用。你不能告诉他们该做什么,你必须影响他们,让他们做你需要他们做的事情。他们不会直接回应你的输入,而是间接地回应你的鼓励或你提供的一些奖励。虽然人类对奖惩很敏感,但仅以这种方式管理人类是行不通的。管理应该像与家人、朋友和同事互动一样。如果你喜欢与人打交道,那么你就会喜欢管理。如果你不喜欢与人打交道,那么你就不会成为一名成功的经理。

高薪的经理比高薪的程序员挣得多,但他们需要拥有名校的多个学位、良好的人脉和政治联盟,以及一定的冷酷无情才能吓倒大多数人。编程不需要这种冷酷无情,这是编程的一个优点。编程关乎创新,而不是操纵。

那么,你要问自己,你更喜欢哪种交互模式,代码的确定性和优雅,还是人类的友爱和领导力?喜欢代码没有错,那些高级架构师、CTO 也能赚大钱。

,软件顾问,60 多岁

专长:面向对象软件设计、测试驱动开发(C、C++、Java、C#)、嵌入式软件、重构、极限编程、敏捷开发、发布规划、增量规划。C 和 C++ 单元测试框架的主要贡献者之一。嵌入式系统会议和敏捷会议的演讲者。的原作者之一。

继续学习。我 62 岁了,还在编程,而且我热爱编程。

我会花一些时间在管理上,这对我来说很重要。但我还是决定把编程和软件设计作为我的最爱。在从管理中学到一点东西之后,我决定回到我最喜欢的软件开发。

为了确保你的价值,你需要确保 40 年的经验不会被复制。我们生活在一个瞬息万变的世界,不仅仅是技术,还有我们构建软件的方式。

开发出产品固然很好,但这还不够。你必须让你的产品和代码有用且经久耐用。你必须知道如何成为团队的一员。要想拥有长久、成功和有利可图的职业生涯,你需要做的不仅仅是开发出产品。

小Q说

很多人在后台留言,程序员年龄与职业发展的问题我们讨论过很多次,其中让我印象最深的是这么一条评论:

我希望当我八十多岁躺在病床上的时候,还能入侵医院系统。只要我活着,我就不会停止编程!

您会在一线开发岗位呆多久?

今日推荐文章

点击下方图片即可阅读

今日头条用Go构建千亿级微服务的实践

分享