为什么有的程序员一直在做需求,而有的人却主导大型项目?

57063d735b010df1404c00f074966d55.jpeg来源:juejin.cn/post/7073001183123603470

👉 欢迎加入小哈的星球,你将获得: 专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17..., 点击查看项目介绍

  • 《从零手撸:前后端分离博客项目(全栈开发)》 2期已完结,演示链接:http://116.62.199.48/;

截止目前,累计输出 51w+ 字,讲解图 2330+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,戳我加入学习,解锁全部项目,已有1900+小伙伴加入

b6f7fa1831b384fd79bc3a45ba370dca.gif

  • 思考:做需求与做需求的差异

  • 业务需求该怎么做

  • 再说「技术深度」

  • 获取做有深度事情的授权

  • 技术深度不是唯一标准

  • 最后


看到一个讨论帖,原文如下:

平时的工作如何体现一个人的技术深度?平时工作中很多时候需求细而碎的,如何在工作中积累技术深度?又如何体现一个人的技术深度?

思考:做需求与做需求的差异

再回答问题之前,我想先抛开「技术深度」这次词,讲讲做需求这件事,说说我对做需求的理解。每一个程序员都是从刚毕业做需求开始,为什么有的人逐渐成为大牛,主导大型技术项目或走向团队管理岗位,而有的人一直还在做需求。我觉得这里面的差异在于:每一个对做需求这件事的理解有所不同。

这里面的差异在于,你是抱着一种什么样的心态去完成这个需求,是把这个需求做到极致,还是只是当做任务完成这个需求,达到产品想要的功能就行。这两个表面上看似差不多其实相差极大,差异在于,你有没有站在更高的角度,希望这件事做到完美。

从需求角度有没有思考产品设计当中的缺陷,能不能反向为产品设计提供建议,从技术角度能不能做到高质量高兼容性无bug,以及下次再有类似的需求能不能快速高效率的迭代。

用一句话来描述就是,能不能跳出自己是一个程序员是一个被动执行人的角色,而是将自己当做产品当做技术负责人的心态去做这件事。

业务需求该怎么做

知易行难。如果一开始做不到,那就先着眼小事:关注细节,从需求开始的需求评审、编写技术方案文档、设计文档、到开发的代码注释、结构设计,保证高质量,完善无漏洞的代码逻辑,再到异常埋点、指标监控、线上可用性运维等等,认真对待一个需求的每一个环节。

当你自认为已经做好整个流程的每一件小事之后,接下来可以通过深入细节,思考整个流程是否存在问题。做需求过程中沟通协作的有没有问题,流程规范的有没有问题,机制环节哪方面问题,代码公共基础能力的是否有缺失,开发过程中你所遇到的问题是不是一个通用问题,能不能抽象出一个公共库解决大家的问题,能不能制定一个SOP的解决方案流程,亦或是提炼出一个最佳实践在组内外分享经验。

通过这些一件件小事来锻炼自己解决问题的能力,以及更深层级的发现问题的能力。再通过不断的发现问题,思考问题出现的原因,拿出解决方案,最终落地解决了自己或组内或协作方的问题,锻炼自己的综合能力逐步慢慢成长。

再说「技术深度」

说了这么多,你可能会说,这跟我问的技术深度有什么关系?我想说:抛开业务需求谈技术深度都是耍流氓。

举一个例子,数据可视化方面3D three.js,视频直播方面的编解码压缩,客户端安全方面的攻防渗透,每一个都是有技术深度的事情,但问题是即使你掌握了这些领域拥有了非常高的技术深度之后呢,不能应用于业务需求,不能解决产品急迫要解决的问题,不能完成你老板的OKR,达成部门的战略目标,还是英雄无用武之地(当然你也可以选择一个可以用得上的团队,那是就是另外一回事了)。

由于这些单点的有技术深度的事情,不能为你带来直观和显而易见的 「回报」(也就是颜如玉、黄金屋与金榜题名),也就间接的打击了积极性(当然自己对某门技术感兴趣而钻研的不再本次讨论之列)。

