程序员们,我们能工作到65岁吗?
软件开发人员的职业生涯可以持续多久?这是大多数认真考虑成为专业程序员的人不禁想知道的事情。 在谈论这样一个要求很高的职业时,这是一个非常自然的问题。没有人愿意花费数年时间学习一项技能,这些技能将在几年内不再相关,或者当您年老时将更难货币化。 因此,今天我们将尝试回答这个问题并提供一些信息,以帮助您更清楚地了解会发生什么。
软件开发的平均职业生涯持续多少年?
当然,当涉及到具体的数字和预测,你可以期望你的软件开发职业生涯持续多久时,不会有明确的答案,因为所有这些都是非常主观和个人的。 然而,我们确实知道,许多专业程序员非常喜欢他们的工作,在某些情况下,他们仍然是高级开发人员几十年,即使他们有职业发展的选择,比如从编码职位转到管理职位。 Stack Overflow Developer Survey 2020被认为是目前最全面的专业开发人员调查之一,可以为我们提供一些相关信息,说明典型的软件开发人员倾向于在这条职业道路上停留多长时间。总体而言,在参与调查的近 48,000 名专业开发人员中,大约 60% 的人在 10 多年前学会了如何编码,25% 的人在 20 多年前掌握了编程。当谈到专业编码的年数时,全球 33.6% 的响应者或略高于 16,000 人表示他们已经作为软件开发人员工作了 10 多年。11.4%或5,447名受访者表示,他们的职业生涯已经持续了20多年。 鉴于软件开发行业本身并不是很古老,真正从事这个行业一辈子的老手很难找到,但这样的人是存在的,而且并不罕见。具体来说,参与Stack Overflow调查的0,4名专业开发人员中有191.47%或779名表示他们已经编码了40多年。48人说他们已经在这个行业工作了半个多世纪! 这并不奇怪,因为我们知道软件开发人员平均倾向于真正喜欢他们的工作。尤其是Java开发人员。根据招聘网站Indeed的研究,在所有专业人士中,Java开发人员最不可能离开他们的职业,而不仅仅是在科技领域。他们的职业转换率不到8%,而对于软件开发人员职业来说,一般是27%,而对于数据库管理员来说,这一比例是35%。即使提供了更高级别的管理职位,大多数Java程序员也不想放弃它。这可能是Java编程是大多数程序员正确职业选择的最好证明。

