程序员的重复劳动陷阱

news2024/11/23 0:34:46

https://kb.cnblogs.com/page/627035/

同样是一样的计算机专业毕业,进入职场的职位和工作都差不多,为何有些程序员短短几年就成长为全能选手或领域专家,有些程序员还在做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的前段基础上修改。
**尝试换岗。**换岗位可以直接的让你接受不同的项目,做一些不同的事情。我在上家公司的第一组待了近三年才换组,现在来看应该更早的时候尝试不同的事情。换岗位也会带来一些其他的问题,比如到新岗位之后可能会影响晋升速度,需要重新建立自己的权威等等。
换工作。换工作是一个终极大招,它会带来很多其他的变化,不建议只是为了脱离重复劳动而换工作。如果没有养成良好的学习习惯,那么换一份新工作之后也很有可能陷入到新的重复劳动的循环中。

重复劳动不可以完全避免

重复劳动是否可以完全避免呢?

我觉的是不可以避免的。以上的内容都是基于程序员成长的角度去分析问题,重复劳动是有害的。但是将程序员的劳动视为价值输出的话,熟练的价值输出确实也是程序员的价值之一,可以争取到更高的薪酬。

我们站在组织的角度上来看,**重复的需求永远存在,这些重复的需求需要被完成。**如果在人员配置有限的情况下,不可避免的单个个体成员需要去进行一定的重复劳动。而由于时间上的紧迫性,可能必须要用高效粗暴的方法来实现。

如果你是公司的初创成员,需要在初期做大量的重复工作来从无到有的实现新的产品,那毫无疑问这是应该做的,因为这样的重复劳动带来的收益可能是巨大的。

希望大家在工作中都可以正确的认识到重复劳动的陷阱,让自己能够保持持久的成长

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1057577.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

cygwin编译haproxy

下载安装cygwin cygwin下载、安装-CSDN博客 编译haproxy 打开cygwin终端 下载程序 haproxy程序 OpenPKG Project: Download 输入下面命令下载程序 wget http://download.openpkg.org/components/cache/haproxy/haproxy-2.8.3.tar.gz 解压 tar -zxvf haproxy-2.8.3.tar.gz…

2023年中国反射膜产量及市场规模分析:随着太阳能产业快速发展,规模持续扩大[图]

反射膜是一种具有高反射能力的薄膜材料,能够将光线反射回源头,起到增强反射效果的作用。反射膜广泛应用于太阳能电池板、建筑玻璃、车窗、显示器、光学仪器等领域。 反射膜产业链 资料来源:共研产业咨询(共研网) 随着…

Python中aiohttp和aiofiles模块的安装

Python中aiohttp和aiofiles模块的安装 前言 在进行asyncio多任务爬取的时候,配合着aiohttp和aiofiles的使用是必不可少的,那么我们现在就安装这两个模块到pycharm上 安装 将下面两行代码放入到pycharm上的终端就会开始下载 pip install aiohttp pip in…

Python字符串索引解码乱码谜题

