点击关注公众号,Java干货及时送达

作者 | Lokajit Tikayatray;策划 | 李俊辰;来源 | InfoQ

知道这些表现,你才能在自己的程序员职业生涯中不犯相同的错误。

软件行业的工作经验和你从事这个行业的工作年限直接相关。这句话在某种程度上是对的,但是你从事这项工作的年限,并不一定代表你获得了相同年限的工作经验,正如一句话所说:“我们以为我们是工作了十年,其实却只有一年的工作经验,只不过又重复用了九年”。

有一些人虽然工作了很多年,但工作表现就像刚入行的新人。他们几乎不学习软件开发的基础知识 。除了最初几年有所成长,后期一直停滞不前,而且他们不明白为什么。

与此同时,我也曾与一些只有几年工作经验的开发人员共事,他们表现出惊人的增长潜力。他们工作态度端正,并且明白如何避免不称职的行为。

根据开发人员的某些习惯,可以非常明显地分辨出谁更专业,谁更业余。让我们深入剖析下业余程序开发人员的 7 种表现,每个程序开发人员都应该引以为戒,这些错误会阻碍我们的职业发展。

1. 一次性提交大量代码

回忆下,你是否碰到过一次性提交大量代码的人,你都不想给他做代码评审。是的,不专业的开发人员就会这样做。他们会在一次代码评审请求中包含多个模块的修改,而且会催促你优先评审他们的代码。是啊,能不急吗,排到后边,还需要解决代码冲突的问题。这个问题在很多高级开发工程师中也存在,他们在功能开发期间不做任何提交,只有在功能彻底完工后,才会提交所有修改,于是代码评审中的任何意见都会引起大量的修改。

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

你能做什么:

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

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

2. 代码写的很烂

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

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

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

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

你能做什么:

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

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

3. 同时开展多项工作

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

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

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

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

你能做什么:

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

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

4. 性格傲慢

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

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

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

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

你能做什么:

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

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

5. 不能从之前的错误中学到经验

我一直认为,对于软件开发人员,反馈机制是一个很有效的工具。来自他人的反馈,会让我们明白自己的短板是什么以及如何去改进。一个聪明的开发人员明白如何借助他人反馈来促进自己的成长。

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

很多年前,我有一个同事给我写了很长的一封邮件,教我如何来评审代码,他对我给他代码的评论感到愤怒。他的主要观点是我不应该关注编码标准,因为他知道如何编码,我应该只关注代码能否满足功能需求。

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

你能做什么:

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

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

6. 工作时间处理私人事务

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

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

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

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

你能做什么:

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

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

7. 盲目追逐技术潮流

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

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

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

你能做什么:

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

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

缺乏经验的开发人员会因为自己的效率低下进而降低整个团队的效率。他对待自己工作的错误态度,会让其在职业发展中错失很多机会。

了解并避免这种错误的态度和工作方式,是聪明人的做法。如果你不幸染上了这些坏习惯,随着时间的推移,你会越来越难以摆脱。

热门内容:史上最强Redis6.0,世界排名第一!为什么不推荐使用BeanUtils属性转换工具
Redis分布式锁使用不当,酿成一个重大事故,超卖了100瓶飞天茅台!!!
常用正则表达式最强整理(速查手册)
最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

明天见(。・ω・。)ノ♡

