写给程序员:咱们这一代不是汽车工人

请输入图片描述
软件开发圈是个奇怪的圈子。尽管有着低失业率、高薪水和美好前景,显然一直处于危险和衰退之中,或者迫切须要警醒。有的开发者将最近软件开发的兴旺仅仅看作是将来衰退的前兆,而且开始写宿命型小说来警示这个即将死去的圈子。程序员

Greg Baugues以前写过一篇文章《咱们这一代的汽车工人》。他在文中比较了当今的软件开发者和60年代底特律汽车工人。Baugues的认为取代底特律汽车工人的机器人将会一样地取代软件开发者。做为证据,他举了一些例子:电子商务的Shopify,在线日志的WordPress,还有信用卡集成的Stripe。尽管竞争愈来愈激烈,他说软件开发教育的需求已经爆发,伴随着像 TreehouseHacker School这样的公司提供低成本,高相关的课程,让学生能够在大学四年里用零碎的努力和代价为开发工做作准备:编程

不要感受良好。不要被一种语言锁住。不要过河拆桥。时常磨刀。学习软技能。创建听众。存点钱。人际关系。阅读。segmentfault

几乎在全部的观点上,Baugues都没有达到目的。首先,这里组装(无需技能的手工活)和软件开发(须要技能的脑力活)有性质上的区别,让前者自动化是不可避免的。自动化创造力比自动化组装困可贵多。并且底特律的汽车工人有工会,处于历史上最好的时期:工业上的功能需求旺盛,而且那时候自动化成本过高。对软件开发者二者都不成立——他们拒绝工会化(为了不把低端功能进行外包而受损),而且他们的功能不是轻易就能自动化的:它就是自动化自己。安全

集体的交涉和工会给了汽车工人一个温馨的中产阶级的生活。可是最终利润降低和开始受到全球竞争的冲击。汽车变得更加安全,易于操做,更高效,更可靠,更大众。汽车工人(还有他们的工会)也许料到了全球化,可是汽车工人发现本身在新的世界里还在用老一套规矩。另外一方面,软件开发者从1980年代已经步入全球化,这也许从第一天起就开始了。他们很清楚他们的工做自然的全球化,他们没有躲藏在认为本身是在一个有保护的有限的市场里工做的幻想中。因此彷佛Baugues的比较并不公正:不只软件开发和汽车制造有质的区别,并且工人缺少工会表明权,尽管全球竞争激烈,他们仍是沉浸在工会的汽车工水平的报酬中。app

可是自动化呢?在辉煌的将来,咱们都绝不费力地将API相互链接(显然没有报酬),这个怎么样?这里,Baugues将最近的5年看作是将来50年的蓝图,大声宣称软件开发自动化是既成事实。让咱们来看他给的例子。框架

WordPress,免费博客平台和开源博客软件,2007年中期腾飞,如今支持着(据有些统计)将近20%的网页。Baugues说WordPress能在“15分钟”里完成过去要“两个月”作的事,任何为本身或客户创建过WordPress站点的人都很清楚WordPress经常是网站现实功能的最小外壳(受权,发布,和标签)。它把那些网站最开始要作的枯燥的苦活自动化,无关任何困难的逻辑(那个留给定制的插件)。只发日志是零成本的——只用看看 Tumblr 就知道了。WordPress的真正价值在于提供成熟的网站框架。有个声称说其竞争项目 DrupalJoomla能够作得更加使人说服。ide

Stripe,一个出如今2010年的开发者友好的信用卡API,如今只是声称有少许知名度高的客户。到今天为止,它只是一个在支付处理界那些老牌竞争对手中更便宜,更简单的选择。自动化哪去了?相似地,Shopify,成立于2006年,是一个方便的类WordPress的在线产品销售平台。它仅仅是把过去自动化了的——网页模板,支付,多机托管拼凑到一块儿。Stripe和Shopify都不是将来软件开发自动化的好例子。因此Baugues提到他们想要代表什么还不清楚。这些产品是前一代的改良,更集成,更用户友好,可是他们都没有彻底自动化(也不是最软件即服务(SaaS)的产品),也没有抢开发者的工做。
请输入图片描述wordpress

自动化引发的焦虑和存在的恐惧由来已久,每每诞生于对历史的无知。在1960年代,伦敦丝绸纺织工积极抗议机器织布机——它能够大范围地减小对他们劳务的需求——甚至于要经过法律禁止它。然而,在17世纪中期机器纺织机已经开始取代手工纺织。做为回应,1675年八月,暴乱的纺织工人走上街头,毁掉了大批他们能找到的纺织机。学习