输入数行“数字字母”字符组成的乱码字符串,根据谜题规则解码出乱码字符串中隐藏的单词信息。 (本笔记适合熟悉python字符串索引操作的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”…

我用PYQT5做的第一个实用的上位机项目(三)

基本的程序框架: 因为自己不是专业的程序员,只是一个搞电气控制的“票友”,所以尽量减少手动输入 代码量,能在Qt Dsigner里面完成的组态就不要放在代码里面完成。 在框架的建设方面,尽量做到集中和整合,位…

数据结构之双链表

双链表 1.复杂方法的图分析2.My_LinkedList代码3.接口MY_lIST4.测试类 1.复杂方法的图分析 2.My_LinkedList代码 package My_liNKEDlIST;public class My_LinkedList implements MY_lIST{static class ListNode{public int val;public ListNode prev;public ListNode next;pub…

数据结构 - 线段树的运用

数据结构 - 线段树的运用 前言一. 线段树的运用1.1 区间和 - 线段树节点的成员变量1.2 线段树的构建1.3 线段树的区间和查询1.4 线段树的区间和更新1.5 完整代码 二. 线段树的动态扩建2.1 向下递推2.2 向上递推2.3 更新操作2.4 查询操作2.5 完整代码 三. 线段树的使用案例3.1 定…

c++学习之优先级队列

目录 1.初识优先级队列 库中的实现 使用优先级队列 2.优先级队列的实现 3.仿函数 利用仿函数实现的优先级队列 迭代器区间构造(建堆) 1.初识优先级队列 如果我们给每个元素都分配一个数字来标记其优先级,不妨设较小的数字具有较…

2023年中国新能源汽车电动助力转向系统行业现状分析:随着新能源汽车的发展,产品渗透率的提升[图]

电动助力转向(EPS)系统是传统转向系统(如液压和电动液压系统)的替代品。自动驾驶汽车的日益普及正在推动全球电动助力转向系统市场的需求增长。配备电动助力转向系统的车辆总重量趋于减轻,从而进一步提高燃油效率,其中2022年中国新…

Nginx之Openresty基本使用解读

目录 Openresty基本介绍 Openresty源码编译安装 Openresty基本使用 测试lua脚本 外部分文件导入 关闭缓存,开启热部署 用lua代码获取系统变量 Openresty基本介绍 OpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua…

2023年中国纯棉纱行业现状及发展前景分析[图]

棉纱是棉纤维经纺纱工艺加工而成的纱,经合股加工后称为棉线。根据纺纱的不同工艺,可分为普梳纱和精梳纱。精梳纱选用优质原料,成纱中纤维伸直平行、结杂少、光泽好、条干匀、强力高,这类棉纱多用于织造高档。 棉纱分类 资料来源&…

2023年中国汽车座舱行业发展现状及趋势分析:高级人机交互(HMI)系统将逐步提升[图]

2022年有22.3%的汽车用户认为座舱内车载娱乐功能成为影响使用体验的关键因素。当前智能电动汽车的用户画像与娱乐、游戏等应用的用户画像相似,均以年轻人作为目标用户。年轻化的用户将娱乐功能的使用习惯延伸至汽车座舱内,对于座舱功能的需求不再局限于导…

【C语言】宏定义

🚩 WRITE IN FRONT🚩 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四"🔎🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评百大博…

RFID藏品管理系统-智慧文物仓库管理系统

一、项目背景 RFID藏品管理系统DW-S407是一套成熟系统,依托互3D技术、云计算、大数据、RFID技术、智能传感器、AI、视频分析技术对文物仓库进行统一管理、分析的信息化、智能化、规范化的系统。 不管是博物馆还是艺术馆,藏品的管理都是非常复杂的。特…

使用Docker部署ElasticSearch7+ELK(附带ES操作操作命令集)

ElasticSearch 7ELK 程序安装Docker安装下载ES镜像提前创建挂载文件夹添加配置文件创建并启动容器可能出现的异常安装IK分词使用ElasticHD客户端工具(目前使用发现无法做增删改)安装Kibana 软件包安装安装ElasticSearch(需要JDK1.8)安装IK(下…

【高阶数据结构】哈希(哈希表、哈希桶)

⭐博客主页:️CS semi主页 ⭐欢迎关注:点赞收藏留言 ⭐系列专栏:C进阶 ⭐代码仓库:C进阶 家人们更新不易,你们的点赞和关注对我而言十分重要,友友们麻烦多多点赞+关注,你们的支持是我…

Codeforces Round 901 (Div. 2)

Problem - A - Codeforces 贪心 每次都先让b减到1&#xff0c;然后再去选择工具来增加时间 AC代码: #include<bits/stdc.h> #define endl \n #define int long long using namespace std; const int N110; int x[N]; int a,b,n; void solve() {cin>>a>>b…

【C语言】模拟实现strlen

strlen是非常常用的字符串函数 目录 介绍&#xff1a;模拟实现&#xff1a;计数器递归指针-指针 介绍&#xff1a; 我们可得这个函数是求在字符串开始与\0之间的字符串长度 代码示例&#xff1a; #include <stdio.h> int main() {const char* str1 "abcdef"…

神器 CodeWhisperer

这两天看到了好多关于 Amazon CodeWhisperer 针对个人用户终身免费使用的消息&#xff0c;便抽空简单来重点介绍下如何在 VS Code 这款 IDE 上安装和使用 CodeWhisperer。 亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视…

Linux——进程间通信——system V系列

✅<1>主页&#xff1a;&#xff1a;我的代码爱吃辣 &#x1f4c3;<2>知识讲解&#xff1a;Linux——进程间通信——system V系列 ☂️<3>开发环境&#xff1a;Centos7 &#x1f4ac;<4>前言&#xff1a;system V 版本进程间通信的机制。 目录 一.共享…