Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >10年后编程还有意义吗?

10年后编程还有意义吗?

作者头像
用户1667431
发布于 2018-04-18 03:16:38
发布于 2018-04-18 03:16:38
6500
举报
文章被收录于专栏:大数据钻研大数据钻研

这个是Quora上提出的一个问题。随着AI在近年来成为热门话题,并且在AlphaGo自学围棋击败了人类近10年最好的围棋选手之后,有人开始提出这个问题。具体来说这个问题有三层意思:

  • 到2025年程序员还有没有用,到那个时候所谓的“程序员”是指什么?
  • 代码本身还有没有用,到那时候代码会变成什么样子?
  • 机器智能会不会取代(目前意义的)代码或程序员两者的其中一个或者全部?

大家基本上倾向于认为,到2025年时编程仍然有意义,但有人说2025年以后情况可能就不是这样了。

而那些认为编码将死、程序员将失业的人的理由是机器智能会像今天的程序员一样具备自学编程的能力。比如说AlphaGo击败李世石就是一个机器学习能力的证据。

我们摘编了一些人的回答,也希望听听你们的看法。

Code.org CEO Hadi Partovi:

绝对的。编程不仅在10年内还有意义,而且还会比今天更重要。不过编程语言的语法会变得越来越简单。刚开始的时候,编程是在纸板上面打孔(可编程打孔机)。然后形式变成了这个样子:00101010101。而现在看起来更像英语。随着编程语言变得越来越像英语,这种东西学习起来会越来越容易,越来越不神秘,所以也会越来越流行。同时,随着计算机渗透到我们的日常生活里面,告诉这些设备我们想做什么,发明新的用例也会变得越来越流行。

但是在可以用自然语言跟机器进行对话并且让它们完美理解并执行从未训练过的复杂任务这些事情上我们还有很长的路要走(好几十年)。当然,一些简单的、预编程好的任务是没问题的,比如“告诉我去加油站最近的方向。”

但是要想教计算机做从来没做过的事情,还是需要对如何跟这种特殊的计算机程序员进行沟通有特殊的理解,以及要有描述算法的计算思维。如何设计循环或条件供计算机执行任务或进行决策的语法也许会变,但底层的基础概念估计很久都不会消失。

自1999年开始就一直开发web门户的Christoph Richter:

Fred Brooks 1975年的一篇文章说软件开发永远都是复杂的。虽然有一些东西可能会变容易,但核心的东西永远都不会容易。《人月神话》这本书说的就是软件工程这项核心挑战一直都难以克服—没有银弹,40年过去了,至今情况依然如此。

Fred Brooks 1975年的一篇文章说软件开发永远都是复杂的。虽然有一些东西可能会变容易,但核心的东西永远都是很难的。《人月神话》这本书被誉为“软件工程的圣经”,40年过去了,那部书里面的观点仍然经得起考验。

有30年技术从业经验,曾当过工程师、产品主管、CTO、CEO的Greg Kostello认为:

10年内编程还是有意义的,但是20年内还有可能性,但30年内可能性也许没有了。

在机器学习的推动下我们现在进入了软件开发的新时代。IBM的Watson和Google的AlphaGo已经证明数据>算法。或者更精确地说,数据就是算法。但是现在你需要非常特殊的技能才能开发出机器学习解决方案。工程师和数据科学家仍然需要对机器学习算法进行编程,但最终同样的系统会教它们学会如何通过分析自己的代码来改进自己。

未来10年对软件工程师的需求还会更强劲,因为初创企业和大公司都把精力聚焦在把算法驱动应用转为数据驱动应用上。通过固定算法来处理信息安全已经太复杂了,需要机器学习即时学习并挫败新的攻击。当然,像无人车这样的计划已经在尝试这方面的努力。Google无人车到处转悠是因为它们需要收集数据来帮助系统学习。但这需要软件工程师和数据科学家一起协作来设计收集数据的系统。他们是这种新办法的先驱。

