首页 > 其他分享 >开发经验有感

开发经验有感

时间:2023-10-27 11:59:19浏览次数:36  
标签:经验 有感 开发人员 他们 代码 缺乏经验 工作 任务 开发

很多人问如何从高级到专家,如何看待 35 岁职业危机,今天分享一个反例,先来看看一个不好的程序员是什么样的,希望有所帮助。

软件行业的工作经验和从事这个行业的工作年限直接相关。这句话在某种程度上是对的,但是从事这项工作的年限,并不一定代表获得了相同年限的工作经验。

正如一句话所说:“我们以为我们是工作了十年,其实却只有一年的工作经验,只不过又重复用了九年”。

今天我们来深入剖析下程序开发人员缺乏经验的几种表现,明确了问题,我们才能在自己的程序员职业生涯中不犯相同的错误。

  1. 一次性提交大量代码
    回忆下,你是否碰到过一次性提交大量代码的人,你都不想给他做代码评审。

是的,不专业的开发人员就会这样做。他们会在一次代码评审请求中包含多个模块的修改,而且会催促你优先评审他们的代码。是啊,能不急吗,排到后边,还需要解决代码冲突的问题。

这个问题在很多高级开发工程师中也存在,他们在功能开发期间不做任何提交,只有在功能彻底完工后,才会提交所有修改,于是代码评审中的任何意见都会引起大量的修改。

当我们碰到这种代码评审请求时,首先要做的就是要求提交者按功能模块将其拆分成多个小的请求。我只会对 issues(任务管理系统)中的第一个功能需求评审,然后将其转回提交者。如果我有时间,我会和提交者连线进行代码实时评审。

我们能做什么:

进行小的代码提交。

一个好的做法是:每个工作日都进行代码提交。

不要提交没有编译或者会导致构建失败的代码。

  1. 代码写的很烂
    缺乏经验的开发人员写不出漂亮的代码,他们写出的代码会很混乱,而且分布在代码库的各个部分。

当你尝试阅读这类代码时,会感觉自己身处一座迷宫之中。你会逐渐忘记自己是从什么地方开始的,要寻找什么以及这段代码完成了什么功能。

有经验的开发人员知道代码如何设计。除非要开发的功能显而易见,首先需要在纸上写出你对需求的理解并画出流程图(简化版的规格需求说明书),在脑海里对这段代码进行一个完整的构思。除非你彻底弄清楚了如何修改,否则不要开始代码编写。

如果你不遵守以上的规则,当你回顾自己完成的代码时会非常痛苦。以后如果需要修正问题或者增加功能,也会变得非常棘手。

我们能做什么:

编写代码之前,对你要实现的功能有个清晰的了解。为了清楚地理解需求,你需要尽量多问问题。

让你的代码简洁而优雅。其他团队成员可以读懂代码并理解它打算做什么。

  1. 同时开展多项工作
    缺乏经验的开发人员不知道什么时候开始一项任务、如何推进、什么时候结束。他们试图并行处理多项任务。他们不知道如何将一项大任务分解为小的模块,从而减轻实现的难度。

当他们收到一项任务时,并不是第一时间和上级确认需求,而是立刻就开始编程,而且在做任务期间,也不会和上级就任务进度进行沟通。只有当任务完成时,他们才会向你反馈。到那个时候,你只能祈祷他们完成的功能就是你想要的。

缺乏经验的开发人员的另一个表现是同时推进多项任务,他们会同时处理多项事情,如:实现多个没有太大联系的功能点、解决生产环境问题、协助其他同事工作等。

最终,从他们那里得不到有效的产出。虽然他们的态度和出发点是好的,但对整个团队造成的后果是灾难性的,浪费了很多的时间,导致团队得日夜赶工。

我们能做什么:

专注完成小的任务。

将收到的任务分解为小块,明确需求的优先级,一小块一小块地完成。

