一个谷歌程序员的算法学习之路.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一个谷歌程序员的算法学习之路 发表于2015-01-27 08:49来源:巩朋 关于 严格来说,本文题目应该是我的数据结构和算法学习之路,但这个写法实在太绕口 ——况 且CS中的算法往往暗指数据结构和算法(例如算法导论指的实际上是数据结构和算法导 论),所以我认为本文题目是合理的。 这篇文章讲了什么? 我这些年学习数据结构和算法的总结。 一些不错的算法书籍和教程。 算法的重要性。 初学 第一次接触数据结构是在大二下学期的数据结构课程。然而这门课程并没有让我入门—— 当时自己正忙于倒卖各种MP3和耳机,对于这些课程根本就不屑一顾——反正最后考试划 个重点也能过,于是这门整个计算机专业本科最重要的课程就被傻逼的我直接忽略过去了。 直到大三我才反应过来以后还要找工作——而且大二的折腾证明了我并没有什么商业才 能,以后还是得靠码代码混饭吃,我当时惊恐的发现自己对编程序几乎一无所知,于是我 给自己制订了一个类彳以于建国初期五年计划的读书成长计划,其中包括C语言基础、数据 结构以及计算机网络等方面的书籍。 读书计划的第一步是选择书籍,我曾向当时我觉得很牛的”学长〃和〃大神”请教应该读哪 些算法书籍,学长〃们均推荐《算法导论》,还有几个大神推荐计算机程序设计艺术 (现在我疑心他们是否翻过这些书),草草的翻了下这两本书发现实在看不懂,但幸运的是 我在无意中发现了豆瓣这个神奇的网站,里面有很多质量不错的书评,于是我就把评价很高 而且看上去不那么吓人的计算机书籍都买了下来——事实证明豆瓣要比这些学长或是〃 大神靠谱的多得多。 数据结构与算法分析——C语言描述 数据结构与算法分析——C语言描述是我学习数据结构的第一本书:当时有很多地方看不 懂,于是做记号反复看;代码看不明白,于是抄到本子上反复研读;一些算法想不通,就把 它所有的中间状态全画出来然后反复推演。事实证明尽管这种学习方法看起来傻逼而且效 率很低,但对于当时同样傻逼的我却效果不错 一i人用傻办法嘛,而且这本书的课后题 大多都是经典的面试题目,以至于日后我看到编程之美的第一反应就是这货的题目不全是 抄别人的么。 至今记得,这本书为了说明算法是多么重要,在开篇就拿最大子序列和作为例子,一路把复 杂度从0(N3)杀到0(N2)再到O(NlgN)最后到0(N),当时内心真的是景仰之情二如滔滔江 水连绵不绝,尼玛为何可以这么扁, 此外,我当时还把这本书里图算法之前的数据结构全手打了一遍,后来找实习还颇为自得的 把这件事放到简历里,现在想想真是傻逼无极限。 凭借这个读书成长计划中学到的知识,我总算比较II页禾啲找到了一份实习工作,这是后话。 入门 我的实习并没有用到什么算法(现在看来就是不停的堆砌已有的API,编写一堆自己都不知 道对不对的代码而已),在发现身边的人工作了几年却还在和我做同样的事情之后,我开始 越来越不安。尽管当时我对自己没什么规划,但我清楚这绝壁不是我想做的工作。 微软的梦工厂 在这个摇摆不走的时刻,微软的梦工场成了压倒骆驼的最后一支稻草,这本书对微软亚洲研 究院的描写让我下定了找工作就要这样的公司〃的决心,然而我又悲观的发现无论是以我 当时的能力还是文凭,都无法达到微软亚研院的要求,矛盾之下,我彻底推翻了自己〃毕业 就工作〃的想法,辞掉实习,准备考研。 考研的细节无需赘述,但至今仍清楚的记得自己在复试时惊奇且激动的发现北航宿舍对面就 是微软西格玛大厦,那种离理想又进了一步的感觉简直爽到爆。 算法设计与分析 我的研究生生涯绝对是一个反面典型一一翘课,实习,写水论文”做水研究”但有一点我 颇为自得一从头到尾认真听了韩军教授的算法设计与分析课程。 韩军给我印象最深的有两点:课堂休息时跑到外面和几个学生借火抽烟;讲解算法时的犀利 和毫不含糊。 尽管韩军从来没有主动提及,但我敢肯定算法设计与分析基础就是他算法课程事实上的 (de-facto )教材,因为他的课程结构几乎和这本书的组织结构一模一样。 如果数据结构与算法分木C语言描述是我的数据结构启蒙,那么韩军的课程和算法设 计与分析基础就是我的算法启蒙,结合课程和书籍,我——理解并掌握了复杂度分析、分治、 减治、变治、动态规划和回溯这些简单但强大的算法工具。 算法引论 算法引论是我这时无意中读到的另一本算法书,和普通的算法书不同,这本书从创造性的角 度出发——如果说算法导论讲的是有哪些算法,那么算法引论讲的就是如何创造算法。结 合前面的算法设计与分析基础,这本书把我能解决的算法问题数量扩大了一个数量级。之后, 在机缘巧合下,我进入微软亚洲工程院实习,离理想又近了一步,自我感觉无限牛逼。 巩固 在微软工程院的实习是我研究生阶段的一^非常非常非常重要的转折点: 做出了一个还说的过去的小项目。 期间百度实习面试受挫,痛走思痛之下阅读了大量的程序设

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档