科普 | 什么?程序猿的饭碗被AI抢了?
© 视觉中国
编者按:AI和人类的共同发展,一直是一个焦点问题。作为本来就与AI领域密切相关的程序员,反而会被AI抢走饭碗?未来会发展成一个人人都会写代码的时代?AI的机器学习和程序员的常规编程是分道扬镳还是走向融合?本期微软智汇学院为你解答~
-----------------------------正文分隔线--------------------------------
1. 人工智能会让程序员失业吗?
当人工智能逐渐强大,大家开始担心:人工智能下一步又要在哪个领域干掉人类?
AI会让人类程序员失业吗?
对此问题持肯定态度的人并不在少数。
比如:美国橡树岭国家实验室在去年底发布的论文《人机混编的代码意味着什么?人类 2040 年还需要亲自编写代码吗? 》中表示:到了2040年,大多数的程序代码将由机器生成。
2040年距今天还有些距离,至少当下,AI没有让程序员失业,而是让程序员更贵了。
有段时间被刷屏的《AI 时代,为什么程序员这么贵》一文,csdn的蒋总认为:AI的发展,不仅不会使程序员消亡,反而使得各行各业比现在更加需要程序员——程序员的求职范围不再局限于软件或互联网行业,社会总需求激增,人才自然也就更贵了。
笔者对蒋总的观点蛮赞同的,当前的势头也确实如此。
不过,再过5-10年,程序员还会如今日行情吗?
2. 编程日益成为通用技能
个人认为:在不是很久远的将来(也许三五年,也许十来年之后),编程将从职业技能逐步蜕变为职场通用技能。
我们可以类比“识字”这个技能来看——
百十年前,大多数老百姓都不认识母语文字。当时,识字无疑一种职业技能。具备了这一技能,就可以获得一个比大多数人工作环境更优越,报酬也更高的职位。
但到了今天,识字率已经逼近100%,仅仅“认得字”,还是只能从事低端工作。
未来,编程将成为人人都会做的事情,职场中的一员,除了要具备听说读写本国语言的能力外,还得能够读程序、写代码——即使一时无法覆盖全员,至少是朝着这个方向发展。
而职业写代码的人,将越来越少。
类似的技能还有:驾驶——汽车工业发展起来后,职业司机会越来越少,驾驶成为了当代社会人们的一种通用技能。
3. 算法——编程的核心
从语言特征(词汇、语法等)的角度来讲,最复杂的编程语言远比最简单的自然语言简单得多。
我们学习各种自然语言是为了日常生活与人交流、收取信息,学习编程语言又是为什么呢?总不是为了说“您吃了吗?”或者“打点折”吧。
我们用编程语言描述事物、概念,以及它们之间的相互关系和运行方式,将大千世界转化为计算机能够理解的电信号,驱动硅晶金属构造的部件去完成任务!
编程的核心在于通过各种各样的算法去实现具体的业务逻辑,把繁杂的过程抽象化、可计算化。从纯粹软件的角度讲,甚至可以说:算法 + 数据 == 计算机程序。
受过计算机科班教育的人一定上过一门课:数据结构,这门课是计算机科学的基础,它的核心内容就是各式各样的算法。
最简单的如排序、查找;之上是进阶部分,例如动态规划、分治、回溯等策略,都是几代计算机科学家从解决现实问题中提取出的套路——这些才是编程的核心。
4. 从基础算法到机器学习
今天的程序员学习编程 ——
- 首先,要了解编程语言的语法特征;
- 并且,掌握编译或解释的过程,及编译器/解释器性能,调试方法、工具等;
- 然后,配合算法,实现业务逻辑——就可以做很多(几乎是任意的)事情了。
但把目光放长远些,只会这些,还是远远不够。
虽然目前基础算法和机器学习还是泾渭分明的两部分内容,但笔者认为,未来这两部分终将合流。
随着其落地点和应用越来越多,机器学习必将融入到常规编程之中。
反过来,能够让越来越多的人在编程中运用机器学习的成果,也是计算机技术发展的结果。
虽然人类对于用数值表达事物,用运算推演事物联系的研究已经持续了几千年。但在没有计算机的年代,稍许复杂的数值计算就需要数学家、统计学家的介入,普通人难以胜任。
后来,有了Excel之类的工具,一般人也可以负担常用的数据统计工作了。
机器学习也是一样的道理,大量工具、框架的涌现,使得运用算法处理数据,训练模型的过程越来越简单高效。
那些曾经高高在上的机器学习模型变得触手可及,只要写几行代码,就都能拿来就用了。这种便捷使得每一个会写程序的人,都可以轻松上手机器学习。
4. 修炼内功——掌握机器学习原理
工具虽多,要用对地方,还得掌握基本原理。
在使用统计工具的时候,我们可以很方便地计算均值、方差、中位数等等指标。但要让计算结果有用,总要先搞懂它们的定义、计算公式和物理意义。
同理,在机器学习领域,我们有若干历史悠久的经典模型。它们从实践中来,经历了千锤百炼,在数学层面被严格证明为有效。
那么,学习它们的模型函数、目标函数,从模型函数到目标函数的运算过程,各个函数相应的物理意义,最优化的方法……就成了使用它们的必要前提!
掌握了这些模型之后,再与特征工程结合,就可以用来支持现实业务了。
5. 学习机器学习的意义
计算机技术飞速发展,各种工具、框架、语言日新月异。但是蕴含在机器学习中的原理和公式推导却是稳定的,经得起时代更迭。
我们学习机器学习,不仅是为了找一个AI工程师的岗位,也是在掌握一种通识技能。
相信将来机器学习会像现在的四则运算一样,成为大众必备的基础能力。
另外,学习机器学习,也是一种对思维的训练。
用数值表达现实事物,用运算描述任务目标,再通过算法处理数据找到达到目标的最优化路径——这个思维的形成过程,远比学会模型本身更为难得。
经过这种思考训练内化出的思维能力,完全可能成为学习者相伴终身的助力。
--END--
了解更多前沿科技领域干货,欢迎点击👇
AI基础 | 那些年坑过你的函数,正在程序猿手上旋转跳跃闭着眼~