程序员们,我们能工作到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
数字化治理 数字化治理通常指依托互联网、大数据、人工智能等技术和应用,创新社会治理方法与手段,优化社会治理模式,推进社会治理的科学化、精细化、高效化,助力社会治理现代化。数字化治理是数字经济的组成部分之一,…...

C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...

Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...
【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error
在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...