刘未鹏谈如何学习算法
2019独角兽企业重金招聘Python工程师标准>>>
刘未鹏谈如何学习算法,很有指导意义,特摘录一段于此。
那到底什么样的才算是授人以渔的呢?波利亚的《如何解题》绝对算是一本,他的《数学的发现》也值得一看。具体到算法书,那就不是光看text book就足够的了,为了深入理解一个算法的来龙去脉前因后果,从一个算法中领悟尽量深刻的东西,则需要做到三件事情:
- 寻找该算法的原始出处:TAOCP作为一个资料库是绝对优秀的,基础的算法只要你能想到的,几乎都可以在上面找到原始出处。查到原始出处之后(譬如一篇paper),就可以去网上搜来看了。因为最初的作者往往对一个方案的诞生过程最为了解。比如经典数据结构中的红黑树是出了名的令人费解的结构之一,但它的作者Sedgewick一张PPT,给你讲得通通透透,比算法导论上的讲法强上数倍。
- 原始的出处其实也未必就都推心置腹地和你讲得那么到位:前面说过,算法设计出来了之后人们几乎是不会去回顾整个的思维过程细节的,只把直指目标的那些东西写出来。结果就又是一篇欧几里德式的文章了。于是你就迷失在一大堆“定义”、“引理”、“定理”之中了。这种文章看上去整个写得井井有条,其实是把发明的过程整个给颠倒过来了,我一直就想,如果作者们能够将整个的思路过程写出来,哪怕文字多上十倍,我也绝对会比看那一堆定义定理要容易理解得多。话说回来,怎么办?可以再去网上找找,牛人讲得未必比经典教材上的差。那倘若实在找不出好的介绍呢,就只能自己揣摩了。揣摩的重要性,是怎么说都不为过的。揣摩的一些指导性的问题有:为什么要这样(为什么这是好的)?为什么不是那样(有其它做法吗?有更好的做法吗?)?这样做是最好的吗?(为什么?能证明吗?)这个做法跟其它的什么做法有本质联系吗?这个跟这个的区别是什么?问题的本质是什么?这个做法的本质又是什么?到底本质上是什么东西导致了这个做法如此..?与这个问题类似的还有其它问题吗?(同样或类似的做法也适用吗?)等等。
- 不仅学习别人的思路,整理自己的思路也是极其重要的
- :详见
《跟波利亚学解题》的“4. 一个好习惯”和“7. 总结的意义”。
全文请转到: http://blog.csdn.net/pongba/article/details/2622713
转载于:https://my.oschina.net/zengsai/blog/30210
刘未鹏谈如何学习算法相关推荐
- 【转载】刘未鹏的C++学习历程 + 小诗一首
在上大学以前我从未涉及过编程这一领域,倒是对电脑比较感兴趣,这里所说的"电脑"是指粗浅的应用,我会为了从某一本杂志上看到了一则修改注册表的技巧而兴奋不已,然后回家赶紧尝试,却不名就 ...
- 读刘未鹏《暗时间》的总结和思考
请访问我的个人博客:www.lijinma.com 花了两个晚上读完了刘未鹏的暗时间,心中窃喜.今天再次翻看这本书进行浏览总结并思考,通过这本书我到底学到了什么? 1. 为什么人人都应该学点心理学? ...
- 好久没有看到这么有建设性德文章,由衷地赞叹《知其所以然地学习(以算法学习为例)》-By 刘未鹏(pongba)
知其所以然地学习(以算法学习为例) By 刘未鹏(pongba) C++的罗浮宫(http://blog.csdn.net/pongba) Updated(2008-7-24):更新见正文部分,有标注 ...
- 转载:知其所以然(以算法学习为例) 作者: 刘未鹏
作者: 刘未鹏 发布时间: 2016-07-23 18:41 阅读: 3917 次 推荐: 11 原文链接 [收藏] 原文发表于2008年 其实下文的绝大部分内容对所有学习都是同理的 ...
- 【我在南京大学的7年】--转自刘未鹏
博文视点的周筠老师最近在做一本书,讲述一些业内朋友走过的路,给自己和给别人以 一些借鉴.我也借着这个机会把发生在过去7年中的重要的事情回顾了一下. =======正文====== 跨进南大校门的第一天 ...
- 读书笔记2013-1--暗时间(刘未鹏)
暗时间(刘未鹏)读书笔记 1.过早退出是一切失败的根源 2.兴趣遍地都是,专注和持之以恒才是真正稀缺的 3.反思是改变自己的第一步,我们常常容易发现别人的问题,别人的错误,却难以发现自己思维中的问题, ...
- 刘未鹏:为什么你应该(从现在开始就)写博客
今天转载一篇刘未鹏10多年前的一篇博客<为什么你应该(从现在开始就)写博客>,我觉得总结的非常好,上大学的时候我就看过了,因为这篇博客所以我从13年开始坚持写博客.刘未鹏最近博客也不更了, ...
- 程序员中"5%神话";刘未鹏:为什么你应该写博客
程序员中"5%神话":刘未鹏:为什么你应该写博客 http://timyang.net/programming/mythical-5/ Bruce Eckel(Thinking in Java/C++ ...
- 笔记:刘未鹏思考的技术与艺术(原“学会思考”)
在读<暗时间>这本书的时候了解到刘未鹏,也了解到关于心理学"学会思考"的豆列,推荐的书很棒,体系也很完善,特作记录. 豆列的地址在: https://www.douba ...
最新文章
- 技巧 | OpenCV程序执行时间计算
- mysql设置远程访问
- Weka 3.7.12源码学习、阅读、分析(1)
- Mybatis解析动态sql原理分析
- pve 群晖 virtio速度慢_群晖DS Note高级教程——教你使用智能记事本
- idea 这么还原debug_看源码,我为什么推荐IDEA ?
- Intel Realsense D435 python 实战(二)
- expected:instruction or directive
- 火狐linux版更改语言,Selenium更改firefox浏览器语言python m
- 作业 20180925-1 每周例行报告
- linux 下后台运行python脚本
- 小巧数据库 Apache Derby 使用攻略
- mac mysql 账户密码忘记_MAC下MYSQL数据库密码忘记的解决办法
- 版本管理工具git常用命令
- html 警告图标,HTML+CSS入门 CSS实现核辐射警告标志
- SSR门户项目爬坑之路(一)
- linux启用dcb步骤,Linux内核DCB子系统
- 《2020版JavaScript基础入门教程全集》,助你一臂之力!
- 浙大高分子物理郑强教授的激情演讲
- HTML5期末大作业:商城页面——仿优分购电商静态网页(7个页面) HTML+CSS+JavaScript 电商购物网页HTML代码 学生网页课程设计期末作业下载 大学生网页设计制作成...
热门文章
- 一键添加JAVA环境变量
- Markdown学习测试
- 电话订票每日开始时间(几点放票) - 北京本地宝
- 与 Josh Bloch 探讨 Java 未来
- php采集百度推荐词,php抓取百度快照、百度收录、百度热词程序代码_PHP教程
- Nginx Http 过滤模块
- python全栈开发第36天------GIL全局解释锁、死锁现象和递归锁、信号量、Event事件、线程...
- python-MySQLdb-练习
- Asp.net常用的操作函数
- JavaScript 学习(2) - JS的内建对象