程序员缺乏经验的 7 种表现相关推荐

  1. 程序员缺乏经验的 7 种表现!

    以下文章来源方志朋的博客,回复"666"获面试宝典 来源:Lokajit Tikayatray levelup.gitconnected.com/top-7-signs-of-an ...

  2. 程序开发人员缺乏经验的7种表现

    作者 | Lokajit Tikayatray 译者 | 王莉敏 策划 | 李俊辰 知道这些表现,你才能在自己的程序员职业生涯中不犯相同的错误. 软件行业的工作经验和你从事这个行业的工作年限直接相关. ...

  3. 【新书速递】程序员必会的40种算法

    算法是计算科学的核心,在求解实际问题的过程中发挥着重要作用.程序员.算法设计师.架构师.数据分析师等信息技术相关从业人员都应学习算法设计基础知识,积累基础算法,掌握典型的机器学习算法.自然语言处理算法 ...

  4. 阿里六年团队Leader实战秘诀|程序员最重要的八种软技能(找工作/就业生必读)

    前言 此笔者在带团队的六年中发现,程序员们在职场都有一个共同的困扰:"好像写代码都没什么问题了,日常工作基本上都是应付业务需求的开发,好像找不到其他的更大的附加价值了,我应该找一些什么样的发 ...

  5. 六年团队Leader实战秘诀|程序员最重要的八种软技能

    前言 笔者在带团队的六年中发现,程序员们在职场都有一个共同的困扰:"好像写代码都没什么问题了,日常工作基本上都是应付业务需求的开发,好像找不到其他的更大的附加价值了,我应该找一些什么样的发力 ...

  6. java程序员求职计划_2017年java程序员面试经验(500字)

    1.数据结构 2.OO.按照他的一段描述建模 3.Java和C++在内存管理的不同之处. 4.JAVA的多线程机制. 5.反射机制的作用,以及在哪些方面使用了反射机制 6.网络 7.DesignPat ...

  7. 程序员应该抛弃的10种思维定式

    程序员应该抛弃的10种思维定式: 一.会议恐惧思维. 一提到开会,程序员的脑袋就大了,厌恶会议会形成习惯,当然,没有哪个人喜欢冗长.频繁.无效的会议.参加高效会议,是高效沟通的一种方式,如果一味的排斥 ...

  8. 漫谈程序员(五)20年资深程序员编程经验分享

    20年资深程序员编程经验分享 原文作者乔纳森·丹尼可(Jonathan Danylko)是一位自由职业的web架构师和程序员,编程经验已超过20年,涉足领域有电子商务.生物技术.房地产.医疗.保险和公 ...

  9. 霍炬:程序员爱写脚本是种病

    霍炬:程序员爱写脚本是种病 投递人 itwriter 发布于 2016-09-16 22:00 评论(22) 有3033人阅读 原文链接 [收藏] « » 如果你就是程序员,或者你熟悉程序员这个群体, ...

最新文章

  1. MapReduce过程详细分析
  2. MariaDB Window Functions窗口函数分组取TOP N记录
  3. 什么是Sentinel?它能做什么
  4. 前端学习(1488):jsonp回顾
  5. 商务办公管理咨询服务响应式模板
  6. mysql金额数据类型,热度飙升!
  7. gradle 错误: 编码GBK的不可映射字符
  8. 有哪些 pmp 资料分享?
  9. 三星t750c android6,BlueFrag:Android 蓝牙零交互远程代码执行漏洞分析 - 嘶吼 RoarTalk – 回归最本质的信息安全,互联网安全新媒体,4hou.com...
  10. 强化学习(一):简介——什么是强化学习?
  11. Product Requirement Document
  12. 看到校友录一位同学的留言,想起来一首诗
  13. python凤凰新闻数据分析(四)整合
  14. 牛顿迭代法-求平方根
  15. Android经典项目案例开发实战宝典
  16. 在windows和ubuntu下安装Syncthing
  17. NHibernate的一个示例
  18. zabbix添加邮件报警机制
  19. 优秀网址导航国内篇(更新于20170408)
  20. db2离线备份_DB2离线全备份与在线备份.pdf

热门文章

  1. 2.27 MapReduce Shuffle过程如何在Job中进行设置
  2. DVWA的安装与简单使用
  3. tensorflow1
  4. java中的各种流(老师的有道云笔记)
  5. 请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。
  6. 【组队学习】【29期】2. 计算机视觉
  7. Matlab与线性代数 -- 矩阵的水平连接和垂直连接
  8. mysql提示符详解_MySQL字符集使用详解
  9. 哪家互联网公司涨薪最厉害?居然不是阿里腾讯
  10. 希捷发布CORTX对象存储软件与开源社区,普惠超大规模数据存储