添加图片注释,不超过 140 字(可选)
软件开发人员的职业发展选择
如您所见,软件开发人员在各种编码角色中拥有终身职业生涯并不罕见。当然,这并不适合所有人,许多人确实更喜欢转到其他职位,甚至最终选择其他职业道路。 幸运的是,行业内软件开发人员有很多职业发展选择。让我们仅举几例。
高级管理职位
-
首席技术官(首席技术官)
-
首席信息官(首席信息官)
-
首席数字官
-
首席创新官
-
团队首席软件工程师
-
软件架构师
-
工程副总裁
-
产品主管
产品角色
-
质量保证工程师
-
项目管理人
-
产品经理
-
Scrum Master
-
用户体验设计师
以客户为导向的角色
-
销售工程师
-
开发者营销人员
-
技术招聘人员
-
布道者/技术公关主管
-
客户支持
开发运营支持
-
开发运营工程师
-
技术支持
-
数据库管理员
-
可靠性工程师
分析角色
-
安全分析师
-
研发工程师
-
数据科学家
独立角色
-
自由开发者
-
开发顾问
-
创业创始人
想法和意见
上面列出的所有选项,这不是完整的列表,应该证明软件开发人员确实有很多职业发展选择,以及在其领域的其他专业中具有相当大的流动性。 尽管如此,许多经验丰富且受人尊敬的程序员仍然选择在整个职业生涯中担任高级程序员。为什么?没有人会比编码老手自己更好地解释它。 “我是一名65岁的软件工程师,曾在Apple,Adobe,eBay,Microsoft,VMware,Cisco,FileMaker,XO Communications,2Wire,Egnyte,Nexsan和其他两家初创公司工作。在我的职业生涯中,我被解雇了五次。我总是在 3 到 4 周内找到另一份工作——即使在经济衰退期间也是如此。我的工作曾四次外包给印度或中国:尤其是在过去的八年里。尽管如此,之后总会有另一个就业机会在等待。我喜欢我的工作。我还在做;而且,我没有立即停止这样做的计划。而且,我很擅长。这并不是因为我是一个天才,而是因为我已经做了很长时间的软件开发,我从错误中吸取了教训,“拥有30多年专业经验的软件开发人员Steven Ussery说。 即使你已经66岁了,你也可以得到谷歌的offer,来自美国的软件开发人员康纳·斯特里克兰(Connor Stricklan)告诉我们:“我认识的一位软件开发人员最近接到谷歌招聘人员的电话,问他来为他们工作需要什么。这位开发人员实际上已经在谷歌工作过,但他大约五年前离开去从事其他项目,他不想住在一个有谷歌办公室的城市。那个66岁的开发者就是我的父亲。他正在领取社会保障,同时受到谷歌的追捧。他经营自己的公司、咨询和成为员工,职业生涯充实。他在TCP网络,USB协议,802.11b实施和军事GPS等众多技术的早期阶段做出了贡献。然后他在2008年被谷歌聘用,当时他58岁。在谷歌工作期间,他用Java编写软件,这种语言直到他45岁才被发明出来。而且他是个人贡献者,没有任何其他工程师向他报告。 “从初级开发人员到高级开发人员,再到团队领导/经理,再到现在重新开发,我一生都在从事软件开发工作(尽管希望尽快回到管理层)。我的工作生涯现在已经将近40年了,在那段时间里,随着我工作的公司的变化,我改变了领域和技术。然后,我利用这种新经验在必要的时候找到新的职位,这反过来又导致了其他新的领域和技术。一直以来,我都知道开发人员比我老或年长,“StackExchange开发人员社区的用户ChrisF说。 显然,在某些技术领域,开发人员主要是老年人是一种常态。这就是高级嵌入式系统工程师和StackExchange用户tcrosley对此事的看法:“在我的嵌入式系统中,我很少遇到40岁以下的人。在我的创业公司,除了我自己之外,我们在不同时期有四个不同的承包商,其中三个超过50岁。我已经60多岁了,没有计划很快退休。我已经做了近40年的这类工作,它仍然很有趣。有些日子,我简直不敢相信我能得到报酬来做我所做的事情。
相关文章:
程序员们,我们能工作到65岁吗?
软件开发人员的职业生涯可以持续多久?这是大多数认真考虑成为专业程序员的人不禁想知道的事情。 在谈论这样一个要求很高的职业时,这是一个非常自然的问题。没有人愿意花费数年时间学习一项技能,这些技能将在几年内不再相关,或者当…...
【洛谷 P1996】约瑟夫问题 题解(队列+模拟+循环)
约瑟夫问题 题目描述 n n n 个人围成一圈,从第一个人开始报数,数到 m m m 的人出列,再由下一个人重新从 1 1 1 开始报数,数到 m m m 的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。…...
字符串函数与内存函数讲解
文章目录 前言一、字符串函数1.求字符串长度strlen 2.长度不受限制的字符串函数(1)strcpy(2)strcat(3)strcmp 3.长度受限制的字符串函数(1)strncpy(2)strncat(3)strncmp 4.字符串查找(1)strstr(2)strtok 5.错误信息报告(1)strerror(2)perror 二、内存函数1.memcpy2.memmove3.me…...
c语言系统编程之多进程
程序与进程的区别? 程序是静态的未运行的二进制文件,存储在磁盘中 进程是已经运行的二进制文件,存储在内存中 进程的内存划分图有哪几部分? 堆(存储malloc和calloc出来的空间)、栈(局部变量…...
前端还是后端:探讨Web开发的两大街区
前端还是后端:探讨Web开发的两大街区 一、引言二、两者的对比分析技能要求和专业知识职责和工作内容项目类型和应用领域就业前景和市场需求 三、技能转换和跨领域工作四、全栈开发结语 一、引言 Web开发领域涉及到前端开发和后端开发这两个不同而又互为补充的领域。…...
JavaScript中如何确定this的值?如何指定this的值?
🎀JavaScript中的this 在绝大多数情况下,函数的调用方法决定了this的值(运行时绑定)。this不能在执行期间被赋值,并且在每次函数呗调用时this的值也可能会不同。 🍿如何确定this的值: 在非严格…...
ubuntu下源码编译方式安装opencv
基础条件 ubuntu 20.04 opencv 3.4.3 opencv 源码编译的安装步骤 第一步, 首先clone源码 git clone https://github.com/opencv/opencv.git第二步,依赖包,执行下面的命令 sudo apt-get install build-essential sudo apt-get install cmak…...
spring boot整合常用redis客户端(Jedis、Lettuce、RedisTemplate、Redisson)常见场景解决方案
Java操作redis有三种客户端供选择:Jedis、Lettuce、Redisson。 在实际项目中运用最多的客户端还是Redisson、RedisTemplate;其中RedisTemplate并非是一个新的redis客户端实现,RedisTemplate是Spring Data Redis中提供的封装好的redis操作模板…...
HarmonyOS之运行Hello World
目录 下载与安装DevEco Studio 配置环境 创建项目 认识DevEco Studio界面 运行Hello World 了解基本工程目录 工程级目录 模块级目录...
postgresql数据库|wal日志的开启以及如何管理
一, wal的基本概念 WAL即Write Ahead Log预写式日志,简称wal日志,相当于oracle中的redo日志。只是oracle中redo是固定几个redo日志文件,然后轮着切换去写入。pg中wal日志是动态切换,单个wal日志写满继续写下一个wal日志,连续不断生成wal日志。…...
小波变换学习笔记【1】
【声明】本博客为学习B站视频小波分解与重构所做笔记,供自己和大家查阅学习,想查看 up 原视频请移步 B 站,侵删。 1.1 小波变换的由来 傅里叶变换基本思想:将信号分解成一系列不同频率的连续正弦波的叠加。 其缺点是,…...
雷柏mv20鼠标使用体验
用了1年多,第一次用竖着的鼠标,现在已经很习惯了,感觉还不错。说说使用感受: 1、 仍然是长时间使用鼠标,但是很少出现手腕痛的情况,确实是有一定效果的。 2、使用场景是有限制的,我是配合笔记…...
【分布式云储存】Springboot微服务接入MinIO实现文件服务
文章目录 前言技术回顾准备工作申请accessKey\secretKey创建数据存储桶公共资源直接访问测试 接入springboot实现文件服务依赖引入配置文件MinIO配置MinIO工具类 OkHttpSSLSocketClient兼容ssl静态资源预览解决方案资源上传预览测试测试结果 前言 上篇博客我们介绍了分布式云存…...
机器人中的数值优化|【四】L-BFGS理论推导与延伸
机器人中的数值优化|【四】L-BFGS理论推导与延伸 往期内容回顾 机器人中的数值优化|【一】数值优化基础 机器人中的数值优化|【二】最速下降法,可行牛顿法的python实现,以Rosenbrock function为例 机器人中的数值优化|【三】无约束优化,拟牛…...
ThemeForest – Canvas 7.2.0 – 多用途 HTML5 模板
ThemeForest 上的 HTML 网站模板受到全球数百万客户的喜爱。与包含网站所有页面并允许您在 WP 仪表板中自定义字体和样式的 WordPress 主题不同,这些设计模板是用 HTML 构建的。您可以在 HTML 编辑器中编辑模板,但不能在 WordPress 上编辑模板࿰…...
本地部署 川虎 Chat
本地部署 川虎 Chat 1. 川虎 Chat 项目概述2. Github 地址3. 部署 川虎 Chat4. 配置 config.json5. 启动 川虎 Chat 1. 川虎 Chat 项目概述 为ChatGPT等多种LLM提供了一个轻快好用的Web图形界面和众多附加功能。 支持 GPT-4 基于文件问答 LLM本地部署 联网搜索 Agent 助理…...
IntelliJ IDEA 控制台中文乱码的四种解决方法
前言 IntelliJ IDEA 如果不进行配置的话,运行程序时控制台有时候会遇到中文乱码,中文乱码问题非常严重,甚至影响我们对信息的获取和程序的跟踪。开发体验非常不好。 本文中我总结出四点用于解决控制台中文乱码问题的方法,希望有助…...
23岁准备转行嵌入式
前端难找工作,而且感觉没有前景,我觉得我就算入行也不会干多久,软件开发让我感觉不到实在的东西。小时候喜欢去动手制作一些玩具,我对实在一些的东西感兴趣一些例如手表,小机器人等等一些。我有保持坚持学习下去的动力…...
http请求报错:406 Not Acceptable的解决办法
目录 应用场景 基本概念 解决方法 方法一: 方法二: 方法三: 应用场景 接口在返回结果集的时候出现了406的报错,但是返回String类型不会报错,正常返回。 基本概念 406 Not Acceptable是一个HTTP响应状态码&…...
信息化发展75
数字化治理 数字化治理通常指依托互联网、大数据、人工智能等技术和应用,创新社会治理方法与手段,优化社会治理模式,推进社会治理的科学化、精细化、高效化,助力社会治理现代化。数字化治理是数字经济的组成部分之一,…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...
MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释
以Module Federation 插件详为例,Webpack.config.js它可能的配置和含义如下: 前言 Module Federation 的Webpack.config.js核心配置包括: name filename(定义应用标识) remotes(引用远程模块࿰…...
云安全与网络安全:核心区别与协同作用解析
在数字化转型的浪潮中,云安全与网络安全作为信息安全的两大支柱,常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异,并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全:聚焦于保…...
flow_controllers
关键点: 流控制器类型: 同步(Sync):发布操作会阻塞,直到数据被确认发送。异步(Async):发布操作非阻塞,数据发送由后台线程处理。纯同步(PureSync…...
Windows 下端口占用排查与释放全攻略
Windows 下端口占用排查与释放全攻略 在开发和运维过程中,经常会遇到端口被占用的问题(如 8080、3306 等常用端口)。本文将详细介绍如何通过命令行和图形化界面快速定位并释放被占用的端口,帮助你高效解决此类问题。 一、准…...