所以提升自己的技术深度,最好的方式还是在公司业务中,发现有深度的事,然后去在攻克这个问题的过程中,提升了自己的技术深度,即跟随公司业务的发展的同时自身也获得了成长,你用技术能力为公司解决了业务发展过程中的问题,自然也就从公司获得了该有的回报。这是一个ROI投入产出比最高的获得技术深度的方式。

获取做有深度事情的授权

当想明白获取技术深度的路径之后,接下来要解决的就是:如何让领导给你安排有技术深度的事情?

业务发展中有很多有技术深度有技术难度的事情,为什么领导要安排你来做这件事呢?你凭什么让领导觉得你 「有能力」 也 「有意愿」 来完成这件事?能力与意愿是作为领导在分配工作当中的最重要的两个决策项。

既然你能提问如何积累技术深度,我相信你一定是有强烈意愿的,那么剩下的就是如何让领导认为你有完成这个有技术深度的事情的能力?最简单来讲就是,你能不能在开发需求中做到深度思考、追求极致、精益求精、有责任心、有主人翁意识与主R意识,在每件小事中能做到 「自闭环」,之后才会逐步让你承担更大范围更高挑战更大深度的事情,形成正向循环。

这也是我前面为什么要先重点强调做好每一件小事的重要性。

技术深度不是唯一标准

作为一个程序员,在职业生涯的初期,确实是以技术深度也就是技术能力作为最大的衡量标准。

但随着职业生涯的发展,职级从L5到L8,站在从公司角度,对一个人的需求,也会从能完成一个业务需求,变成能带领一帮人完成一个更大的维度的需求,能不能为组织解决问题,为事业部达成战略目标,对人的要求的重心也会慢慢发生变化,这种变化可以参考公司的职级能力模型体系的雷达图。

所以一味的追求积累技术深度就跑偏了,但不是说技术深度不重要,技术能力是作为程序员的安身立命之本,但是在积累技术深度的同时,也需要学习锻炼技术深度以外的能力。具体到底是什么其他能力,这就够再展开好几篇文章的篇幅了,今天在这就不细说了。

最后

故不积跬步无以至千里,不积小流无以成江海。先从做好每一件小事开始,把每个业务需求做到120分,深度思考、发现问题、解决问题,逐步建立起靠谱、有责任心、技术牛的人设,逐步负责有技术难度的事情,跟随公司业务发展积累自己的业务领域经验与技术深度,从而获得双赢的回报。

这是我对如何积累技术深度这件事的理解,或许会有一些片面和偏激,毕竟不是谁都有一个能知人善任的好领导,不是谁都能遇到一个快速发展的业务,不是谁都能遇到有技术难度与技术挑战的场景,无论我怎么说,都会有幸存者偏差的存在。

努力与机遇并存,机遇可遇不可求,所以我们能做的事,就是学会正确做事的思路和方法,并为之坚持不懈的践行它。知易行难,学会方法容易,坚持践行难于上青天。自己该做的都做好了,机遇来了就可以抓住,即使抓不住,你也有了「选择的能力」,有了选择更好机遇、更好公司的能力。

👉 欢迎加入小哈的星球,你将获得: 专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17..., 点击查看项目介绍

  • 《从零手撸:前后端分离博客项目(全栈开发)》 2期已完结,演示链接:http://116.62.199.48/;

截止目前,累计输出 51w+ 字,讲解图 2330+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,戳我加入学习,解锁全部项目,已有1900+小伙伴加入

f7dc962221400e3f54874e4896295ec6.gif

eeedb38417b52ef570f198f93f2839ec.jpeg

 
 

2765ab4cc6991256790e5f9b80b83cf0.gif

 
 
 
 
