qvj2l q49k 0/aabf 37 cb 882 e4 a 9993 ac 45 a6 cbaccd 86 /
软件行业的工作经验与你在这个行业的工作年限直接相关。这句话在一定程度上是对的,但是你在这份工作中工作的年限并不一定意味着你获得了相同年限的工作经验。俗话说“我们以为工作了十年,其实只有一年的工作经验,却一次又一次用了九年”。
有些人工作了很多年,但他们表现得像新来的人。他们几乎没有学到软件开发的基础知识。除了前几年的增长,后期一直停滞不前,他们不明白为什么。
同时,我也和一些只有几年工作经验的开发人员合作过,他们展现出了惊人的增长潜力。他们有正确的工作态度,知道如何避免不称职的行为。
从开发者的一些习惯来看,谁更专业,谁更业余是非常明显的。让我们深入了解7位业余程序开发人员。
表现,每个程序开发者都应该引以为戒,这些错误会阻碍我们的职业发展。
# 1\.一次提交大量代码。
回想一下,你有没有遇到过一个人,一次提交了很多代码,你却不想给他做代码评审?是的,不专业的开发人员会这么做。他们将在一个代码审查请求中包含多个模块的修改,并会敦促您首先审查他们的代码。是的,你能放松点吗?我们需要解决后面的代码冲突问题。这个问题在很多高级开发工程师中也存在。他们在函数开发过程中不提交任何东西,只在函数完全完成后提交所有的修改,所以代码评审中的任何注释都会引起很多修改。
当我遇到这种代码评审请求时,我做的第一件事就是要求提交者按照功能模块把它拆分成几个小的请求。我只会对
问题(任务管理系统)中的第一个功能需求评审,然后将其发送回提交者。如果我有时间,我会与提交者联系,进行实时代码审查。
#你能做什么:
*提交少量代码。一个好的做法是每个工作日提交代码。
*不要提交未经编译或会导致构造失败的代码。
# 2\.代码写得不好。
没有经验的开发人员写不出漂亮的代码。他们编写的代码会令人困惑,并分布在代码库的所有部分。
当你试图阅读这种代码时,你会觉得自己在迷宫中。你会逐渐忘记你从哪里开始,你在寻找什么,这段代码做了什么。
有经验的开发人员知道如何设计代码。除非要开发的功能很明显,首先你需要把你对需求的理解写在纸上,画一个流程图(规范和需求的简化版),脑子里对这段代码有一个完整的想法。除非彻底了解如何修改代码,否则不要开始编写代码。
如果你不遵守以上规则,当你回顾你已经完成的代码时,会非常痛苦。如果以后需要修复问题或者增加功能,会变得非常困难。
#你能做什么:
*在编写代码之前,对要实现的功能有一个清晰的了解。为了清楚地了解需求,你需要问尽可能多的问题。
*使您的代码简洁而优雅。其他团队成员可以阅读代码并理解它打算做什么。
# 3\.同时执行多项任务。
没有经验的开发人员不知道什么时候开始一项任务,如何推进,什么时候完成。他们试图并行处理多项任务。他们不知道如何将一个大任务分解成小模块,从而降低实现的难度。
他们在接到任务的时候,没有第一时间和上级确认要求,而是马上开始编程,在任务过程中也没有和上级沟通任务的进展情况。只有当任务完成时,他们才会给你反馈。那时候你只能祈祷他们完成的功能是你想要的。
没有经验的开发人员的另一个表现就是同时推进多个任务,他们会同时处理很多事情,比如:实现多个功能点,连接少,解决生产环境问题,协助其他同事工作等。
最终,他们得不到有效的输出。虽然他们的态度和出发点是好的,但对整个团队的后果是灾难性的,浪费了很多时间,团队不得不夜以继日地工作。
#你能做什么:
*专注于小任务。把收到的任务分解成小块,明确需求的优先级,一件一件完成。
*接受一项任务,完成后开始新的任务。
# 4\.傲慢的个性
对于没有经验的开发者来说,傲慢是非常致命的。傲慢会让他们无法接受别人的批评和建议。当你对他们的代码或语句进行评论时,他们会认为你在质疑他们的能力。
很多新人会因为无知而表现出这种傲慢。他们刚离校时充满了自信,却没有意识到自己在学校学到的东西与社会要求相差甚远。这些人中聪明的人会很快调整自己,努力学习,以零心态适应公司文化。
事实上,不仅仅是新人——一些有几年工作经验的开发人员也会表现出这种傲慢,部分原因是他们对自己的专业成就感到满意,部分原因是他们缺乏与优秀人员合作的机会,他们有点望风。
除此之外,傲慢的行为也证明了这样的开发商确实缺乏经验。这样的行为会对他们的职业发展造成很多障碍,因为没有人喜欢和一个傲慢的人一起工作。当他们的成长放缓时,他们不会从自己身上找原因,而是更多地责怪别人。
#你
能做什么:* 在前行的路上保持谦卑。礼貌地对待别人会让你在软件开发职业生涯中走得更远。
* 尊重每一个人。出现分歧后,在你发表意见时,不管对方是什么身份,都要尊重对方。
# 5\. 不能从之前的错误中学到经验
我一直认为,对于软件开发人员,反馈机制是一个很有效的工具。来自他人的反馈,会让我们明白自己的短板是什么以及如何去改进。一个聪明的开发人员明白如何借助他人反馈来促进自己的成长。
根据一个开发人员对建设性意见的反应,你可以判断出他是否缺乏经验。缺乏经验的开发人员不接受任何建设性的建议,甚至代码评审中的评论,他都会认为是对他个人的一种攻击。
很多年前,我有一个同事给我写了很长的一封邮件,教我如何来评审代码,他对我给他代码的评论感到愤怒。他的主要观点是我不应该关注编码标准,因为他知道如何编码,我应该只关注代码能否满足功能需求。
如果一个开发人员因为别人对他代码给出的评论,而感觉被冒犯,只能表明他不具有真正的开发经验。他抱着做一天和尚撞一天钟的态度工作,却感慨没有遇到赏识自己的伯乐。
# 你能做什么:
* 对每个反馈保持积极的态度。对于每个反馈,你可以选择是接受还是拒绝,但拒绝之前要保持心平气和的态度。
* 从错误中学习。没有人能永远正确,保持终身学习才能让自己持续强大。
# 6\. 工作时间处理私人事务
日常工作中,总是发现团队里的一些成员在工作时间处理私人事务,如:看社交媒体,浏览购物网站,玩游戏。
我之前还有个团队成员,上班时间炒股。因为他需要不时地关注股票的 k
线走势,造成个人的产出质量不高。其他同事对他很有意见,因为他们需要花费更多的时间去赶工期。
当开发经理和这个开发人员谈话之后,他改变了一段时间,但是很快就故态复萌。最终,公司只能把他开除了。
工作时间处理私人事务,这是违反商业道德,并且表现了你的不专业。我们需要对工作敬业,毕竟我们要靠它谋生。
# 你能做什么:
* 工作时间尽量不要处理私人事务。当你需要离开几个小时去处理个人事情时,请向你的管理者请假。
* 使用休息时间浏览你的社交媒体。如果必须要点外卖或炒股,请利用午休时间。
# 7\. 盲目追逐技术潮流
开发人员缺乏经验的另一个表现是面对技术潮流的态度。你会发现他们总是在谈论技术潮流,当有一个新的潮流出现时,他们会立刻丢弃原来的潮流,投入新的怀抱。
缺乏经验的开发人员总是在学习教程。毫无疑问,教程是很有用的学习工具,但是,不进行任何实践而只是按照教程一步步操作无疑是浪费时间。它会让你虚幻地觉得自己好像都掌握了,但是知识是否掌握了,需要通过真实的项目进行检验。
开发人员很少会用热门技术或者从教程中学到的知识来实现新的东西,他们学习热门技术或者教程很多是为了满足自己的虚荣心,或者担心自己会错过什么。
# 你能做什么:
* 花费时间和精力学习那些能在工作中或者实际项目中真正用到的技术。
* 从教程中学习并及时练习,相对于新手教程,自己实现一个功能能学到更多的东西。
# 总结
缺乏经验的开发人员会因为自己的效率低下进而降低整个团队的效率。他对待自己工作的错误态度,会让其在职业发展中错失很多机会。
了解并避免这种错误的态度和工作方式,是聪明人的做法。如果你不幸染上了这些坏习惯,随着时间的推移,你会越来越难以摆脱。
谢谢你阅读这篇文章。希望你能避开这些陷阱,早日获得职业上的成功。