把自己朝九晚五的工作自动化了,有错吗?
作者 | Brian Merchant
译者 | 谭开朗
编辑 | 屠敏
来源 | CSDN(ID:CSDNnews)
【导读】用代码让自己工作开启自动化之际,是否意味着自己将面临被解雇的风险?
2016年,Reddit上出现了一个匿名的帖子,内容是:“从大约六年前到现在,我在工作中什么也没做。”作为一个的职场吐槽贴而言,这可能看起来没什么。但是这位昵称为FiletOFish1066的程序员说,他在一家著名的科技公司工作,工作干起来真的没什么意思。他写道,在入职QA岗后的八个月内,他就把自己的工作完全自动化了。“我不是开玩笑。每周工作40个小时,我去上班的时候,就在办公室玩英雄联盟,逛Reddit,做任何我想做的事情。在过去的六年里,我实际花在工作上的时间可能只有50个小时。”当他的老板发现他在这六年基本上无所事事的时候,就解雇了他。
这个帖子很快就火了,在整个科技领域传播开来,最终促使当事人删了帖子,而且还把账号注销了。
大约一年后,一个自称为Etherable的人在著名的程序员论坛Stack Exchange的Workplace版块发布了一个问题:“不告诉我的老板我已经将自己的工作自动化了,是不是不太道德?”这位纠结的程序员的工作内容是“数据输入”,在六个月前,他写了一个脚本,把工作自动化了。之后,“过去一个人要花一个月的时间处理的工作,现在大概需要10分钟。”这份工作是全职的,而且还有福利,允许Etherable在家办公。自动化带来了近乎完美的结果,对于所有的领导来说,他的员工完美地完成了工作。
这个帖子引发了巨大的争议,评论区很快就被淹没了。(截止2018年10月,它被浏览了近50万次。)有些人认为,Etherable欺骗了老板,有些人认为程序员只是找到了一种巧妙的方法来完成手头的工作而已。Etherable从未对随后的讨论做出回应。也许是被大量的关注给搞懵了,世界各地的媒体都纷纷报道了这个故事。Etherable消失了,这个帖子后来演变了一个非常有价值的对话场地,内容主要是谁可以把工作自动化,以及怎么样自动化。
我们称之为自我自动化,或自动自动化。当大规模自动化的“幽灵”困扰着工人的时候,这些“流氓”的程序员就证明了,无论他们的雇主是否知道,这种威胁会成为天赐之物。由于FiletOFish1066和 Etherable匿名发布并迅速消失了,记者无法联系到他们置评。但是他们的故事显示,工作场所的自动化可以有多种形式,而且是由管理层以外的人引发的。
一
乐观的经济学家和未来学家宣扬的自动化的前景是,将工作交给机器将会消除无意识的重复性劳动的苦差事,让人类能够有时间追求创造性或更有活力的工作来充实我们的生活。1930年,John Maynard Keynes发布文章推测,“自动机械和大规模生产的方法”,将有助于提供实现每周只工作15小时的场景,甚至这些工作时间也只是让人类感觉自己有事情干。
将近一个世纪后,尽管技术取得了巨大进步,重复性的任务依然存在。自动化继续快速发展;曾经由人类从事的数百万份工作是由软件和机械化工厂完成的,而工人的工作越来越努力,工作时间也越来越长。自动化带来的收益通常没有给那些操作机器的人,而是给了拥有机器的人。经济合作与发展组织(OECD)称,自1970年代以来,经合组织国家工资收入所占份额一直在下降,而流入资本——如现金储备和机器——的份额一直在增加。似乎只有一些工人意识到了自动化的前景,他们已经为自己编写了代码来实现它。
当然,程序员几十年来一直在写能够让他们工作自动化的代码。编程通常涉及使用工具来实现不同级别的自动化,从代码格式化到合并到不同的代码库,大多数人只是没有将自动化发展到完全或几乎完全自动化他们工作的极限。我通过Reddit和电子邮件与十几个程序员交流,他们多多少少都将自己的工作自动化了。这些自动化工具已经解决了库存管理、报告编写、图形渲染、数据库管理和各种数据输入的工作。其中一个程序员写了一份代码,让自己妻子的全部工作都自动化了。他们中的大多数人都要求保持匿名,以保护他们的工作和声誉。
“当我开始工作时,我的工作每天要花掉我八个小时的时间,”一个很早就将自己工作自动化的人告诉我,我称呼他为Gary。他在一家大型连锁酒店工作,这家连锁酒店在90年代开始将工作流程电脑化。Gary很快意识到他花了很多时间在重复同样的任务,所以他开始在下班后学习编程。“在大约三个月的时间里,我使用Lotus编写了一段代码,它不仅自动化了重复性的任务,还有效地自动化了整个工作,”他说。他没有告诉老板他到底做了什么,他的工作生活质量也大大提高了。
“白天有空闲时间感觉很奇怪,”他告诉我。“我把这些时间用在了学习酒店里的其他系统上。”然后他让自己变得有用,帮助管理层解决这些系统中的问题。自动化消除了他的体力劳动,减轻了他的压力,让他追求自己的实际利益。“实际上,我把我的工作变成了我喜欢的东西,那就是排除故障,”他说。
在他辞职的两周前,他递给老板一张软盘,上面有程序和关于程序运行的文件。Gary说,他的老板对他辞职感到不安,直到他交出软盘,向他展示程序是如何工作的。他的老板才放心。然后,他告诉老板,如果有任何问题,就给他打电话。老板从来没有打过电话。
2000年,Todd Hilehoffer在为宾夕法尼亚州的一家保险公司编写报告时意识到,他的工作可以通过计算机程序完成。“当时我还是一个新手,只有一年的IT工作经验,”他告诉我。“我花了大约一年时间来实现自动化。我一直认为我的老板会对我留下深刻印象,会给我更多的工作处理。”虽然老板印象深刻,但他也没有其他工作给他。他整天都在网上下棋。Hilehoffer写道:“那6-9个月内,我真的只是无所事事,天天闲着。”之后,他得到了提拔。
在大多数领域,工人很少会思考他们的工作会自动化,或者真的投入时间去实现自动化。当自动化不是由自上而下推行,而是由那些从中获益的工人来主导时,把工作自动化的那些人让我们看到了它的样子。一些人享受额外的闲暇时间,而另一些人则利用闲暇时间学习新技能,应对新的挑战。
“我非常乐意听到这些故事,这表明自动化仍然很有潜力减少我们必须要做的无聊工作,”牛津互联网研究所的社会学家Jamie Woodcock告诉我。“这是自动化所带来的前景,即我们不必每周工作60小时,我们可以做更多有趣的事情,比如和孩子一起待在家里。”
然而,许多将自己的工作自动化的人害怕与别人分享他们的代码。即使一个程序完美地完成了他们的工作,许多人还是觉得为了自己的利益将工作自动化是错误的。人类劳动本质上是道德的,工人应该永远最大限度地提高生产率,这种观念比任何自动化脚本都更深入地融入了美国的工作文化。大多数雇佣合同规定,在公司时间开发的产品的知识产权属于雇主。因此,员工可能获得的任何效益或自动化收益都很容易被雇主吸纳,收益会被重新分配到上游。
一位程序员说,他隐藏了将工作完全自动化的事实,因为他担心公司会说知识产权是属于公司的,并拒绝给他赔偿。另一个自称为Jordan的人告诉我,他曾经无意中使用自动化软件,让整个部门都变得多余了。他现在用自动化脚本每年只节省“几周”的时间。Jordan说,他和他的同事严格控制他们的自动化技术,以保持对它们使用方式的控制:“我们通常把这些工具留给自己。"
另一名程序员竭尽全力向老板隐瞒他年薪5万美元的工作已经自动化的事实。管理层可以通过网络查看他的电脑屏幕,这个时候,他都会播放预先录制好的视频来掩盖他实际上没有工作的事实。在他寻求建议的帖子中,Etherable写道,“感觉我好像做了亏心事。”
“我不明白为什么人们会认为这是不道德的,”Woodcock说。“不管怎样,人们都会使用各种自动化工具完成任务;任何使用电脑的人都在将工作自动化。”他说,如果这些程序员坐在电脑前,日复一日地手动输入数据,他们永远不会受到谴责。但是,通过证明他们有能力提高效率,有些人可能会反常地觉得他们在推卸对雇佣他们的公司的责任。这也许就是为什么将工作自动化会感觉像是欺骗一样,而且被公司政策视为欺骗。在Amazon Mechanical Turk上,就明确规定,自动化违背了它的服务条款,和平台上为每项任务支付0.5美元报酬的工作人员一样,为每项任务劳动的工人也可以从自动化中获益最多。
一些程序员说,他们因为工作自动化而被解雇了。2011年,一位用户在一个名为“AcceptableLosses”的帖子中写道,“他们拿走了我开发的东西,用一个白痴代替了我,并指挥我如何工作,因为我“不服从”,他们很快就开除了我。我每年拿3万美元的工作,为他们带来了一个每年收入100万美元的项目,他们解雇了我,以此来节省我每年3万美元的工资。”从这个角度来看,有收入的将工作自动化的人的担忧不太可能是道德问题,而更多的是不想被雇主解雇或剥削,正如Woodcock指出的那样,“他们不仅盯着我们的所有时间,也盯着我们创造的任何东西。”他推测道,严谨的自我自动化“不再信任工作场所。老板会说‘不错,做得很好。继续努力’”。
二
很少有工人希望完全自动化,但是越来越多的人对编写处理繁忙工作的脚本感兴趣。生产力网站上充斥着博客帖子和操作指南文章,标题是“我如何通过Node JS自动化我的工作”,还有许多关于各种自动化的播客:小企业、市场营销、智能手机等等。这是一个新兴的家庭手工业。
《用Python自动处理无聊的东西》一书的作者Al Sweigart在一封电子邮件中告诉我,“我认为这是办公室工作人员和其他将电脑作为工作一部分的人的一种基层努力。”甚至那些对编程不太熟悉的人也在琢磨着将工作自动化,这是因为自动化让现代工作变得更容易。Sweigart写道:“我收到读者的电子邮件,他们告诉我,他们(和他们的同事)通过用小工具,每天已经省出了几个小时的时间。”
就目前而言,自动化可以增强人们的能力。但是随着自动化技术得到更好的理解,它们可能会成为管理层期望员工拥有或学习的另一种技能——将收益传递给他们的组织,然后以其他方式让自己变得有用。“员工将越来越需要将自己的工作自动化,否则就会被淘汰,”《哈佛商业评论》写道。“在全球范围内,我们将看到更多自上而下的自下而上自动化计划的管理任务。”富人和他们的员工制造的机器人将再次吞噬这些收益。
在此之前,任何使用代码的人都可能想要考虑自动化所带来的好处。它们是一种测试案例,说明自动化如何为普通工人提供更高的生活质量,尽管这并不完美。“问题是自动化要发挥作用,它需要民主化,”Woodcock告诉我。“这是向前迈出的一步,不是公司经理提供自动化服务。这仍然不是一个民主的过程。”那些将工作自动化的人独自行动,决定何时以及如何用代码代替自己的工作。理想情况下,自动化决策会在同事和同事的参与下集体做出,这样收益就可以平均分配。
1932年,Bertrand Russell写道,“现代世界对工作道德的信念正在造成很大的伤害,通往幸福和繁荣的道路在于有组织地减少工作。”在2018年,这可能意味着自动化工作的人省下他们工作日的部分时间;明天,这可能意味着努力为大众争取自动化收益。“我很担心没有足够的工作让每个人都可以全职工作,”Todd Hilehoffer说。上世纪90年代早期将工作自动化的 Gary 问我,“为什么为股东赚钱比员工生活质量更重要?这个体系不应该比帮助建立相关体系的个人更重要。”
将工作自动化的人表明,程序员在与雇主谈判中处于独特的地位,他们认为,员工应该保留自动化带来的收益,比如更短的工作周和更大的灵活性来从事他们感兴趣的工作。几乎没有证据表明雇主有兴趣这样做,但是从理论上讲,将工作自动化的人可以在中产阶层和工薪阶层的程序员中组织和分发自动化技术,这使得这个行业能够真正享受每周15小时的工作时间。这似乎是一个罕见的机会——也许,随着人工智能的发展,这是最后一个尝试为以人为本的自动化模式设定条件的机会。
原文:
https://getpocket.com/explore/item/the-coders-programming-themselves-out-of-a-job
(*本文为AI科技大本营转载文章,转载请联系作者)
◆
精彩推荐
◆
点击阅读原文,或扫描文首贴片二维码
所有CSDN 用户都可参与投票和抽奖活动
加入福利群,每周还有精选学习资料、技术图书等福利发送
推荐阅读
被追捧为“圣杯”的深度强化学习已走进死胡同
阿里达摩院2020趋势第一弹:感知智能的“天花板”和认知智能的“野望”
基于机器学习场景,如何搭建特征数据管理中台?
从LeNet到GoogLeNet:逐层详解,看卷积神经网络的进化
召回→排序→重排:技术演进趋势的深度之旅,2020 必备!
如何写出让同事膜拜的漂亮代码?
2019最烂密码榜单出炉,教你设置神级密码
GitHub Action 有风险?!
骗了马云 10 亿被骂 4 年后,院士王坚留下 4 条人生启示
万字长文回望2019:影响区块链行业发展的9大事件
你点的每个“在看”,我都认真当成了AI
相关文章:

