转载自 http://www.tiantianbianma.com/msra-gong-peng-algorithm-one.html/

引子

严格来说,本文题目应该是 我的数据结构和算法学习之路,但这个写法实在太绕口。况且CS中的算法往往暗指数据结构和算法(例如 算法导论 指的实际上是 数据结构和算法导论),所以我认为本文题目是合理的。

摘要

  • 我这些年学习数据结构和算法的总结。
  • 一些不错的算法书籍和教程。
  • 算法的重要性。

初学

第一次接触数据结构是在大二下学期的数据结构课程。然而这门课程并没有让我入门——当时自己正忙于倒卖各种MP3和耳机,对于这些课程根本就不屑一顾——反正最后考试划个重点也能过,于是这门整个计算机专业本科最重要的课程就被傻逼的我直接忽略过去了。

直到大三我才反应过来以后还要找工作——而且大二的折腾证明了我并没有什么商业才能,以后还是得靠码代码混饭吃,我当时惊恐的发现自己对编程序几乎一无所知,于是我给自己制订了一个类似于建国初期五年计划的读书成长计划,其中包括C语言基础、数据结构以及计算机网络等方面的书籍。

读书计划的第一步是选择书籍,我曾向当时我觉得很牛的 “学长” 和 “大神” 请教应该读哪些算法书籍,”学长”们均推荐《算法导论》,还有几个”大神”推荐《计算机程序设计艺术》(现在我疑心他们是否翻过这些书),草草的翻了下这两本书发现实在看不懂。后来经过摸索和总结,总结出一系列的算法好书。

1《数据结构与算法分析——C 语言描述》

《数据结构与算法分析——C 语言描述》 是我学习数据结构的第一本书:当时有很多地方看不懂,于是做记号反复看;代码看不明白,于是抄到本子上反复研读;一些算法想不通,就把它所有的中间状态全画出来然后反复推演。事实证明尽管这种学习方法看起来傻逼而且效率很低,但对于当时同样傻逼的我却效果不错——傻人用傻办法嘛,而且这本书的课后题大多都是经典的面试题目,以至于日后我看到 《编程之美》 的第一反应就是这货的题目不全是抄别人的么。

  • 豆瓣评分: 8.9
  • 购买链接: 京东
  • 推荐指数: 五颗星

至今记得,这本书为了说明算法是多么重要,在开篇就拿最大子序列和作为例子,一路把复杂度从 O(N^3) 杀到 O(N^2) 再到 O(NlgN) 最后到 O(N),当时内心真的是景仰之情如滔滔江水连绵不绝,尼玛为何可以这么屌。

此外,我当时还把这本书里图算法之前的数据结构全手打了一遍,后来找实习还颇为自得的把这件事放到简历里,现在想想真是傻逼无极限。

凭借这个读书成长计划中学到的知识,我总算比较顺利的找到了一份实习工作,这是后话。

入门

我的实习并没有用到什么算法(现在看来就是不停的堆砌已有的 API,编写一堆自己都不知道对不对的代码而已),在发现身边的人工作了几年却还在和我做同样的事情之后,我开始越来越不安。尽管当时我对自己没什么规划,但我清楚这绝壁不是我想做的工作。

2《微软的梦工场》

在这个摇摆不定的时刻,《微软的梦工场》 成了压倒骆驼的最后一支稻草,这本书对微软亚洲研究院的描写让我下定了 “找工作就要这样的公司” 的决心,然而我又悲观的发现无论是以我当时的能力还是文凭,都无法达到微软亚研院的要求,矛盾之下,我彻底推翻了自己”毕业就工作”的想法,辞掉实习,准备考研。

  • 豆瓣评分: 7.0
  • 购买链接: 京东
  • 推荐指数: 四颗星

考研的细节无需赘述,但至今仍清楚的记得自己在复试时惊奇且激动的发现北航宿舍对面就是微软西格玛大厦,那种离理想又进了一步的感觉简直爽到爆。

3《算法设计与分析基础》

我的研究生生涯绝对是一个反面典型——翘课,实习,写水论文,做水研究,但有一点我颇为自得——从头到尾认真听了韩军教授的算法设计与分析课程。

  • 豆瓣评分: 8.3
  • 购买链接: 京东
  • 推荐指数: 五颗星

韩军给我印象最深的有两点:课堂休息时跑到外面和几个学生借火抽烟;讲解算法时的犀利和毫不含糊。

尽管韩军从来没有主动提及,但我敢肯定 《算法设计与分析基础》 就是他算法课程事实上的(de-facto)教材,因为他的课程结构几乎和这本书的组织结构一模一样。

如果 《数据结构与算法分析——C语言描述》 是我的数据结构启蒙,那么韩军的课程 算法设计与分析基础 就是我的算法启蒙,结合课程和书籍,我一一理解并掌握了复杂度分析、分治、减治、变治、动态规划和回溯这些简单但强大的算法工具。

4《算法引论》

