当前位置: 首页 > 科技观察

致程序员:我们这一代不是汽车工人

时间:2023-03-20 21:40:27 科技观察

软件开发的世界是一个奇怪的世界。尽管失业率低、工资高、前景好,但很明显,危险和衰退始终存在,或者迫切需要警惕。一些开发人员将最近软件开发的繁荣视为未来衰退的预兆,并开始写宿命论小说来警告这个垂死的圈子。GregBaugues之前写过一篇文章《我们这一代的汽车工人》。在其中,他将当今的软件开发人员与1960年代底特律的汽车工人进行了比较。Baugues认为,取代底特律汽车工人的机器人也将取代软件开发人员。作为证明,他举了几个例子:用于电子商务的Shopify、用于在线博客的WordPress和用于信用卡集成的Stripe。尽管竞争日益激烈,但他表示对软件开发教育的需求呈爆炸式增长,Treehouse和HackerSchool等公司提供低成本、高度相关的课程,学生可以通过零星的努力和费用在大学里度过四年。准备开发工作:不要对此感觉良好。不要被一种语言所束缚。不要过河拆桥。永远磨刀。学习软技能。建立一个观众。省点钱。人际关系。读。几乎在每一点上,Baugues都没有达到目标。首先,组装(没有技能的体力劳动)和软件开发(需要技能的脑力劳动)有着质的区别,前者的自动化是必然的。自动化创造力比自动化装配要困难得多。底特律的汽车工人成立了工会,而且正处于历史上最好的时期:工业的功能需求很高,而自动化在当时太昂贵了。软件开发人员也不是这样——他们抵制工会化(以避免外包低端功能的损害),并且他们的功能不容易自动化:它本身就是自动化。集体谈判和工会让汽车工人过上了舒适的中产阶级生活。但最终利润下降并开始受到全球竞争的打击。汽车变得更安全、更易于操作、更高效、更可靠并且更受欢迎。汽车工人(及其工会)可能已经预料到全球化,但汽车工人发现自己在新世界中按旧规则行事。另一方面,软件开发人员自1980年代以来就已经全球化,也许从第一天开始。他们很清楚自己工作的内在全球性,并且他们不会隐藏在他们在受保护的、有限的市场中工作的幻想之下。因此,Baugues的比较似乎并不公正:不仅软件开发和汽车制造在质量上有所不同,而且工人缺乏工会代表,尽管全球竞争激烈,但他们仍沉浸在工会化的汽车工人级别的薪酬中。但是自动化呢?一个我们都毫不费力地将API彼此连接起来(显然没有报酬)的美好未来怎么样?在这里,Baugues将过去5年视为未来50年的蓝图,大声宣告软件开发自动化已是既成事实。让我们看看他举的例子。WordPress是免费的博客平台和开源博客软件,于2007年年中起飞,现在(根据某些统计)为所有网页提供了近20%的支持。Baugues说WordPress可以在“15分钟”内完成过去需要“两个月”才能完成的工作,任何为自己或客户建立WordPress网站的人都知道WordPress通常是围绕网站实际功能(授权、发布)的最小外壳,和标签)。它自动完成了那些网站首先要做的繁琐工作,没有任何硬逻辑(留给自定义插件)。只发布一个博客成本为零——看看Tumblr就知道了。WordPress的真正价值在于提供了一个成熟的网站框架。有人声称Drupal和Joomla的竞争项目可以做得更有说服力。Stripe是2010年出现的对开发人员友好的信用卡API,现在只拥有少数知名客户。时至今日,在支付处理领域的老牌竞争对手中,它只是一个更便宜、更简单的选择。自动化在哪里?同样,成立于2006年的Shopify是一个类似WordPress的便捷平台,用于在线销售产品。它只是把过去自动化的东西放在一起——网络模板、支付、多主机托管。Stripe和Shopify都不是未来软件开发自动化的好例子。所以Baugues提到不清楚他们想要展示什么。这些产品是上一代的改进版本,更加集成和用户友好,但它们都不是完全自动化的(大多数软件即服务(SaaS)产品也不是),也没有抢开发人员的工作.自动化引发的焦虑和存在恐惧由来已久,通常源于对历史的无知。20世纪60年代,伦敦丝绸织工积极抗议机械织机——这可能会大大减少对他们劳动力的需求——甚至通过法律禁止它。然而,在17世纪中叶,机器织布机开始取代手工编织。作为回应,骚乱的织工于1675年8月走上街头,摧毁了尽可能多的织布机。17世纪后期,胡格诺派(法国新教徒)移民进入纺织业,进一步激起了伦敦织布工的愤怒,导致他们恐吓和排斥新来者。几十年后,在1760年代后期,纺织工组织了Spitalfields的骚乱,以在自动化工业和法国竞争面前保持公平的报酬。暴徒未能达到目的,自动化的步伐并未减弱。19世纪初,一群英国纺织工人卢德分子联合起来反对自动化。他们破坏和摧毁机器并威胁进一步的暴力。审判于1813年结束,抗议活动随后停止。此后,马克思、海德格尔、缪尔达尔、芒福德、埃吕尔等思想家对技术和自动化提出了批判,但世界仍在继续自动化,带来增长、稳定和安全以及快速增长的人口。这并不是说自动化本质上是好的或良性的,而是说它的影响虽然从长远来看是毁灭性的,但通常是积极的而不是消极的。更有趣的是,自动化还没有带来工作轻松、工作时间短的理想世界。如果有的话,自动化给工人带来了比以往任何时候都更加努力工作的压力。既然Baugues提到了SaaS和互联网产品,那么谈互联网对软件开发的影响也就情有可原了。互联网行业不是在蚕食自己,而是在不断提高门槛。十年前,“Web开发”意味着具备HTML、一点CSS、Perl和PHP的应用知识。五年前,它意味着精通HTML和CSS、一些JavaScript以及任何PHP、Ruby、Java或ASP。今天,这意味着HTML和CSS的完全分离(让设计人员考虑这些),精通PHP、JavaScript、Python、Ruby或Java中的至少两种,并熟悉Git、包管理和持续集成等东西。Web开发人员比以往任何时候都做得更多,并且不断平衡高可靠性系统的约束和需求与行业的最新改进和变化。他们的线下同行不需要太多重复的自我发明。如果有的话,过去十年见证了Web开发中最重复的部分的自动化(比如汽车工人的工作)。有没有从头开始编写在线商店或博客的程序员?毫无疑问,现在我们有更多有趣的问题需要解决。Baugues提到的编程学校和学院也忽略了这一点。我们在1990年代后期将其发展为一个行业。计算机专业招生人数大幅增加,该专业的毕业生连续数年享有高薪。然后市场崩溃,计算机科学入学率下降,失业率飙升,工资回到正常范围。这是对计算机科学专业的短期投资吗?毕业生发现他们毕业后失业。更重要的是,他们是继续做开发还是转行,忘了编程?同样,如果明天软件开发市场崩溃,拥有十年经验的开发人员也不会跳槽到另一个行业。取而代之的是“黑客学校”的应届毕业生,他们只参加了3个月的课程来学习如何制作Python应用程序,而且他们跑得最快。他们的知识基础薄弱——他们不仅缺乏每个开发人员都需要多年才能获得的关键经验知识体系,而且还缺乏无法在Web开发学校或博客中学到的计算机科学理论知识。如果比赛是通过编程教学机构进行的,今天的软件开发人员就没有什么好担心的了。这是一个没有进入门槛的领域,新一代不成熟的开发者不仅是威胁,更是巨大的机遇。自动化不会对软件行业构成威胁。对于每一个封装了某个业务流程的API,都需要编写一个应用程序,并在适当的时候提供配套的API。对于每个实现某种功能的库和应用程序,也有一个新的用法。对于每个需要自动化的处理系统,还有一个开发人员的工作在等待。当今存在的大量软件应该让悲观主义者停下来——也许有一个新的软件开发行业正在淘汰旧的软件开发行业,这个行业不关注支付处理或博客等普通问题,而是旨在使用解决难度成倍增加的问题,是过去二十年来之不易的成果。软件开发是为数不多的可以不断自我完善的行业之一。与服装、医疗或汽车不同,软件是难以捉摸和无形的。软件开发人员是问题解决者,他们经常以一些非常抽象的方式解决问题。它让一个特别乐观的人想到那个天赋的自动化,让一个特别悲观的人认为它会一直这样。(认为??这种人才可以自动化需要一种特殊的乐观情绪,而认为它会永远如此需要一种特殊的悲观情绪。)原文链接:http://imsky.co/blog/not-autoworkers/翻译链接:http://blog.jobbole.com/47588/