所以在近期对懂机器学习、知道利用大数据、传感器数据以及视觉和语音的软件工程师的需求会非常旺盛。如果你能够及时调整自己的技能的话,你的职业生涯并无近忧。

中期的情况略为模糊一点。从汇编语言、编译语言到脚本语言,软件每阶段的重新调整都会导致对程序员需求的增加。有点脑子懂基本编程技能的人都能找到工作。但新的工作需要不同的技能集。如果你在设计AI系统,高等数学是必要条件之一。如果你用AI系统,理解如何有效利用数据就很重要。像IBM、微软和Google这样的公司都在设法让这些系统对并不掌握那些技能的程序员来说更容易使用,这就导致了近期内变成工作岗位的爆发。而且由于现在产品设计师可以从更高的层次解决问题,制定智能解决方案,可以完成的事情的范围将会扩大。但是,那些技能不是入门级的。如果你对抽象思维和跟数据打交道不熟,那你的工作就跟无人车变得无所不在之后的Uber司机岗位一样岌岌可危。

从长期来看,应用会自己写自己。问题是,应用设计是由可最大发挥AI系统效能(因为理解问题解决机制)的程序员来做还是由不编程但擅长描述待解决问题的产品设计师来做,还是会涉及到其他技能?这个我还看不清楚。

John Brothers,有20年以上经验的软件开发者和架构师:

到2025年我们不仅还需要软件开发者,而且我觉得到时候软件开发可能还会成为地球上面最后一项“有用”的工作。当然,“开发驱动机器人的软件”是未来这种工作的一部分。

随着时间的推移,我们发现可以有越来越多的方式来用软件替代过去的脑力劳动。认为这种现象未来会停止出现是没有理由的。

反对者可能会说:“你怎么能设计一个程序来替代脑外科医生呢?”我的回答是:“不知道。但你知道什么事情比脑外科手术更难吗?创建一套可捕捉脑科手术涉及的所有关键决策、启发试探法以及算法的逻辑模型。”换句话说,很多任务都很难,但是在软件中捕捉那些任务更难。只要想想你就会发现只要有难度的任务要进行自动化,就会有软件开发者去进行尝试。比方说,地球上最后一项工作的自动化(注:这可真是程序员的自杀式工作啊)。

有人可能会说:“未来只要有合适的工具,编程应该是很容易的事情。”知道我怎么想吗?我想为你祈祷。

以为编程可以做得很简单的看法实际上非常目光短浅。他们的依据大概是这样的:“X类问题很容易建模。因为,任何人只要有合适的指导,都能利用软件对该问题建模。”

对于特定类型的问题来说也许是可以的。但是软件开发有趣的地方在于我们在不断制造新的问题类型,我们制造问题的速度跟找到老问题的自动化解决方案的速度一样快(如果说不是更快的话)。

深度学习量子计算机都是我们推进软件潜力的例子,这些东西在20年前我们还只能想象。而那只是其中两个而已—我们今天教计算机做的各种事情在过去都只能靠想象。没有理由认为这种情况会很快停止出现。我们在扩大用软件可以做的事情的领域,这种扩张的速度要比我们自动化现有流程的速度要快。这种情况还将持续几十年。

自1978年就开始编程的Steve Traugott:

2025年编程当然还有用,而且作用可能还更大。

我的观点可能会孤立无援,这里我补充一些事情希望能有助于说明观点。至少有一门语言到2025年会发挥更大作用,到了2050年这门语言可能还会被重度使用,甚至到2100年还会存在。鉴于其部署方式,Javascript本身几乎已经成为了互联网协议,web浏览器对它的支持不但是必须而且看起来是没有限期的。只要它还有浏览器支持,web网站就会继续使用它,导致了对兼容性期望无休止的循环。唯一有可能打破这一循环的是web不用了。这样的事情是不大可能会发生的。