领取一项任务,完成后再开始新的任务。

  1. 性格傲慢
    对于缺乏经验的开发人员,傲慢是非常致命的。傲慢会导致他们不能接受别人的批评和建议。当你对他们的代码或者陈述给出意见时,他们会认为你是在质疑他们的能力。

许多新人由于无知,都会表现出这种傲慢。刚走出校门的他们充满自信,并没有意识到他们在学校学到的东西离社会要求还有很大差距。这些人中的聪明者会很快调整自己,以归零的心态,努力学习并适应公司文化。

其实不只是新人——一些有几年工作经验的开发人员也会表现出这种傲慢,一部分原因是其满足于个人获得的专业成就,另一部分可能的原因是其缺乏和优秀的人共事的机会,有点坐井观天。

此外,傲慢的行为也从另一方面证明这样的开发人员确实缺乏经验。这样的行为会对他们的职业发展造成很多阻碍,因为没有人喜欢和一个傲慢的人共事。当成长变慢时,他们不会从自身找原因,而是更多的归罪于别人。

我们能做什么:

在前行的路上保持谦卑。礼貌地对待别人会让你在软件开发职业生涯中走得更远。

尊重每一个人。出现分歧后,在你发表意见时,不管对方是什么身份,都要尊重对方。

  1. 不能从之前的错误中学到经验
    我一直认为,对于软件开发人员,反馈机制是一个很有效的工具。来自他人的反馈,会让我们明白自己的短板是什么以及如何去改进。一个聪明的开发人员明白如何借助他人反馈来促进自己的成长。

根据一个开发人员对建设性意见的反应,你可以判断出他是否缺乏经验。缺乏经验的开发人员不接受任何建设性的建议,甚至代码评审中的评论,他都会认为是对他个人的一种攻击。

如果一个开发人员因为别人对他代码给出的评论,而感觉被冒犯,只能表明他不具有真正的开发经验。只是抱着做一天和尚撞一天钟的态度工作,却感慨没有遇到赏识自己的伯乐。

我们能做什么:

对每个反馈保持积极的态度。对于每个反馈,你可以选择是接受还是拒绝,但拒绝之前要保持心平气和的态度。

从错误中学习。没有人能永远正确,保持终身学习才能让自己持续强大。

  1. 工作时间处理私人事务
    日常工作中,总是发现团队里的一些成员在工作时间处理私人事务,如:看社交媒体,浏览购物网站,玩游戏。

之前还见过团队成员,上班时间炒股。因为他需要不时地关注股票的 K 线走势,造成个人的产出质量不高。其他同事对他很有意见,因为他们需要花费更多的时间去赶工期。

当开发经理和这个开发人员谈话之后,他改变了一段时间,但是很快就故态复萌。

工作时间处理私人事务,这是违反商业道德,并且表现了你的不专业。我们需要对工作敬业,毕竟我们要靠它谋生。

我们能做什么:

工作时间尽量不要处理私人事务。当你需要离开几个小时去处理个人事情时,请向你的管理者请假。

使用休息时间浏览你的社交媒体。如果必须要点外卖或炒股,可以利用午休时间。

  1. 盲目追逐技术潮流
    开发人员缺乏经验的另一个表现是面对技术潮流的态度。你会发现他们总是在谈论技术潮流,当有一个新的潮流出现时,他们会立刻丢弃原来的潮流,投入新的怀抱。

缺乏经验的开发人员总是在学习教程。毫无疑问,教程是很有用的学习工具,但是,不进行任何实践而只是按照教程一步步操作无疑是浪费时间。它会让你虚幻地觉得自己好像都掌握了,但是知识是否掌握了,需要通过真实的项目进行检验。

开发人员很少会用热门技术或者从教程中学到的知识来实现新的东西,他们学习热门技术或者教程很多是为了满足自己的虚荣心,或者担心自己会错过什么。

我们能做什么:

花费时间和精力学习那些能在工作中或者实际项目中真正用到的技术。

从教程中学习并及时练习,相对于新手教程,自己实现一个功能能学到更多的东西。