17世纪末期,雨格诺派教徒(法国新教徒)移民进入到纺织工业进一步激起了伦敦纺织工的愤怒,致使他们恐吓和排斥新来者。几十年后,在1760年代晚期,斯皮塔佛德的骚乱由纺织工组织起来,目的是要保持他们在自动化工业和法国竞争面前得到公平的报酬。骚乱者没有可以达成他们的目标,自动化步伐并未减弱。网站

19世纪早期,英国纺织工人组成的卢德派联合来反抗自动化。他们损坏和破坏机械并威胁要采起进一步的暴力。终止于1813年的审判,后来中止抗议了。从那之后,思想家诸如马克思,海德格尔,米尔达尔,芒福德,埃吕尔就批判过技术和自动化,然而世界依旧不停地自动化,带来了增加,稳定和安全还有快速增加的人口。这不是说自动化天生就是好或者良性,而是说它的效应尽管长远来看具备毁灭性,整体来讲仍是正面多余负面。更有意思的是自动化还没有带来工做简单,工时短的理想世界,若是有带来什么,那就是自动化给工人更大的压力,让他们比任什么时候候都努力工做。

由于Baugues提到了SaaS和互联网产品,那么只有谈谈互联网对软件开发的影响才算公平。互联网产业并无蚕食本身,而是在不断提升门槛。十年前,“网页开发”意味着懂HTML的应用知识,一点点CSS、Perl和PHP。五年前,它意味着精通HTML和CSS,一些JavaScript,还有PHP、Ruby、Java或者ASP中任何一门。今天,它意味着HTML和CSS的彻底分离(让设计师去考虑那些),精通PHP、JavaScript、Python、Ruby或者Java中的至少两门,还须要熟悉Git、包管理和持续集成这类东西。Web开发者比之前任什么时候候都作得多,并且还得不断地用业内最新的改进和变化去在高可靠性系统的约束和需求之间寻求平衡。他们线下的同行不须要太多重复自我发明。若是说有的话,就是过去十年已经看到了网页开发里最具重复性组件的自动化(就像汽车工人的工做)。如今还有程序员会重头开始写一个在线商店或者博客吗?毫无疑问,如今咱们有更多有趣的问题须要解决。
请输入图片描述

Baugues提到的编程学校和学院也忽略了这点。1990年代后期咱们已经这样把它做为一个产业来发展了。计算机科学大量提升招生名额,这个专业的毕业生享受了数年的高薪。而后市场崩溃,计算机科学招生降低,失业率暴涨,工资也回到他们的正常范围。那种在计算机科学专业的短时间投入值吗?毕业生发现他们毕业即失业。更重要的是他们后来有没有继续作开发或者是换成别的行业,把编程忘得一干二净?相似地,若是软件开发的市场明天崩溃,有十年开发经验的开发者转投别的行业不会发生。而是会有来自“骇客学校”新生产出来的毕业生,他们只参加了3个月的课程学习如何制做Python应用,他们会跑得最快。他们的知识基础薄弱——他们不但缺乏每一个开发者都要通过数年才获取到的关键的经验知识体系,并且还缺乏网页开发学校或者博客上学不到的计算机科学理论知识。若是比赛是经过编程教学机构,那今天的软件开发者没有什么可担忧的。这是一个没有入门门槛的领域,新一代不成熟的开发者不但不是威胁,并且是一个巨大的机会。

自动化不会对软件产业构成威胁。对于每一个封装某个业务处理的API,还须要写一个应用程序,适当的时候还须要有支持的API。对于每一个履行某种功能的库和app,还要有新用法。对于每一个须要被自动化的处理系统,还有一个开发者工做等着。今天存在的数量庞大的软件应该给悲观者一个暂停的机会 —— 也许有一个崭新的软件开发产业正在将旧的产业淘汰,这个产业不会关注诸如支付处理或博客这种乏味的问题,而是旨在用过去二十年中来之不易的成果来解决困难度以指数级增加的问题。

软件开发是为数很少的可以持续提炼自身的产业之一。不像制衣或医疗或汽车业,软件是难以捉摸且无形。软件开发者是问题的解决人,他们经常使用某种很抽象方式解决问题。它让一类特别乐观的人去想那种人才的自动化,而且让一类特别悲观的人去认为它永远这样。(It takes a special sort of optimism to consider that kind of talent automatable, and a special sort of pessimism to think it will ever be so.)


原文连接:Not the autoworkers of our generation
转载自:伯乐在线 - 奇风余谷

相关文章
相关标签/搜索