重复劳动陷阱
道大家有没有这样的感觉,每次加入一个新的公司/组,一开始总是要学这个学那个,可能会花很多时间看现有的代码,然后花一些时间实现一点点小的功能。 等到经过一段时间后,自己对工作越来越得心应手,提来的类似需求马上就可以做,以做得多做得快为骄傲,觉得这样可以更受老板青睐,可以升职加薪。 我在毕业第三年的时候加入前公司,在加入公司的***个季度,我主要再做一些边缘工具以及理解系统,从第二个季度开始在组里的核心业务上开发。 当时自己为了能够快速的出成果,会从组里所有的任务里挑看着比较容易实现的做,往往一天就可以做完一个或者两个任务。 做完一个任务后,发现backlog里面有相似的任务,我也“赶紧”抢过来assign给自己,然后快速的做完,提交code review。 从那个季度开始我每个季度做的工单越来越多,超过组里的所有其他成员,自己也对自己的“高效”洋洋得意,觉的自己工作的非常充实,进步很大。 然而在这个过程中,我已经不知不觉得掉到“重复劳动”的陷阱中去了。 我们在写代码的时候,有一个原则交叫DRY(Don't Repeat Youself)原则,简单通俗的说就是不要copy paste代码,能抽象成函数的抽象成函数,能抽象成基类的抽象成基类。 但是程序员的工作本身也应该遵循一样的道理,那就是尽量不要做重复的工作。 重复劳动对程序员的危害
回到开篇的问题,同样是一样的计算机专业毕业,进入职场的职位和工作都差不多,为何有些程序员短短几年就成长为全能选手或领域专家,有些程序 学习曲线类似于上图,经历过短暂的入门期和相对长一些的积累期之后,可能大部分技术都会进入到高效期。 在入门期和积累期的时候可能技能使用的效率会低一些,进入到高效期之后,随着技能使用的效率大大提高,工作所产生的“输出”也越来越大。因此“高效期“给人以充实的假象。 一旦自己的某项技术进入到高效期,在此基础上的提升会非常困难,可能之前工作三个月所掌握的新知识,比之后一年在工作中积累的要多。 有时候我们看一个程序员工作了5年,但是他可能***年学习并熟悉所用的技术,接下来4年都在做相同的工作,解决类似的需求,那么他的5年工作经验等于1年乘以5。 而有些程序员,他每工作一段时间之后,都会钻研技术更深的部分,或者去学习新的技术,总是保持着在尝试自己并不擅长的领域,那么这样的程序员,他的5年工作经验会比前一种程序员要多。 如何摆脱重复劳动的循环 既然重复劳动的危害这么大,那么我们是否可以摆脱重复劳动的循环呢? 有的时候,程序员自己也不想老是重复的干类似的东西,但是无奈被派发的任务重复的很多,似乎自己可以选择的不多。 在我自己在第三年大量重复劳动之后,我的经理找到我谈话,说我不应该这样重复自己,同样的事情做一两次就好了,再重复的做对自己的帮助不大。 我分享一下我是怎么样避免重复的劳动的: 1.找到Pattern,解决一类问题而不是一个问题。 当你解决了N次类似的需求的时候,是否可以把这些问题抽象出来,是否可以去自动化的实现这类需求? 改了N次bug之后,是否可以发现bug的规律,能够开发出静态分析工具来抓住这些bug? 2.尝试用新的技术解决同样的问题。 有时当项目的实现并没有多少规定的时候,我们可以在一定的自由度下尝试新的工具。 今年年初的时候我去尝试修改一个已有的内部工具前段,持着学习新技术的心理,我用Redux重新实现了前段,而不是在原有的jQuery的前段基础上修改。 3.尝试换岗。 (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |