编程语言
首页 > 编程语言> > 算法通识课发刊词:人机互动时代,懂点算法才能赢

算法通识课发刊词:人机互动时代,懂点算法才能赢

作者:互联网

你好,我是吴晶辰,欢迎来到《算法通识课》。
算法对你来说,可能是购物网站上推荐的“猜你喜欢”,是汽车导航规划的“最佳路线”,是餐厅里的自动点菜服务。在人机互动时代,你享受着算法带来的种种便利。
作为一个普通消费者,你不需要懂算法,不需要知道算法是怎么工作的,享受算法的便利就好了。但如果换一个身份,你是生产者呢?
人类提高效率的历史,是一部工具进化史。原始人用棍棒,农业时代用铁器,工业时代用蒸汽机。每一次工具的进化,最先解锁工具秘密的人,都会率先实现巨大提升。
而我们已经身处智能时代。无论你从事什么工作,不管是跟计算机直接相关的研发,还是表面看是跟人打交道的销售、咨询、教育、服务和管理,人机互动已经无处不在。而算法,就是智能机器的最大秘密。
你可能会说,我又不是程序员,我不会写代码啊。你别担心,“懂算法”,并不是说你要知道关于算法的细节,你得会Java,会Python才行,不是这样。我们要掌握的,是算法思维,是算法的逻辑和工作原理。
说一个最简单的例子。我们小时候算加法题,1加2,加3,一直加到10等于多少?最直接的方法,就是从头做9次加法。聪明一点的办法呢,是把1和10相加,2和9相加,一直到5和6相加。一共5对,每对的和都是11,合起来就是55。
不知道你还记不记得,这个方法有个学名,叫等差数列求和公式。用这个方法,不管等差数列里的元素有多少,求和的速度都比一个一个做加法更快。
其实,等差数列求和公式,就是一个算法。能在处理这个问题时想到这种解决方法,就是一种算法思维。当然,这个例子太简单了,算法科学家在实际中使用的算法和解决的问题,都复杂得多。
有和没有算法思维,差别在哪呢?我举个例子。
假如你开了一家网店,是个网上超市,做得很红火,有一个挺大的仓库。那请想象一下,你会怎么摆放仓库里的货物呢?
你是不是会把它设计成一个真实超市的样子?酸奶、牛奶放在一起,锅碗瓢盆放在一起,杂志和书放在一起。这么摆放最容易管理,发货的时候也很容易找到需要打包的东西。
听着很有道理吧?但如果是有算法思维的人,他不会这么摆放。他会怎么摆呢?他摆放的位置可能让你觉得很混乱,书旁边可能是婴儿的纸尿裤,再旁边又可能是个足球。
这是为什么?因为在有算法思维的人看来,商品在仓库里面的摆放,是一个效率问题。既是时间效率问题,又是空间效率问题。
什么意思呢?你看,如果像超市一样,先分区,不同的区域码放不同的商品。那取货就会变得很花时间。
比如一个客户买了一瓶汽水和一本书,那取货的员工就得去两个区域,才能完成取货,很花时间。但如果汽水和足球都是在仓库里随机分布的,那走很短距离就能找到两件商品的概率就高得多,取货的速度就快得多。这说的是时间效率问题。
空间效率也类似。如果先分区,比如说生活用品一个区,书籍杂志一个区。但因为电商客户的需求很不稳定,没准最近要开学了,各种教材的需求量增高,那书籍杂志需要的存储空间就变大了,超过了给它划分的空间份额。
这时候,到底是借用生活用品的分区,还是不借用呢?借用的话,就得不断重新分割仓库的区域,麻烦。不借用的话,仓库空间就不能得到最大化的利用。但是如果随机摆放商品,这两个问题就都能解决。
实际上,这种仓库管理模式,就是如今全球最大的网上零售商之一亚马逊在用的模式。
你看,重要的并不是某个特定的算法,而是算法背后的思考方式。有了这套思考方式,你才能重新定义业务问题,找到新的解决方案。而能不能写成具体的算法,只是怎么解决业务问题的方案而已。
算法工程师,就是用这套思考方式来解决问题的。而这门《算法通识课》,讲的就是这套思考方式。能不能有效运用算法思维,是未来高手和普通人的重要差别。
那为什么我可以来讲这套思考方式呢?我和你介绍一下我自己。
我就是一位算法科学家,也可以说是一位算法工程师,因为我研发的算法会应用到实际生产中去。我是美国密歇根大学应用数学方向的博士,现在在亚马逊公司西雅图总部的供应链管理部门工作。到2021年,我在亚马逊工作7年了。
我来做这门课,也有一部分原因来自我在工作中观察到的一个现象,可能你也注意到过。
在公司里,产品经理和算法工程师经常“不对付”。
产品经理觉得算法工程师“不懂业务、不说人话”,算法工程师觉得产品经理“不懂技术、需求变来变去”。我觉得这不是一个谁对谁错的问题,就是思考方式不一样的问题。
你可能也经常要和算法科学家或者工程师打交道,有了这套思考方式,你们合作起来不会再有“鸡同鸭讲”的感觉,算法工程师会把你当成自己人。
那这套思考方式,我会怎么讲给你呢?
我把它分成了四个模块。第一模块,认识算法。你会对“如何评判算法”有个整体上的认识。
第二模块是怎么设计一个算法。我不能迅速地让你成为算法工程师,但在这方面的认知,你可以和资深的算法工程师同步。
第三模块是不同的算法策略。算法策略是算法工程师解决问题时的思想,我希望我对这些算法思想的理解,能让你在观察生活时有一个新的视角。
第四模块是算法前沿。我会给你介绍如今最炙手可热的机器学习类算法,看看机器是怎么获得人类还不知道的新知识的。
这四个模块集合起来,就是这门《算法通识课》,就是这套完整的算法思维了。
人机互动时代,机器不是用来怕的,而是用来爱的。加入这个课程,懂点算法,做这个时代的赢家。
我是吴晶辰,我们课程里见。

标签:工程师,仓库,通识,摆放,算法,思考,懂点,这套
来源: https://blog.51cto.com/u_15277063/2929939