《算法引论》 是我这时无意中读到的另一本算法书,和普通的算法书不同,这本书从创造性的角度出发——如果说 《算法导论》 讲的是有哪些算法,那么《算法引论》讲的就是如何创造算法。结合前面的 《算法设计与分析》,这本书把我能解决的算法问题数量扩大了一个数量级。

  • 豆瓣评分: 8.9
  • 购买链接: 京东
  • 推荐指数: 五颗星

之后,在机缘巧合下,我进入微软亚洲工程院实习,离理想又近了一步,自我感觉无限牛逼。

转载于:https://www.cnblogs.com/tiantianbianma/p/10649865.html

Google工程师巩朋的算法之路(1)相关推荐

  1. Google工程师带你学算法

  2. 巩朋:我的算法学习之路

    转自:http://blog.jobbole.com/67348/ 巩朋:我的算法学习之路 分享到: 232 MVC架构模式分析与设计 Linux Guide for Developers 网页广告特 ...

  3. Google工程师:如何看待程序员普遍缺乏数据结构和算法知识?

    出处:极客时间<数据结构与算法之美> 很多技术人都很迷茫,觉得自己做的项目没有技术含量,成天就是卖苦力.技术的东西,日新月异,有些人总在忙于追求热点新技术,东学学.西学学,平时泛泛地看技术 ...

  4. Google 工程师二三事

    ------------这一篇先在Google黑板报贴过的--------------- 我讨厌"工程师"这个头衔,正如我讨厌一辈子与呆头呆脑的主板.芯片为伍.要是有一天,Goog ...

  5. 会计转行算法之路(一)会计转程序员

    会计转行算法之路(一)会计转程序员 回忆起来,要感谢互联网,感谢开源,没有互联网,就没有我的今天,我也就无法走上自己的追梦之路. 每次迷茫的时候,回忆一下初心,我的理想是什么? 通过科学技术,改善人们 ...

  6. 这是 Google 工程师 Amit Singhal 发表在 Google 官方博客的一篇文章,讲述了 Google 搜索排名背后的一些技术,涉及到 Google 对网页,对语义,对用户意图的理解。

    XEIM这是 Google 工程师 Amit Singhal 发表在 Google 官方博客的一篇文章,讲述了 Google 搜索排名背后的一些技术,涉及到 Google 对网页,对语义,对用户意图的 ...

  7. 工程师如何学习机器学习算法

    PS:CSDN的格式乱了,markDown的格式居然不起作用...改了不见任何效果,无力吐槽..... ###1.前言 - 程序员是一个知识更新较为迅速的一个职业,这个行业的知识的更新速度,有的时候会 ...

  8. 前 Google 工程师出书了!(全彩版)

    微信搜索逆锋起笔关注后回复编程pdf 领取编程大佬们所推荐的 23 种编程资料! 网络上流传着一句段子"程序员两条腿,一条是算法,一条是英文,想跑的更远,这两条腿都不能弱".英文, ...

  9. google地图经纬度偏移修正算法完美解决方案

    google地图经纬度偏移修正算法完美解决方案 参考文章: (1)google地图经纬度偏移修正算法完美解决方案 (2)https://www.cnblogs.com/moonvan/archive/ ...

最新文章

  1. document.compatMode属性
  2. 从 2018 年 Nacos 开源说起
  3. WinPcap编程入门实践
  4. 江苏省事业单位计算机入面分数线,2020江苏事业单位统考周日笔试,考多少分进面?...
  5. 湖南大学第十四届ACM程序设计新生杯(重现赛)L-The Digits String (矩阵快速幂)
  6. 数据可视化 -- Python
  7. JAVA→XML解析EXtensible Markup Language、JSON解析JavaScript Object Notation
  8. Linux查看、处理文件方法
  9. 菜鸟安装Linux的问题记录
  10. Everything 如何搜索共享文件夹的内容
  11. 幻彩灯 html5,WS2811幻彩灯程序
  12. FPGA开发板公司及产品系列
  13. 引擎所有固定变量大全
  14. 盘点微软使用火热的编程语言!程序员:你看我还有机会吗?
  15. Delphi 10.3 安装TM Scripter控件包出现关于提示can‘t load package ‘xxx.bpl.‘ 错误问题的简单解决方法
  16. excel想要把两列合并且用空格隔开
  17. [python3] 发送微信 同步手机端
  18. 数据可视化图表之面积折线图
  19. 1t硬盘怎么分区最好_1T的硬盘空间怎么分区比较合理
  20. C++入门:命名空间

热门文章

  1. 最近工商银行钓鱼网站井喷式增长,过年了小心被钓鱼
  2. 戴尔Alienware x15R1 x15R2原厂win11系统带F12 Support Assist OS Recovery恢复功能
  3. html5中audio标签
  4. spring boot activiti7常见问题
  5. 91-blockchain入门
  6. 重新安装FFDShow Decoder解决暴风影音2.0画面倒置问题。
  7. 【小程序源码】多接口带头像挂件制作短视频去印
  8. php socket之websocket
  9. 遭遇网通(联通)dns劫持
  10. 阿里系统软件迎战“双11”超高流量峰值全纪录 1