朱赟的技术管理课
朱赟
计算机博士,前Airbnb技术经理
立即订阅
11176 人已学习
课程目录
已完结 39 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 | 从工程师到管理者,我的思考与实践
免费
01 | 职场分身术:从给答案到做引导
02 | Bug引发事故,该不该追究责任?
03 | 每个工程师都应该了解的:A/B测试
04 | 如何帮助团队成员成长
05 | 当我们给别人提意见时,要注意些什么?
06 | 每个工程师都应该了解的:聊聊幂等
07 | 当别人给我们提意见时,该如何应对?
08 | 说说硅谷公司中的一对一沟通
09 | 每个工程师都应该了解的:大数据时代的算法
10 | 项目延期了,作为负责人该怎么办?
11 | 管理和被管理:期望值差异
12 | 每个工程师都应该了解的:数据库知识
13 | 管理者在进行工作分配时,会考虑哪些问题?
14 | 硅谷人到底忙不忙?
15 | 每个工程师都应该了解的:系统拆分
16 | 技术人如何建立个人影响力?
17 | 管理者不用亲力亲为:关键是什么?
18 | 每个工程师都应该了解的:API 的设计和实现
19 | 硅谷面试:那些你应该知道的事儿
20 | 项目管理中的三个技巧
21 | 每个工程师都应该了解的:中美在支付技术和大环境下的差异
22 | 不要做微观的管理者
23 | 如何处理工作中的人际关系?
24 | 编程语言漫谈
25 | 兼容并包的领导方式
26 | 如何做自己的职场规划?
27 | 小议Java语言
28 | 如何激发团队人员的责任心
29 | 说说硅谷互联网公司的开发流程
30 | 编程马拉松
31 | 工程师、产品经理、数据工程师是如何一起工作的?
32 | 硅谷人如何做 Code Review
33 | 技术人的犯错成本
34 | 如何从错误中成长?
35 | 理解并建立自己的工作弹性
36 | 如何对更多的工作说“不”
尾声:成长不是顿悟,而是练习
新书 |《跃迁:从技术到管理的硅谷路径》
朱赟的技术管理课
登录|注册

09 | 每个工程师都应该了解的:大数据时代的算法

朱赟 2017-12-01
开了这个专栏之后,经常有读者问算法相关的问题。
能不能讲讲算法在工作中的运用?你个人学习算法的过程是怎样的?我对算法还是有点怕。除此之外,你认为大学是应该多花时间学应用技术还是理论知识呢?谢谢。
今天就来聊聊我自己学习算法的过程,以及算法在实际工作中的应用。
以前,我们认为大数据总是优于好算法。也就是说,只要数据量足够大,即使算法没有那么好,也会产生好的结果。
前一阵子“极客时间” 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/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《朱赟的技术管理课》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(20)

  • 蝈蝈
    每个工程师应该要保持打破沙锅问到底的心态,这样才有利于自身知识的沉淀,最终转化为价值提升。在开源框架层出不穷的时代,理应做到对其内在本质(数据结构设计和算法)的理解,以不变应万变,方能做为知识的主人。
    2017-12-01
    16
  • ibrothergang
    现在日常工作中,看得见的地方涉及算法的真的不多,但是也知道真正的提高就在这些看不见的地方。

    记得最早真正接触算法是在做一个在线的编程题库,里面的题目从简单到复杂,你需要在线提交你写的程序代码,然后网站会运行你写的代码,主要会从结果的正确性以及运行的性能两方面来评价你写的代码好不好,越到后面,对程序计算花费的时间要求越来越高,导致对算法以及数据结构的要求也相应的越来越高。那时候成功通过一道编程题时的那种喜悦,那种兴奋,应该只有经历过的人才懂。

    算法,在学习,了解,熟悉,掌握的过程中,你会体会和一般编程完全不一样的感受!
    2017-12-01
    12
  • clpsz
    有些设计很巧妙的算法虽然工作中未必会用上,但对于思维方式的影响还是很大的
    2017-12-01
    6
  • 野山门
    用算法来解决实际问题的过程是最有趣的。大学毕业的时候自己从头到尾实现了一个台球游戏,里面用到了物理动能守恒、摩擦系数等等。非常有趣,我能想象使用算法解决现实生活中其他问题的时候也同样有趣。
    2017-12-01
    5
  • 咸鱼
    你好,请问对于你刚开始接触算法的那段感受和经历的描写,是百分百真实的,还是考虑到读者的大众水平而加工修饰后的?
    我16年本科毕业,目前在中国二线互联网企业工作,遇到专业能力的瓶颈,我很怀疑自己的潜力,看到这篇文章,我觉得我学习方式有问题,我喜欢只做了解,很少深入。
    谢谢。
    2017-12-07
    2
  • zhengfc
    不知道算法和可读性有时候是不是有点冲突
    2017-12-01
    2
  • William李梓峰
    谢谢安姐指点,我可以毫无顾忌地复习算法了。
    2017-12-01
    2
  • Desperado
    国内业务程序员远占比太大,需要用到算法的地方很少很少
    2018-05-02
    1
  • 产品助理
    开始关注算法,从现在就开始
    2017-12-01
    1
  • Alexis何春光
    请问机器学习的算法(比如强化学习)跟本文说到的算法是一回事吗?
    2018-12-25
  • 问一下,数学差的不行的人能学会算法么。感觉很难看得懂
    2018-11-13
  • Feng
    知道算法和数据结构美,却一直只是停留在知道而已,接下来的2018给自己压力,能够在体会面对面接触她们的美这方面迈进一步。安姐的专栏真的是很干货!虽然时隔很久才继续来回翻。感恩
    2018-09-22
  • MarksGui
    不知道中文版的《算法》第四版做为入门的学习教材行吗?有没有什么好的推荐学习方法了?
    2018-05-21
  • Dylan
    很惭愧,毕业这么多年《算法导论》这本书还没读完一遍~对于算法个人还是很喜欢的,对动态规划还有贪心算法一直记忆犹新~不管是曾经面试其它公司还是现在面试工程师算法题一定是要问的,因为就像作者说的,初面考察工程师解决问题的能力除了算法题我不知道还有没有更好的方法,业务能力或者其它能力可以后续培养,但是我相信分析和解决问题的能力是很难去培养的
    2017-12-28
  • 秋水天
    大公司对算法要求确实很高。
    2017-12-15
  • 幻想
    这篇文章太有价值了,多谢安姐姐
    2017-12-07
  • shniu
    在我深入研究算法的道路上又多了一份坚信^_^
    2017-12-07
  • GeekAmI
    好吧 你说服我继续研究算法啦
    2017-12-05
  • Seven_dong
    安姐具体讲讲怎么学习的?
    2017-12-03
  • Silence Wang
    对于大部分软件设计师,算法更多的是在锻炼人的逻辑思维能力。
    2017-12-02
收起评论
20
返回
顶部