不管你喜不喜欢,事实上Javascript已经成为了web的汇编语言。

剩下的唯一问题是开发者什么时候从编写原生Javascript转到写其他可编译为javascript的语言?怎么转?(类似于过去几十年从机器语言转为汇编语言最后再转为C的趋势)

从JavaScript转到其他编译语言的运动实际上已经在进行当中,但是更高级的代码还是要靠手工编写(注:所谓由AI编写代码所以不需要人写其实是个伪命题,其实人向AI引擎描述问题还是通过编码来完成的,比方说类似prolog、lisp或别的特定领域语言),仍然需要编译为JavaScript才能在浏览器执行。同时鉴于JavaScript引擎还需要保留,所以我认为在几十年内我们还会看到可怕的、嵌套的、手工编码的匿名JavaScript函数一直存在。JavaScript已经变成了另一个COBOL,只是可读性更差但部署范围更广。

我们可以拿B-52轰炸机来对比一下。这款90年前设计的轰炸机预计还将服役到2040年。C语言的历史也有45年了。

绝对如此!我只能想象编程会变得越来越重要。关于编程的本质Edsgar Dijkstra有一条名言:

(软件危机的)主要原因在于机器已经强大了好几个量级!坦率地说,只要没有机器,编程根本不成问题;当我们只有比较弱的计算机时,编程的问题不大,现在我们有了庞大的计算机,编程的问题也变得一样大了。从这个意义上来说电子业一个问题都没有解决,反而是制造了如何使用其产品的问题。

对此我的思考是人类文明对代码的依赖程度有多大。我们的世界已经有那么多的东西是由编程驱动的(软件蚕食世界)。从这个意义上来说,我们已经制造了维护软件的问题,这意味着我们永远都需要更多的程序员。但随着计算变得越来越强大,我们写的软件也会变得越来越强大,从而形成一个需求的良性循环。只要我们需要软件,我们就会需要程序员。所以2025年是编码不仅还有用,而且还会更加重要。我认为所有对未来10年程序员的需求数量的估算都是小了。软件蚕食世界,所有能生存的公司都将是技术公司。我们还看到程序员类型的多样化,从数据科学到虚拟现实,全新的编程领域正在不断涌现,这种趋势为什么会停止呢?

此外,我还认为代码是一种媒介而不仅仅是一项工作,它是人类这个物种的一种沟通的新方式。我们对这个世界的问题和现象用代码来建模。从这个意义来说,编码跟表达关系更大。而我们永远都不会停止用这种方式表达自己。所以我认为我们使用代码的方式会越来越丰富—会超出软件这个行当进入到学习的每一个领域。我想在25年内我们教数学、化学、生物、物理、几何以及大部分的STEM课程都将通过代码来完成。那时候我们学编程未必是为了写应用,而是为了在软件领域以外表达想法。代码是信息时代的通用语,我看这一点近期内不会有任何改变。

研发软件工程师Lakshmi Narasimhan Ramakrishnan:

简答:是的!但不是今天的样子。

从机器语言、到面向对象语言,编程的演进历史就是不断地抽象。这一路上我们还在操作系统的作用下得以开发出更好的基础设施。大家很快意识到自己可以在这些基础设施之上编写出更复杂的程序,然后继续开发出更复杂的软件架构

然后有了互联网(也是基于软件协议开发的),这个东西使得对地球另一端的计算机进行编程/沟通成为了可能。互联网起到了一个强大的基础设施的作用,围绕着它开发出了许多的软件,在今天,我们把云视为一台庞大的计算机(接入互联网运行分布式操作系统的计算机子集)。

过去几年机器学习和人工智能成为了一个热门话题。其中的出现的一个误解是AI会发展到不需要人来编程的地步。这是不对的。我的观点是AI能发展到做出比人更好的决策(尤其在问题搜索空间庞大的情况下)。比如Google的AlphaGo就是证据之一。我会吧AI看做建设更复杂基础设施的工具。而这反过来又会帮助我们开发出更好的软件。