标签:经验,有感,开发人员,他们,代码,缺乏经验,工作,任务,开发
From: https://www.cnblogs.com/caisl/p/17791924.html

相关文章

  • 2023年,Android开发不仅要苟住,看懂这篇Android Framework精编内核解析还要跳槽涨薪
    前言2023年,Android开发市场就一个字,崩了!虽然没有做精确的统计,但是从其他IT行业也可以管中窥豹了解一二了。而且金三银四马上过去了,还有不少Android开发在问我简历修改Android开发后续的发展。以往都没有那么都人问这些问题。可想而知今年的形势确实已经是岌岌可危了。现在大部分人......
  • Health Kit接入资质要求详解,开发不迷路!
    开发运动/健康应用过程中,需要使用HealthKit提供的数据能力,作为独立的个人开发者或是企业开发者,接入时分别需要满足什么样的条件呢?个人开发者接入资质审核要求•个人开发者应用需上架至华为应用市场。个人开发者应用未上架华为应用市场,或者个人开发者应用非移动应用,暂不开放Heal......
  • 为何 DevOps 会给开发人员带来压力和倦怠?
    企业正在享受DevOps实施带来的好处,但这也是有代价的。开发人员需要承担额外的责任,可能会导致他们感到疲惫不堪。因此我们可以采取一些方法来确保DevOps工程师的满意度。 DevOps的支持者通常将这一概念说成是提高效率和生产力的好方法。通过加强开发人员和IT运维工程师之......
  • 云端golang开发,无需本地配置,能上网就能开发和运行
    欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos需求学习golang的时候,需要一个IDE,还需要一个能运行程序的环境,以及一个MySQL数据库对于有经验的程序员来说,自己动手安装部署即可,但是小白和懒人也是存在的...背景背......
  • 05前端开发js
    运算符#1.算术运算符varx=10;varres1=x++;'先赋值后自增1'x先赋值给res1,让res变成10,x变成12varres2=++x;'先自增1后赋值'x还是10,x加了2次后赋值给res2,res2变成12#2.比较运算符弱等于:自动转换类型'5'==5'结果是true#js会自动转换成相同数据类......
  • 音视频开发常见问题(五):视频黑屏
    摘要本文介绍了视频黑屏的可能原因和解决方案。主要原因包括用户主动关闭视频、网络问题和渲染问题。解决方案包括优化网络稳定性、确保视频渲染视图设置正确、提供清晰的提示、实时监测网络质量、使用详细的日志系统、开启视频预览功能、使用视频流回调、处理编解码问题、处理权限......
  • c# winfom从0学习开发开发OA、BPM工作流程与自定义表单系统(十二)新建一个完整的工作流
     先设计一个表单 开始设计表单 设计一个表单例如请假表单 Tag十分的重要,再设计流程图节点的时候tag起到的作用是提示当前控件是谁,再设置可写字段环节十分重要 保存 设计流程图 设计请假流程图设计好请假的流程 设置每个节点的参数 所有部门下的人都......
  • 【编程开发指南】「设计模式系列」一起来学编程界的“兵法”设计模式(序章)
    设计模式是什么设计模式是一种被广泛应用于软件开发中的技术,它可以帮助开发人员更好地组织和管理代码,提高代码的可读性和可维护性。本文将介绍设计模式的概念、分类和应用场景。设计模式的概念设计模式是一种被反复使用的代码设计经验,它可以解决特定问题的通用解决方案。设计模式不......
  • 多年学习django知识经验总结,从基础到高手,markdown笔记,共计50页,10大模块。 第(2)期
    Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以"插件"形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(DoNotRepeatYourself)原......
  • 安卓软件开发步骤以及注意事项!
    随着智能手机的普及,安卓软件市场日益繁荣,安卓软件开发也成为了越来越多开发者的选择,本文将详细介绍安卓软件开发的步骤以及注意事项,帮助您更好地了解安卓软件开发的全过程。一、安卓软件开发步骤1、需求分析在开始安卓软件开发之前,首先需要进行充分的需求分析,这一阶段主要确定软件......