09 | 每个工程师都应该了解的:大数据时代的算法
朱赟
该思维导图由 AI 生成,仅供参考
开了这个专栏之后,经常有读者问算法相关的问题。
能不能讲讲算法在工作中的运用?你个人学习算法的过程是怎样的?我对算法还是有点怕。除此之外,你认为大学是应该多花时间学应用技术还是理论知识呢?谢谢。
今天就来聊聊我自己学习算法的过程,以及算法在实际工作中的应用。
以前,我们认为大数据总是优于好算法。也就是说,只要数据量足够大,即使算法没有那么好,也会产生好的结果。
前一阵子“极客时间” App 发布了一条极客新闻:“算法比数据更重要,AlphaGo Zero 完胜旧版。”新闻的内容是谷歌人工智能团队 DeepMind 发布了新版的 AlphaGo 计算机程序,名为 AlphaGo Zero。这款软件能够从空白状态开始,不需要人类输入任何命令,便可以迅速自学围棋,并以 100 比 0 的战绩击败了上一代 AlphaGo。
AlphaGo Zero 最大的突破在于实现了“白板理论”。白板理论认为:婴儿是一块白板,可以通过后天学习和训练来提高智力。AI 的先驱图灵认为,只要能用机器制造一个类似于小孩的 AI,然后加以训练,就能得到一个近似成人智力,甚至超越人类智力的 AI。
自学成才的 AlphaGo Zero 正是实现了这一理论。AlphaGo 的首席研究员大卫·席尔瓦(David Silver)认为,从 AlphaGo Zero 中可以发现,算法比所谓的计算或数据量更为重要。事实上,AlphaGo Zero 使用的计算要比过去的版本少一个数量级,但是因为使用了更多原理和算法,它的性能反而更加强大。
由此可见,在大数据时代,算法的重要性日渐明晰。一个合格的程序员,必须掌握算法。
我不知道大家是怎样一步步开始精通算法和数据结构的。大二时,我第一次接触到了《数据结构》,因为从来没有过这方面的思维训练,当时的我学习这门课比较费力。那时候接触到的编程比较少,所以并没有很多实际经验让我欣赏和体味:一个好的数据结构和算法设计到底 “美” 在哪里。
开始学习的时候,我甚至有点死记硬背的感觉,我并不知道 “如果不这样设计”,实际上会出现哪些问题。各种时间和空间复杂度对我而言,也仅仅是一些不能融入到实际问题的数学游戏。至于“每种最坏情况、平均情况的时间空间复杂度与各种排序”,这些内容为什么那么重要,当时我想,可能因为考试会考吧。
没想到后来的时日,我又与算法重新结缘。可能是因为莱斯大学给的奖学金太高了,所以每个研究生需要无偿当五个学期的助教 。好巧不巧,我又被算法老师两次挑中当助教。所以,在命运强制下,一本《算法导论》就这样被我前前后后仔细学习了不下四遍。这样的结果是,我基本做过整本书的习题,有些还不止做了一遍。我学习算法的过程,就是反复阅读《算法导论》的过程。
那么,学习算法到底有什么用处呢?
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
在大数据时代,算法在工程师的工作中扮演着至关重要的角色。本文首先以AlphaGo Zero的成功为例,强调了算法的重要性。作者分享了自己学习算法的经历,并指出算法对面试和实际工作的重要性。文章强调算法不仅是面试的敲门砖,更是编程时思想的体现,能够帮助工程师更快理解代码含义,优化代码,设计更完备的方案,提高对程序中出现的算法或时间复杂度问题的敏感性。此外,文章还提到了各种技术中算法的无处不在,如存储、数据库实现、分布式系统等领域。作者强调了对算法的深入理解和把握对于系统性能和应用的重要性。总之,本文强调了在大数据时代,算法和数据同等重要,甚至算法比计算能力或数据量更为重要。文章提出了学习算法的方法,并强调了不精通算法的工程师永远不会是一个优秀的工程师。通过丰富的实例和观点,本文为读者呈现了算法在工程师工作中的重要性和应用价值。 希望每个读者都能从本文中了解到算法在工程师工作中的重要性,并通过学习和实践,提升自己的编程水平和工作效率。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《朱赟的技术管理课》,新⼈⾸单¥59
《朱赟的技术管理课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(28)
- 最新
- 精选
- 蝈蝈每个工程师应该要保持打破沙锅问到底的心态,这样才有利于自身知识的沉淀,最终转化为价值提升。在开源框架层出不穷的时代,理应做到对其内在本质(数据结构设计和算法)的理解,以不变应万变,方能做为知识的主人。2017-12-0126
- ibrothergang现在日常工作中,看得见的地方涉及算法的真的不多,但是也知道真正的提高就在这些看不见的地方。 记得最早真正接触算法是在做一个在线的编程题库,里面的题目从简单到复杂,你需要在线提交你写的程序代码,然后网站会运行你写的代码,主要会从结果的正确性以及运行的性能两方面来评价你写的代码好不好,越到后面,对程序计算花费的时间要求越来越高,导致对算法以及数据结构的要求也相应的越来越高。那时候成功通过一道编程题时的那种喜悦,那种兴奋,应该只有经历过的人才懂。 算法,在学习,了解,熟悉,掌握的过程中,你会体会和一般编程完全不一样的感受!2017-12-0113
- clpsz有些设计很巧妙的算法虽然工作中未必会用上,但对于思维方式的影响还是很大的2017-12-017
- 野山门用算法来解决实际问题的过程是最有趣的。大学毕业的时候自己从头到尾实现了一个台球游戏,里面用到了物理动能守恒、摩擦系数等等。非常有趣,我能想象使用算法解决现实生活中其他问题的时候也同样有趣。2017-12-015
- William李梓峰谢谢安姐指点,我可以毫无顾忌地复习算法了。2017-12-014
- 咸鱼你好,请问对于你刚开始接触算法的那段感受和经历的描写,是百分百真实的,还是考虑到读者的大众水平而加工修饰后的? 我16年本科毕业,目前在中国二线互联网企业工作,遇到专业能力的瓶颈,我很怀疑自己的潜力,看到这篇文章,我觉得我学习方式有问题,我喜欢只做了解,很少深入。 谢谢。2017-12-072
- zhengfc不知道算法和可读性有时候是不是有点冲突2017-12-0112
- Desperado国内业务程序员远占比太大,需要用到算法的地方很少很少2018-05-0211
- 亚伦碎语安姐具体讲讲怎么学习的?2017-12-031
- 产品助理开始关注算法,从现在就开始2017-12-011
收起评论