COM组件转换成.NET组件[转]
利用类型库导入器(Type Library Importer)可以将其包装成一个.NET组件,然后就可以像使用.NET组件一样使用它了。 .NET框架只是提供了一个包装,并没有真正改变原有的对象 1.找到要转换的.dll文件 2.在命令提示符窗口中输入.dll文件的文件路径,…
干货:Android 源码使用心得分享
我相信很多初学者会和我一样经常在网上去找Android开发源码,但是往往因为运行不起来非常的懊恼!在做爱开发网站的时候,收集App代码时就遇到了这种困难,我相信网络上面的源码大部分在发布前都会人工测试,能够正常运行才…
60分钟入门深度学习工具PyTorch
「免费学习 60 节公开课:投票页面,点击讲师头像」作者 | Soumith Chintala中文翻译、注释制作 | 黄海广配置环境:PyTorch 1.3,python 3.7,主机:显卡:一块1080ti;内存:32g…

Windows客户端C/C++编程规范“建议”——指针
2 指针 2.1 尽量使用智能指针 等级: 【推荐】说明:正确使用智能指针可以省去指针管理的工作。2.2 类成员变量指针释放后一定要置空 等级: 【必须】说明:如果类成员变量指针在释放后没有置空,将出现如下问题࿱…

Bug tracker .net 部署经验(完善中)
Bug tracker .net 部署经验1. 软件要求windows 2003 serverSP1IISSQL sever 2005Net framework2. 安装和配置Bug tracker .net 提供了一个readme 文件。解压安装文件至某一个目录。在SQL SERVER 2005中新建一个数据库。确保IIS工作正常。定义一个虚拟目录,将其指向安…

Windows客户端C/C++编程规范“建议”——函数调用
3 函数调用 3.1 谨慎使用递归方法 等级: 【推荐】说明:递归方式控制不当,可能会导致栈空间不够而崩溃。一般的递归都可以使用循环代替。3.2 不要使用using namespace 等级: 【必须】说明:这是曾经教科书上的一种写法&a…
“一百万行Python代码对任何人都足够了”
作者 | Jake Edge译者 | Kolen出品 | AI科技大本营(ID: rgznai100)编程语言通常对其操作过程的各个方面都有或明或暗的限制。诸如标识符的最大长度或变量可以存储的值的范围之类的事情,这些是相当明显的例子,但是还有其他一些例子…

网吧电影客户端Realplayer的装配问题
网吧电影客户端Realplayer的装配问题 作者: 出处:网吧联盟 ( 20 ) 砖 ( 22 ) 好 评论 ( 1 ) 条 进入论坛 更新时间:2005-11-24 16:54关 键 词:网吧阅读提示:一般有过开网吧经验的朋友,应当知道如何让自己的realplayer播放器支…

基于Servlet+JDBC+Bootstrap+MySQL+AJAX权限管理系统项目实战教程
项目简介 权限系统一直以来是我们应用系统不可缺少的一个部分,若每个应用系统都重新对系统的权限进行设计,以满足不同系统用户的需求,将会浪费我们不少宝贵时间,所以花时间来设计一个相对通用的权限系统是很有意义的。 本系…

Windows客户端C/C++编程规范“建议”——表达式和运算
4 表达式和运算 4.1 比较操作中将常量设置为左值 等级: 【推荐】说明:编写代码时,如果将常量设置为右值。可能因马虎将“”写成“”导致逻辑错误。这种场景下,编译器是不会报错的,代码检查也比较容易被忽视。例子&…
GitHub标星1.5w+,从此我只用这款全能高速下载工具
「免费学习 60 节公开课:投票页面,点击讲师头像」作者 | Rocky0429来源 | Python空间(ID:Devtogether )大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻...网上资源眼花缭乱,下载的方…

CSS text-transform 属性
定义 text-transform 对元素中的字母进行控制。 继承性:Yes 说明 这个属性会改变元素中的字母大小写,而不论源文档中文本的大小写。如果值为 capitalize,则要对某些字母大写,但是并没有明确定义如何确定哪些字母要大写,…

SeaJS基本开发原则
SeaJS基本开发原则 在讨论SeaJS的具体使用前,先介绍一下SeaJS的模块化理念和开发原则。使用SeaJS开发JavaScript的基本原则就是:一切皆为模块。引入SeaJS后,编写JavaScript代码就变成了编写一个又一个模块,SeaJS中模块的概念有点类…

SMS主站点配置详细图解:Sms2003系列之二
SMS主站点配置在上一篇文章中,我们介绍了如何进行SMS2003+SP2的部署。本文中,我们将介绍如何进行SMS主站点的配置。在SMS中,站点(site)定义并包含了所有SMS管理的对象。当我们第一次安装SMS时,实际安装的是一个SMS站点…
2019,不可错过的NLP“高光时刻”
作者 | Elvis译者 | 凯隐、夕颜出品 | AI科技大本营(ID: rgznai100)【导读】对自然语音处理(NLP)领域而言,2019年是令人印象深刻的一年,本文将回顾2019年NLP和机器学习领域的重要事件。内容 主要集中于 NLP…