我的意思是说,这是一个恶性循环。软件演进然偶帮助我们创建出更强大的基础设施进而引领我们走向更高层次的抽象,反过来又让我们做出比今天更复杂的软件,如此周而复始。所以编程始终都是有重要意义的,但是抽象和你试图用代码解决的问题会不断发生快速演变。(注:这个观点跟英国量子物理学家戴维·多伊奇的《无穷的开始:世界进步的本源》有些类似,尽管现象亘古不变,但我们始终都在寻找好的解释。此外,大家可以加入488048032交流群,互相分享一下关于JAVA方面的知识。)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-07-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据钻研 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
AI、自动化来势汹汹,“码农”将何去何从?
【编者按】:AI、自动化,这些技术进步不仅威胁到到了其他行业的工作,甚至有声音认为,连开发这些技术的程序员其自嘲的“码农”地位都将不保。比方说,OpenAI 前研究科学家 Andrej Karpathy 就认为,在AI引领的软件2.0趋势下,传统程序员真的有可能要失业了。不过,跟 Tyler Elliot Bettilyon 相比,这些都是对程序员未来的片面看法,相对而言,他对程序员未来的工作前景分析更加全面客观,值得从业者好好看看,思考未来作何选择。 我的一位朋友最近提出了一个问题,这样的问题我在不同场合
机器人网
2018/04/19
9270
AI、自动化来势汹汹,“码农”将何去何从?
程序员这个职业会是另一个即将破裂的泡沫?
IT和一些低级别的编程工作最终会消失吗?这个工作是一个巨大的即将破裂泡沫吗?本文作者对此做了详细的分析。 一位朋友最近向我提了个问题,这个问题我曾经在不同的论坛上听到过,虽然问题的形式不太一样: “你认为IT和一些低级别的编程工作最终会消失吗?这个工作看起来有点像一个巨大的即将破裂泡沫。我认为,科技和低水平计算机科学相关工作能够“受人尊敬”以及保持高薪的唯一原因是这个行业中充斥着晦涩难懂的专业术语和公众对计算机的无知,而这两种情况在未来的10年里都将消失。” 这个问题既跟技术工作的未来相关,也是对软件工
CSDN技术头条
2018/02/06
1.2K0
程序员这个职业会是另一个即将破裂的泡沫?
程序员这个职业会是另一个即将破裂的泡沫?
IT和一些低级别的编程工作最终会消失吗?这个工作是一个巨大的即将破裂泡沫吗?本文作者对此做了详细的分析。
IT阅读排行榜
2018/08/17
4660
程序员这个职业会是另一个即将破裂的泡沫?
程序员这个职业会是另一个即将破灭的泡沫吗?
本文讨论了技术职业的未来前景,特别是随着机器学习和人工智能的兴起,程序员需要不断学习新技能以适应变化。作者认为,IT行业将不断变化,那些能够适应变化并学习新技能的人可能会获得更高的收入。同时,文章也指出,从事技术职业需要活到老学到老,并且需要关注行业动态和技术趋势。
企鹅号小编
2017/12/28
8230
程序员这个职业会是另一个即将破灭的泡沫吗?
关于人工智能、编程以及机器学习
人工智能会让程序员失业吗? 当人工智能逐渐强大,大家开始担心:人工智能下一步又要在哪个领域干掉人类? AI会让人类程序员失业吗?对此问题持肯定态度的人并不在少数。 比如:美国橡树岭国家实验室在去年底发
叶锦鲤
2018/12/13
7130
关于人工智能、编程以及机器学习
40岁+,你还有编程吗?
美国劳动力的中值年龄是42岁,而StackOverflow的一项有关年龄的调查表明,40岁之后的开发人员只占开发人员总数的13%。那么其他人到哪里去了?他们被解雇了或者上升到管理岗位了吗?软件开发对于过了40岁的人来说,是不是就意味着终结? 本文罗列了10位年龄超过40岁的老程序员们的故事,他们都是顶级的软件开发者,拒绝从事管理岗位,仍然活跃在开发一线,将编程作为生活收入的主要来源。本文内容来自Belisoft博客,并已获得作者的翻译授权,查看原文SOFTWARE DEVELOPERS AFTER 40,
前朝楚水
2018/04/03
1.6K0
40岁+,你还有编程吗?
未来十年,机器学习工程师会消失吗?
其实,我们在每个领域一开始都会扮演着专业的角色,但随着时间的推移,就变得普通起来,换一句话说,就是说的多了大家也就见怪不怪了。
AI科技大本营
2020/08/24
4940
未来十年,机器学习工程师会消失吗?
软件吃软件,编程工作会越来越多吗?
作者认为,大型软件和通用软件越来越强大,将会取代小软件和专门软件,相当于把后者都吃掉了。
ruanyf
2020/06/16
3640
软件吃软件,编程工作会越来越多吗?
为什么编程更关注内存而很少关注CPU?
我们知道,我们编写的程序,不管是什么编程语言,最后执行的时候,基本上都是CPU在完成。之所以说基本上,是因为还有GPU、FPGA等特殊情况。
轩辕之风
2023/09/05
2970
为什么编程更关注内存而很少关注CPU?
机器学习与统计学的争论,有意义吗?
有的学者认为机器学习只是统计学披了一层光鲜的外衣。而另一些讨论则认为涉及使用逻辑回归或者广义线性模型(GLM)的可以称作机器学习;否则就不是。还有一些观点认为:是否执行元分析或许是区分两个领域的一个标准。
AI科技评论
2020/02/21
7130
机器学习与统计学的争论,有意义吗?
“通才架构师”的消亡:从无到有,再到上百万个框架
作者丨 Vicki Boykis 译者丨王者 编辑丨 Tina “如果有更多的高级工程师能够承认他们并没有把所有的事情都搞清楚,初级工程师就不会有那么多不切实际的期望。” 架构师是技术团队的枢纽,担负着成功交付可用的解决方案的任务。以前大家认为架构师可能是一个通才,有一定的深度,也有不同方案的广度,同时具备足够的经验,知道在哪些地方有可能出现问题。但软件开发发展到现在,涉及的领域越来越多:前端、后端、集成测试、云、物联网、运维(监控)等等,有无限的炒作和不断出现的“上百万”技术框架。 知识不断膨胀后的世界,
深度学习与Python
2023/04/01
2300
“通才架构师”的消亡:从无到有,再到上百万个框架
为什么我要在2018年学习Python?
源 / Codecademy 译 / 36氪 从网页编程到时髦的人工智能,机器学习,这个享有"瑞士军刀(万能工具)"盛誉的Python语言, 你学会了吗编者注: 根据维基百科的解释,"Python是一种广泛使用的高级编程语言,由吉多·范罗苏姆创造,第一版发布于 1991 年。Python 的设计哲学强调了代码的可读性和简洁的语法。" 随着大数据,人工智能的兴起,越来越多的人也开始研究起这门语言。 以下这篇文章编译自Alexus Strong在在线学习编程网站Codecademy上发表的文章Why I’
顶级程序员
2018/07/23
3690
为什么我要在2018年学习Python?
最新的十大编程语言排名和趋势分析
排名第1,当然非Java莫属了!Java在企业级应用中被广泛使用,并且拥有强大的生态系统。它也被认为是最容易入门的编程语言之一。
35岁程序员那些事
2023/08/18
3.4K0
最新的十大编程语言排名和趋势分析
调查全球 98,000 名程序员发现,PHP 遭厌弃,前端岗已饱和!
近日,位于美国旧金山的知名招聘公司 Hired(专门为 Facebook、Uber 等顶级公司招聘人才)在走访全球 10,000 多家企业、邀请 98,000 名求职者参与其中之后正式发布了《2019 年软件开发者现状》调查报告,在以人工智能、机器学习、区块链、物联网等为首新技术打开互联网新纪元之际,与全球的开发者共同探讨技术圈最为流行的开发技能,编程语言以及市场最前沿趋势。
纯洁的微笑
2019/05/06
7040
调查全球 98,000 名程序员发现,PHP 遭厌弃,前端岗已饱和!
成为机器学习工程师最基本的五项技能
随着越来越多的公司采用人工智能、机器学习这些技术,机器学习工程师——即开发人工智能机器以及能够学习应用知识的系统的高级程序员的需求量很大。这些专业人员需要执行复杂的编程,并使用复杂的数据集和算法来训练智能系统。
AiTechYun
2019/05/17
7580
成为机器学习工程师最基本的五项技能
我的一年数据科学学习之旅
Eric Weber(没错,就是那个养着一条可爱小狗的帅哥)最近在 LinkedIn 上发表了一篇文章,讲了十件他希望开始数据科学职业时能少做的事情。本文就是我对这十件事所经历的过程。你应该先读读他的文章。下面是截图。
guichen1013
2022/09/22
3510
我的一年数据科学学习之旅
ChatGPT 一周年:生成式 AI 出现后,我决定以后砸锅卖铁都不让后代当程序员了
就像我的父母坚信我能读书写字一样,我理所当然地认为,我的孩子也一定能像我一样编程。编程是一门新兴艺术,也是一门基本技艺,而且正日益变得重要。熟练掌握编程是对孩子读写能力有益的补充,还能让他们保持就业竞争力。在我写下这些文字时,我的妻子怀着我们的第一个孩子,离预产期大约还有三周。我是一名专业的程序员,但等到孩子能够打字的时候,编程作为一项有价值的技能可能已经从这个世界上淡出了。
深度学习与Python
2023/12/04
2240
ChatGPT 一周年:生成式 AI 出现后,我决定以后砸锅卖铁都不让后代当程序员了
AI会让AI工程师失业吗?
自从AI出现之后,人类对于AI的担忧就从来没有消停过,特别是AlphaGo的横空出世将AI带到大众跟前,对AI的争论就更加激烈。对于普通大众而言,AI是否会毁灭人类不需太关心,但是对AI是否会取代人类工作就异常敏感了。夸张的是,现在某些高考填报志愿指南就有一个考量:这个职业是否会被AI取代,比如平民考生填报志愿的3个关键点这篇文章就认为将被AI取代的职业有:财会、英语、法律、人力资源等等,不建议报考。
云水木石
2019/07/01
6070
AI会让AI工程师失业吗?
代码的终结,我们很快就能像调教狗一样来调教我们的计算机
在发明计算机之前,大部分的实验心理学家都认为大脑是一个不可知的黑盒子。你可以分析一个实验对象的行为,例如,一旦听到铃铛想起,狗便会分泌唾液。但是思想、记忆和情绪这些东西该如何分析呢?这些东西比较神秘莫
用户1667431
2018/04/18
5620
代码的终结,我们很快就能像调教狗一样来调教我们的计算机
超过三十岁就不适合写代码了?看看国外程序员怎么说
随着时间的推移,我注意到的一点是,我不再像刚开始工作时那样朝气蓬勃、意气风发和精力充沛。随着年龄的增长,对我的工作要求越来越高,每天都需要学习新的东西,随着时间的推移,我的大脑开始变得不如从前,但最重要的是,我比以往任何时候都需要更多的睡眠。作为开发人员工作变得更加困难。虽然我还可以解决这个问题,但对我的职业前景还是有些怀疑。
三分恶
2020/09/22
5230
推荐阅读
相关推荐
AI、自动化来势汹汹,“码农”将何去何从?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档