简评:程序员的工作不是写代码,而是解决问题。成为高级工程师后,如果不做管理者,你还能做什么呢?
你做程序员已经有好几年并且已经晋升过一两次,最终升任了高级工程师或一些其他的同等职位,在此之前,你的职业道路简单明了:你学会如何独立工作,然后一步步升任为高级工程师。
现在的你开始思考自己职业生涯的下一步是什么,如果你还没有明确的规划,问自己几个问题:
- 你是否成为了一个管理者且不再编程?
- 仅仅学习新技术,你是否觉得不够?
- 你的目标是什么?
本文我想提出一个职业发展的替代方案,一个能给你更多自主权和讨价还价能力的替代方案。与成为管理者不同的是,它仍然允许你编程。
从写代码到解决问题
作为程序员的工作到最后是解决问题,而不是编写代码,解决问题需要这些步骤:
- 发现和确认问题
- 提出解决方案
- 实施解决方案
这里面的每一个都可以被认为是一种技能树:一组可以单独和并行开发的相关技能。但是在实践中,你通常会从使用第三个技能树开始,在变得更有经验的时候,才逐个添加其他技能。
Randall Koutnik 把这些描述为一种职业头衔,一个职业发展走向:实施者、解决者和发现者。
作为实施者,你是一名没有经验的程序员,你的任务由其他人定义:你只需实现小的、明确指定的代码块。
假设一下,你在一家为养宠物的人搭建网站的公司工作。你在上班的时候会接收到一个任务:“在这里添加一个下拉菜单,列出所有的鬣蜥疾病,你可以从 IGUANA_DISEASE 表中获取这些疾病。选择一个菜单项应重定向到适当的页面。”
你不知道用户为什么会需要列出鬣蜥疾病,也不必花费太多时间来弄清楚如何实现它,照吩咐去做就行了。
当你变得更有经验时,你就成了一个解决者:你能够为不太明确的问题想出解决方案。
当你遇到一个问题:“我们需要在网站上添加一个部分,让宠物主人知道自己的宠物是否生病了。”你先获悉自己拥有什么数据,可以使用哪些 API,然后与设计师一起设计 UI,创建一个实现计划,最后编写代码。
最终你会成为一个发现者:你开始自己发现问题并找出其根本原因。
你会去和你的经理谈鬣蜥:几乎没人拥有鬣蜥,为什么它们在页面上和猫狗有一样的空间?更不用说给鬣蜥编写特定的代码,这完全是在浪费时间,难道不是应该编写适用于所有动物的通用代码吗?
经过一番讨论,你发现必须重做网站架构、业务逻辑和设计,这样就不必在每次添加新动物的时候都编写新代码。如果你提出正确的架构,使得添加一个新的动物只需要花一个小时,公司就可以以低成本服务于许多动物利基市场。你将与整个团队一起合作完成解决方案的设计和实施。
成为发现者的好处
许多程序员最终停留在解决者这个角色,不知道下一步该做什么。如果你不做管理,那么成为一个发现者是一个很好的选择,原因有两点:自主性和生产力。
**Kutnk 的主要观点是,这三个阶段每走向下一步都会给你更多的自主权。**作为实现者,几乎没有自主权,作为解决者,会拥有稍多的自主权,作为发现者,你拥有非常多的自主权:你被赋予一些模糊的目标和约束,由你自己来决定做什么。这会带来很多乐趣。
除此之外,还有一个好处:从 Implementer 到 Solver 再到 Finder,你将变得更有生产力,因为你所做的不必要的工作变得更少。
- 如果你只是在执行别人指定的解决方案,可能会陷入低效的工作。
- 如果你只看到问题的表面就提出一个解决方案,那最终解决的可能不是真正的问题。
你越擅长诊断和发现潜在的问题,提出解决方案,并与他人一起工作,你就越少做不必要的工作,你就会更有效率。
利用你的生产力
如果你是一个发现者,你的工作效率就会大大提高,这会让你成为一个更有价值的员工。擅长挖掘高价值问题的人能发现那些无人知晓的障碍,发现客户真正想要的东西,你会成为他们中的一员。
这意味着你有更多的谈判优势:
- 协商加薪更容易成功。
- 可以找到更好的工作,即使这个工作涉及到你不了解的技术。
- 甚至可以申请为期三天的周末。
因此,如果你想在继续编程的同时事业上也取得进步,就从现在开始去寻找问题吧。一旦专门去注意这件事情,你会发现问题无处不在。
英文原文:The next career step for Senior Software Engineers (that isn’t management)
相关推荐
python——体育收入排行2012-2019
请分析文件并读取数据,完成以下功能: 1. 某年的收入排名前若干名选手 如果输入n是2012-19之间的年份,则可以输入整数k,输出n年的前k名排名信息。如果k大于当年排名运动员人数,则输出当年所有的信息。每行一名运动员信息,以' | '间隔该行各项信息。 2. 某年属于某个运动项目的所有运动员信息,和收入总和 如果输入的是'sport'(不区分大小写),则可以继续输入一个年份201*,输出一个当年排行中的运动项目菜单,按照字符串升序排列,格式见示例,再输入运动项目对应的数字来输出该项运动当
从事Android开发这么多年,你知道初、中、高级、资深及专家怎么划分吗?
初级Android开发工程师的定义是掌握基础的Android知识,能够独立完成一个功能,工作年限大概在1-2年,这个层级大部分人通过看一些资料书籍再经过项目练习很快可以达到。这个级别的人往往需要掌握如下一些技能:我对中级Android开发工程师的定义是能够熟练完成功能研发外,还需要掌握常见开源库的一些原理,并仿照开源库去造轮子练习。这个阶段的人大多工作3-5年,业务开发能力熟练,碰到任何一个问题都能够得到解决,这个级别的人往往需要具备如下技能:对于高级Android开发工程师,就不仅限于功能和业务开发,还需
[记录一个bug]av_hwdevice_ctx_create出现Cannot allocate memory(附带库运行时路径)[已解决]
新写的程序里调用ffmpeg的av_hwdevice_ctx_create()这个函数,出现Cannot allocate memory。但是另个程序一样的代码,居然是成功的。 反复检查之后无果,就跳出去查了一下,看到一个问答: Have you tried to use ffmpg executables with the same libs that you using when you run the app? Have you tried to use ffmpg executables
工程师职业规划
工程师职业规划 要素一:经营者思想 1.把自己当企业经营,商业心态。 2.企业的使命和成果,个人的目标要保持一致 3.企业能为客户提供什么,把一个想法变成一个数字化的现实产品的能力 4.企业需要不断更新和完善,工程师需要不断风险和完善自己的服务能力 5.传达的价值与其他人有何不同 6.企业的潜在客户,工程师如何做好个人服务能力的营销,变被动的简历投递,为主动的客户上门。 能力三角形 创建者:变革的能力 领导者:建设团队的能力 生意人:赚钱的能力 完美的使命者:追求理想的能
STMCubeMX使用TB6612驱动编码轮并进行测速
TB6612电机驱动模块通过IN1和IN2引脚控制电机的旋转方向,并通过PWM信号的占空比调节电机速度。代码示例展示了如何使用GPIO控制电机的正反转,以及如何动态调整PWM占空比实现速度控制。系统设计中,TB6612与编码减速电机连接,STM32CubeMX用于初始化GPIO和PWM输出。编码器接口配置使用TIM3进行测速,TIM4定时器用于速度计算。Keil软件中编写的代码包括编码轮计数值获取、速度计算、电机正反转控制以及小车运动控制等功能。通过OLED显示速度,并实现电机的调试与测试。
anaconda的conda国内加速镜像源(pytorch 快速安装)
最近清华源不太好使了,所以推荐中科大镜像源,如下 1.还原原始通道 conda config --remove-key channels 2.
你和高级工程师的差距在哪儿?
一个程序员的成长之路,会经历多个阶段,从初级工程师、中级工程师到高级工程师再到这个领域的专家,但是能成为技术专家的终归是少数,因此我们通常给自己规划的是前几个阶段。刚毕业的时候就在想,如何能成为高级工程师?高级工程师到底是什么样子的?有的人会说,工作3-5年后,自然就成为了高级工程师,这种以工...
C# 上位机高级功能实战:报警、历史回放与远程监控
本文介绍了工业上位机系统的高级功能实现,主要包括实时报警机制、历史数据回放和远程监控三部分。报警功能通过阈值检测实现异常提醒;历史回放利用数据库存储数据,通过定时器控制回放进度;远程监控提供TCP、WebSocket等多种数据传输方式。文章还给出了综合优化建议,如异步处理、报警去抖动等,最终形成一个包含数据采集、显示、存储、报表及高级功能的完整工业自动化闭环系统。
终极职业规划指南:如何成为高级工程师的完整路线图
想要从初级工程师快速晋升到高级工程师吗?path-to-senior-engineer-handbook为你提供了一条清晰的职业发展路径。这个开源项目汇集了所有成为高级软件工程师所需的资源,帮助你制定个人成长路线图,实现职业生涯的飞跃。🚀 ## 💡 为什么需要职业规划路线图? 在软件工程领域,职业发展往往不是线性的。很多工程师在职业生涯中会遇到瓶颈,不知道下一步该往哪个方向发展。path-
基于STM32、HAL库的WF282A气压传感器 驱动程序设计
测量范围:0-2.5MPa(可根据需求选择其他量程)输出方式:I2C或SPI数字接口。温度补偿范围:-20℃~85℃。低功耗设计,适合电池供电应用。工作电压:3.3V/5V。精度:±0.1%FS。
基于YOLOv10的微小目标检测,多头检测器提升小目标检测精度
引入多头检测器助力YOLOv10,暴力提升小目标检测性能
高级工程师属于什么级别职称_高级工程师职称级别及其在软考中的重要性
免费备考资料(2024年11月软考):历年试题+视频课合集+电子讲义点击领取>>> 免费刷题:2024年11月软考备考刷题点此进入>>>高级工程师职称的级别高级工程师属于工程技术职称系列中的高级职称。在我国职称体系中,工程技术职称一般分为助理工程师、工程师和高级工程师三个等级。高级工...
桌面实施远程光电体积描记法:使用面部视频测量心率的C++详细指南
在现代医疗和健康监测领域,心率是一个非常重要的生理参数,它可以为我们提供关于身体健康状况的重要信息。但是,随着技术的进步,现在我们有了一种新的方法,称为远程光电体积描记法(rPPG),它可以无需与皮肤接触就测量心率。然后,我们从面部颜色的信号序列中提取绿色通道的值,因为绿色通道对于心率的变化最为敏感。在上述代码中,我们使用了OpenCV库,它是一个开源的计算机视觉库,非常适合这种应用。这种变化是由于血液流动引起的,当心脏跳动时,血液流经面部,导致肤色的轻微变化。要实现rPPG,首先需要检测并跟踪人脸。
10个步骤成为高级工程师
What Software engineers go through several stages in their careers. They start from a Junior role, then they move to a Mid Level role. Then they become senior. This blog post has 10 steps that help you to become a Senior Software Engineer. Why bother? Get
最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版
Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。
VB摄像头监控
该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制
高级工程师相当于什么级别的行政干部_## 高级工程师与行政级别的对应关系解析...
免费备考资料(2024年11月软考):历年试题+视频课合集+电子讲义点击领取>>> 免费刷题:2024年11月软考备考刷题点此进入>>>在探讨高级工程师相当于什么级别的行政干部之前,我们首先需要明确一点:高级工程师这一职称与行政级别之间并没有直接的等同关系。它们分属于不同的评价体系,...
ET2012新版免狗免安装绿色软件
ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,
前端大牛得到的最佳职业生涯建议
伯乐在线导读:原文作者尼古拉斯·泽卡斯( Nicholas C. Zakas)是一位前端大牛工程师,目前在 Box 公司任职,之前是在雅虎将近工作 5 年。在雅虎期间,他是雅虎首页的前端技术主管,并且是 YUI 库的贡献者。 Nicholas 编写的技术书有:《Maintainable JavaScript | 编写可维护的 JavaScript》、《Professional JavaScri
大中型超市收银系统(可直接运行)
光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开
程序员职业生涯真的很短吗?
这些新技术和新工具为程序员提供了更多的发展机会,让他们能够学习到更多的知识和技能,同时也为他们的职业前景注入了新的活力。这些新技术和新工具为程序员提供了更多的发展机会,让他们能够学习到更多的知识和技能,同时也为他们的职业前景注入了新的活力。毕业后,我顺利找到了一份程序员的工作,开始了我的职业生涯。但是我还是很喜欢我的工作,因为我觉得写出来的代码是一个一个小成就,能够带给用户实际的使用价值。但是我还是很喜欢我的工作,因为我觉得写出来的代码是一个一个小成就,能够带给用户实际的使用价值。
中级评高级工程师有什么条件_中级晋升高级工程师:条件与路径解析
免费备考资料(2024年11月软考):历年试题+视频课合集+电子讲义点击领取>>> 免费刷题:2024年11月软考备考刷题点此进入>>>在工程技术领域,从中级职称晋升为高级工程师是一个重要的职业发展里程碑。这不仅代表着个人专业能力的提升,也是职业生涯中的一个重要跳板。然而,要实现这一...
职业生涯发展
好,回到“CD 模型”,CD 是 Career Development 的简称,也就是“职业发展”。比如都“生”的时候,或者都“熟”的时候,有人说 50 块钱的活我愿意 45 块钱、30 块钱干,到了十七八岁,你有了恋人的身份,是吧?in 做策展师,过了三年,all in 做元宇宙的创业,再过几年,all in 做货币金融,在一个组织里,说来说去,不管你是做什么岗位的,教研、研发、内容、运营......其实都可以。这里我要提醒你注意的是,CD 模型的左上角我写的是“价值”,而不是“能力”。
升级:每位有抱负的高级工程师都需要的非技术技能
通过这样做,您不仅可以提高职业发展的机会,还可以成为团队和组织更有价值的资产,能够推动创新并提供有影响力的解决方案。高级工程师经常担任领导角色,指导初级团队成员,为架构决策做出贡献,并塑造项目的整体技术方向。除了软技能之外,高级工程师还需要对自己所从事的业务和行业有更广泛的了解。请记住:成为高级工程师的道路不是终点,而是不断成长、适应和学习的旅程。由于肩负多个项目和职责,高级工程师必须有效地确定任务的优先顺序,并高效管理时间,以便在不牺牲质量的情况下按时完成任务。他们创造了一个鼓励学习和成长的环境。
软件工程高级工程师_软件工程高级工程师:软考备考指南与职业发展路径
免费备考资料(2024年11月软考):历年试题+视频课合集+电子讲义点击领取>>> 免费刷题:2024年11月软考备考刷题点此进入>>>一、软件工程高级工程师的角色与职责软件工程高级工程师是信息技术行业中的重要角色,他们不仅具备深厚的软件开发能力,还能够在项目管理和团队协作中发挥关键...
亚马逊工程师:我在职业生涯中学到的 8 个重要经验
首先,让我来做一个简短的自我介绍:我叫 Daniel,今年 28 岁,是一名软件工程师。我从 13 岁起就开始学习编程。在工作了八年之后,我在 2019 年进入了亚马逊,并担任 SDE2。大约两年零三个月后,也就是 2021 年,我晋升到了亚马逊的高级 SDE。 在本文中,我将与大家分享我在职业生涯中所学到的一些经验,这些经验是我在之前就希望能够学到的。这些经验承载了我的个人经历和个人信仰。但愿这会对你有所帮助。 1. 尽管编程很酷,但如果能支持其他同事,你将会取得更大的成就。 编程很酷,非常
我作为高级工程师学到的东西
Reddit上有一个热帖, 是一名有10年工作经验的工程师酒后吐真言。讲述他工作经历中学到的东西。下面是原帖的截图: 内容和有意思,获得了很多人的赞,我们一起看看: 职业发展的最好办法是换公司。 技术栈并不重要,因为在我的领域中有 15 种基本的软件工程模式适用。我在数据领域工作,尽管它与 web 或嵌入式不会很相同,但是所有领域都有大约 10-20 个核心原则,技术栈只是试图让这些事情变得更容易,所以不要担心过度。 求职是有原因的。如果我对工作不满意,可能是时候继续前进了。 工作和人际关系是两回事。有
2257



被折叠的 条评论
为什么被折叠?