Windows客户端C/C++编程规范“建议”——结构
5 结构 5.1 不要使用goto 等级: 【必须】说明:在大型项目中,goto的滥用会导致灾难性后果。因为我们程序中一般不存在从一个函数体内部跳转到另一个函数体内部的场景,所以我们可以将跳转控制在函数内部,从而避免灾难。…

WinForm容器内控件批量效验是否允许为空?设置是否只读?设置是否可用等方法分享...
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chinahuyong/article/details/47395633 WinForm容器内控件批量效验是否允许为空?设置是否只读?设置是否可用等方法分享 在WinForm程序中,我…
“不会Linux,怎么当程序员?”骨灰级程序员:干啥都不行。
说起优秀程序员的必备技能,我想大家都可以说很多,比如:数据结构、算法、数学、编程语言等等。但是,你可能会忽略了每一个程序员都应该掌握的技能:Linux。想一想,我们日常学习、求职、工作场景的中ÿ…

与空连接相关的几条命令
1)建立空连接:net use \\IP\ipc$ "" /user:"" (一定要注意:这一行命令中包含了3个空格) 2)建立非空连接:net use \\IP\ipc$ "密码" /user:"用户名" (同样有3个空格)3)映射默认共享:net use z: \\IP\c$ "密码" /u…

Windows客户端C/C++编程规范“建议”——宏
6 宏 6.1 减少宏的使用 等级: 【建议】说明:宏的使用,将使得调试变得麻烦。所以在设计和使用宏的时候,请确保宏的逻辑是阅读者不会去关心细节的行为。6.2 宏定义中字母需大写 等级: 【必须】说明:为了醒目…

