『』程序员的重复劳动陷阱
同样是一样的计算机专业毕业 , 进入职场的职位和工作都差不多 , 为何有些程序员短短几年就成长为全能选手或领域专家 , 有些程序员还在做CRUD?
程序员的重复劳动陷阱
不知道大家有没有这样的感觉 , 每次加入一个新的公司/组 , 一开始总是要学这个学那个 , 可能会花很多时间看现有的代码 , 然后花一些时间实现一点点小的功能 , 等到经过一段时间后 , 自己对工作越来越得心应手 , 提来的类似需求马上就可以做 , 以做得多做得快为骄傲 , 觉的这样可以更受老板青睐 , 可以升职加薪 。
我在毕业第三年的时候加入前公司 , 在加入公司的第一个季度 , 我主要再做一些边缘工具以及理解系统 , 从第二个季度开始在组里的核心业务上开发 。当时自己为了能够快速的出成果 , 会从组里所有的任务里挑看着比较容易实现的做 , 往往一天就可以做完一个或者两个任务 。做完一个任务后 , 发现backlog里面有相似的任务 , 我也“赶紧”抢过来assign给自己 , 然后快速的做完 , 提交code review 。从那个季度开始我每个季度做的工单越来越多 , 超过组里的所有其他成员 , 自己也对自己的“高效”洋洋得意 , 觉的自己工作的非常充实 , 进步很大 。
然而在这个过程中 , 我已经不知不觉得掉到“重复劳动”的陷阱中去了 。
我们在写代码的时候 , 有一个原则交叫DRY( Don't Repeat Youself)原则 , 简单通俗的说就是不要copy paste代码 , 能抽象成函数的抽象成函数 , 能抽象成基类的抽象成基类 。但是程序员的工作本身也应该遵循一样的道理 , 那就是尽量不要做重复的工作 。
重复劳动对程序员的危害
回到开篇的问题 , 同样是一样的计算机专业毕业 , 进入职场的职位和工作都差不多 , 为何有些程序员短短几年就成长为全能选手或领域专家 , 有些程序员还在做CRUD?
文章图片
文章图片
大部分的技术学习曲线类似于上图 , 经历过短暂的入门期和相对长一些的积累期之后 , 可能大部分技术都会进入到高效期 。在入门期和积累期的时候可能技能使用的效率会低一些 , 进入到高效期之后 , 随着技能使用的效率大大提高 , 工作所产生的“输出”也越来越大 。因此“高效期“给人以充实的假象 。
一旦自己的某项技术进入到高效期 , 在此基础上的提升会非常困难 , 可能之前工作三个月所掌握的新知识 , 比之后一年在工作中积累的要多 。有时候我们看一个程序员工作了5年 , 但是他可能第一年学习并熟悉所用的技术 , 接下来4年都在做相同的工作 , 解决类似的需求 , 那么他的5年工作经验等于1年乘以5 。
而有些程序员 , 他每工作一段时间之后 , 都会钻研技术更深的部分 , 或者去学习新的技术 , 总是保持着在尝试自己并不擅长的领域 , 那么这样的程序员 , 他的5年工作经验会比前一种程序员要多 。
如何摆脱重复劳动的循环
既然重复劳动的危害这么大 , 那么我们是否可以摆脱重复劳动的循环呢?
有的时候 , 程序员自己也不想老是重复的干类似的东西 , 但是无奈被派发的任务重复的很多 , 似乎自己可以选择的不多 。
在我自己在第三年大量重复劳动之后 , 我的经理找到我谈话 , 说我不应该这样重复自己 , 同样的事情做一两次就好了 , 再重复的做对自己的帮助不大 。我分享一下我是怎么样避免重复的劳动的:找到Pattern , 解决一类问题而不是一个问题 。当你解决了N次类似的需求的时候 , 是否可以把这些问题抽象出来 , 是否可以去自动化的实现这类需求?改了N次bug之后 , 是否可以发现bug的规律 , 能够开发出静态分析工具来抓住这些bug?尝试用新的技术解决同样的问题 。有时当项目的实现并没有多少规定的时候 , 我们可以在一定的自由度下尝试新的工具 。今年年初的时候我去尝试修改一个已有的内部工具前段 , 持着学习新技术的心理 , 我用Redux重新实现了前段 , 而不是在原有的jQuery的前段基础上修改 。尝试换岗 。换岗位可以直接的让你接受不同的项目 , 做一些不同的事情 。我在上家公司的第一组待了近三年才换组 , 现在来看应该更早的时候尝试不同的事情 。换岗位也会带来一些其他的问题 , 比如到新岗位之后可能会影响晋升速度 , 需要重新建立自己的权威等等 。换工作 。换工作是一个终极大招 , 它会带来很多其他的变化 , 不建议只是为了脱离重复劳动而换工作 。如果没有养成良好的学习习惯 , 那么换一份新工作之后也很有可能陷入到新的重复劳动的循环中 。
推荐阅读
- CSDN|“编程能力差,90%输在了选择上!”CTO:多数程序员都是瞎努力!
- 快科技|程序员装机上了9900K+RTX 2070 灵魂拷问:性能过剩用来干啥?
- cnBeta|科学家创造可重复使用的海绵,可有效吸收溢油
- :程序员用Windows记事本写出了光追演示程序:每秒30帧
- IT程序猿的那些事软件程序员推荐的十大IDE集成开发环境!
- 埃尔法哥哥C++程序员的职业生涯规划
- 【】红米K30Pro新海报:90Hz刷新率,重复魅族17玩法,华为能否跟随?
- 豆飞科技红米K30Pro新海报:90Hz刷新率,重复魅族17玩法,华为能否跟随?
- 【仲裁】优信回应CFO被限高消费:涉前雇员劳动仲裁6433元 在执行中
- 调查近两万程序员,当前云原生开发现状究竟如何?