1. 我的私密学习小圈子~
2. 面试官:加密后的数据如何进行模糊查询?
3. 会用RabbitMQ延迟插件,代码量直接降一半?
4. SpringBoot如何防止反编译?proguard+xjar 完美搞定
 
 
最近面试BAT,整理一份面试资料《Java面试BATJ通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。
获取方式:点“在看”,关注公众号并回复 Java 领取,更多内容陆续奉上。
PS:因公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。
点“在看”支持小哈呀,谢谢啦
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于计算机专业的学生而言,参加各类比赛能够带来多方面的益处,具体包括但不限于以下几点: 技能提升: 参与比赛促使学生深入学习和掌握计算机领域的专业知识与技能,如编程语言、算法设计、软件工程、网络安全等。 比赛通常涉及实际问题的解决,有助于将理论知识应用于实践中,增强问题解决能力。 实践经验: 大多数比赛都要求参赛者设计并实现解决方案,这提供了宝贵的动手操作机会,有助于积累项目经验。 实践经验对于计算机专业的学生尤为重要,因为雇主往往更青睐有实际项目背景的候选人。 团队合作: 许多比赛鼓励团队协作,这有助于培养学生的团队精神、沟通技巧和领导能力。 团队合作还能促进学生之间的知识共享和思维碰撞,有助于形成更全面的解决方案。 职业发展: 获奖经历可以显著增强简历的吸引力,为求职或继续深造提供有力支持。 某些比赛可能直接与企业合作,提供实习、工作机会或奖学金,为学生的职业生涯打开更多门路。 网络拓展: 比赛是结识同行业人才的好机会,可以帮助学生建立行业联系,这对于未来的职业发展非常重要。 奖金与荣誉: 许多比赛提供奖金或奖品,这不仅能给予学生经济上的奖励,还能增强其成就感和自信心。 荣誉证书或奖状可以证明学生的成就,对个人品牌建设有积极作用。 创新与研究: 参加比赛可以激发学生的创新思维,推动科研项目的开展,有时甚至能促成学术论文的发表。 个人成长: 在准备和参加比赛的过程中,学生将面临压力与挑战,这有助于培养良好的心理素质和抗压能力。 自我挑战和克服困难的经历对个人成长有着深远的影响。 综上所述,参加计算机领域的比赛对于学生来说是一个全面发展的平台,不仅可以提升专业技能,还能增强团队协作、沟通、解决问题的能力,并为未来的职业生涯奠定坚实的基础。
对于计算机专业的学生而言,参加各类比赛能够带来多方面的益处,具体包括但不限于以下几点: 技能提升: 参与比赛促使学生深入学习和掌握计算机领域的专业知识与技能,如编程语言、算法设计、软件工程、网络安全等。 比赛通常涉及实际问题的解决,有助于将理论知识应用于实践中,增强问题解决能力。 实践经验: 大多数比赛都要求参赛者设计并实现解决方案,这提供了宝贵的动手操作机会,有助于积累项目经验。 实践经验对于计算机专业的学生尤为重要,因为雇主往往更青睐有实际项目背景的候选人。 团队合作: 许多比赛鼓励团队协作,这有助于培养学生的团队精神、沟通技巧和领导能力。 团队合作还能促进学生之间的知识共享和思维碰撞,有助于形成更全面的解决方案。 职业发展: 获奖经历可以显著增强简历的吸引力,为求职或继续深造提供有力支持。 某些比赛可能直接与企业合作,提供实习、工作机会或奖学金,为学生的职业生涯打开更多门路。 网络拓展: 比赛是结识同行业人才的好机会,可以帮助学生建立行业联系,这对于未来的职业发展非常重要。 奖金与荣誉: 许多比赛提供奖金或奖品,这不仅能给予学生经济上的奖励,还能增强其成就感和自信心。 荣誉证书或奖状可以证明学生的成就,对个人品牌建设有积极作用。 创新与研究: 参加比赛可以激发学生的创新思维,推动科研项目的开展,有时甚至能促成学术论文的发表。 个人成长: 在准备和参加比赛的过程中,学生将面临压力与挑战,这有助于培养良好的心理素质和抗压能力。 自我挑战和克服困难的经历对个人成长有着深远的影响。 综上所述,参加计算机领域的比赛对于学生来说是一个全面发展的平台,不仅可以提升专业技能,还能增强团队协作、沟通、解决问题的能力,并为未来的职业生涯奠定坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值