Struts2中通配符的使用
1、准备工作 新建一个JavaWeb项目HelloWord,导入Struts2的.jar包,在Web.xml下配置Struts2的监听,在src下添加Struts2的配置文件struts.xml;将该项目部署到服务器(Tomcat)上,运行检查项目是否部署成功和其他错误&#x…
关于Spark NLP学习,你需要掌握的LightPipeline(附代码)| CSDN博文精选
作者 | Veysel Kocaman, Data Scientist & ML Researcher ANKIT CHOUDHARY翻译 | 赵春光校对 | 申利彬来源 | 数据派THU(*点击阅读原文,查看作者更多精彩文章)【导读】Pipeline具体来说是一个多阶段的序列,每个阶段由一个Transformer或者…

网络编程--ftp客户端的实现(c#版)
.net2.0对ftp有了一个很好的封装,但是确容易让人忽略ftp的真正内部实现,下面是我实现的ftp客户端的功能,其主要步骤是这样的:1、创建一个FtpWebRequest对象,指向ftp服务器的uri 2、设置ftp的执行方法(上传,下载等) 3、给FtpWebReq…

Windows客户端C/C++编程规范“建议”——文件
7 文件 7.1 正确使用#include 等级:【推荐】 说明:#include <>和#include “”导致编译器在搜索文件时,搜索的路径顺序不同。所以需要正确使用#include,以避免包含错了头文件。 语法形式操作带引号的形式预处理器按以下…
让你的网站支持 Emoji
SegmentFault有用户提出要支持Emoji表情输入,就研究了一下: 要记得备份数据库。 首先Mysql数据库在5.5.3之后开始支持utf8mb4字符集,所以mysql版本是5.5.3+的都可以设置让数据库存储Emoji表情,如果你的应用有移动端的&…

Windows客户端C/C++编程规范“建议”——变量和常量
8 变量和常量 8.1 尽量不要使用全局变量 等级: 【要求】说明:全局变量的滥用和goto的滥用一样,都是一种灾难。它将使得逻辑变得难以调试和控制。8.2 不涉及外部使用的全局变量需要使用static关键字修饰 等级: 【要求】说明&#…
机器学习模型五花八门不知道怎么选?这份指南告诉你
作者 | LAVANYA译者 | 陆离编辑 | 夕颜出品 | AI科技大本营(ID: rgznai100)【导读】在本文中,我们将探讨不同的机器学习模型,以及每个模型合理的使用场景。一般来说,基于树形结构的模型在Kaggle竞赛中是表现最好的&…

WinAPI: FlattenPath、WidenPath
不管什么曲线命令, 到来路径中都会变成 Bezier 线; 也就是说路径中只有直线和 Bezier 线.FlattenPath 和 WidenPath 都能够把路径中的 Bezier 线转换为近似的直线; 不同的是: 用 WidenPath 转换后貌似加宽了线, 其实它是转换成了一个包围路径的新路径(类似区域).本例效果图:代码…

Android - 小的特点 - 使用最新版本ShareSDK手册分享(分享自己定义的接口)
前太实用Share SDK很快分享,但官员demo快捷共享接口已被设置死,该公司的产品还设计了自己的份额接口,这需要我手动共享。 读了一堆公文,最终写出来,行,废话,进入主题。 之前没实用过ShareSDK分享…
结合Flink,国内自研,大规模实时动态认知图谱平台——AbutionGraph |博文精选
作者 | Raini出品 | 北京图特摩斯科技 (www.thutmose.cn)(*点击阅读原文,查看作者更多精彩文章)Flink:目前最受关注的大数据技术,最活跃 Apache 项目之一。AbutionGraph:北京图特摩斯科技自研的…