美国计算机Computer Science面试算法书比较 - 面经分享 我很牛(wohenniu.com) -
本文专门搜集了计算机领域面试的最佳书籍,供美国的码工们参考。 Algorithms and Data Structures in C++ 这是一本比较一般的教材,没什么好推荐。其特点是大量采用c++ template,也没太多分析,基本上直接列代码。 Introduction to Algorithms 这本被无数码工推荐。个人认为,这本书过分注重分析,如果是专门研究算法的,也许是一本好书,但是总体感觉这本书各章节缺乏内在联系,例如说,为什么要有red-black tree?有什么好处?search算法这么多,究竟是怎么演变的?既然quick sort是普遍最快,那么bubble sort这种废材还有个P用?这些问题,是这本书没有回答也没有谈的。 个人对这本书的评价是:如果你没学过算法,或者需要复习,可以读读,但是以为看了这本书就能应付软件公司(MS/Google/etc.),那就错了。大部分公司并不需要你去讲什么天花乱坠的算法,即便是DP问题也不会难到离谱,但是希望你能在谈论算法的时候能表现出对算法应用的理解,而不是背书。而这本书缺少的就是从一个software enginner的角度去讨论算法,更多是从数学的角度。 Algorithms in C 我个人非常赞这本书。之所以说这本书更实用,并非是说面试问题都是这本书里面的,而是因为这本书更多的揭示了programming/system design和算法之间的内在联系。Array和linked list的各种联系,sort算法如何发展起来,binary search/radix/rb tree之间的内在联系等等. 各种问题,可以说作者是信手拈来,像看小说一样一章一章读下去,很有意思。 上面那本书(introduction to algorithms),作为手册来参考也许还行,但实在少了脉络。而这本书看了前面几章后,就可以对基本数据结构和sort/search算法有一个很清楚的了解。这个了解并不是说你知道怎么实现或者复杂度,而是指各种算法是如何产生,针对什么问题,如何发展到另一种方法。了解了这些后,对大部分编程问题,即便你一时没有想到最优解,也仍然可以为你自己的解法拥有相当的理由---面试的人最忌你背书一样说什么什么是最佳方案,而更看重为什么你会有这个方案,背后的理由是什么。 btw,这本书也有in c++/in java的版本,不过in C比较薄一些... Programming Pearls 经典书籍,建议不必一开始看,而在看完上面那本之后再来看这个。如果说Algorithm in C是九阴真经上卷(内功基础),Programming Pearls就是下卷(应用和技巧)。 这个没什么好说的,每一章都有让人赞叹的内容。值得提醒的是,千万不要忽略练习部分,练习中的题目在书后大多有解答和分析,很多东西并不亚于正文给人的启发。 这本是我最后读的一本算法书,作了全部练习后,就是一种"圆满完工"的感觉,剩下的就是在不断的interview中适应气氛了。这本书后面的练习题比较接近interview问题,最好动手实战code. 以上这些书也可以作为美国找计算机工作的面试技巧书. Comments (7) 1# jc 2011-06-23 19:45 还推荐如何移动富士山这本书, 我每页都看过, 很受启发. 感觉computer science必读. 英文是How Would You Move Mount Fuji. 作者写的很幽默,而且很多地方有启发意义。不止是智力题吸引人,书里面开始谈到了硅谷的起源和IQ test, standford university的起源等等,比干巴巴的纯智力题的书强多了. 2# jc 2012-07-04 12:00 有人问我, 最好的算法书是哪本? 我觉得很多算法书都非常枯燥, 包括CLR的Introduction to Algorithms. 但 Programming Pearls 就不一样. 这本书中的很多算法都是以实际工作当中碰到的具体问题着手, 作者由浅入深的介绍算法得来的思路. 另外, 书里面有很多的street smart的编程技巧. 如果说其他的算法书是正规军科班出身, 理论化很强, 这本书就好比旁门左道, 会在你的实际工作当中非常受用. 同时对于面试及其启发思路. 就我来说, 这是我读过的最好的算法书. 3# jc 2012-07-04 12:50 这本 Mastering Algorithms with C 也不错. 我也有一本, 貌似还是带小软盘的 (这年头估计有人已经不清楚啥是小软盘了), 上面有习题程序. 计算机经过汇编, C/C++, Java, Python scripting language等不同的语言的时代, 但真正要想掌握编程精髓来说, 还是要熟悉good old C programming. 4# jc 2012-12-08 16:45 和上面那本经典的 Introduction to Algorithms 一样,这本 Algorithms (4th Edition) 算法书也非常经典。但和那个不同的是,这本书包括了用java实现的程序。这样非常有助于学生用来解决实际问题。 5# jc 2013-02-18 22:02 如果想快速把C++过一遍的话,C++ Primer就显得太厚了。而这本 Accelerated C++: Practical Programming by Example 非常好, 是网上很多人推荐的, 350页, 复习起来很不错. 6# jc 2013-03-04 10:05 The Google Resume: How to Prepare for a Career and Land a Job at Apple, Microsoft, Google etc. 这本书建议要提早看,里面有不少关于networking和写简历的很好的建议. 对于想进美国top tech company的同学会很有帮助. 7# jc 2013-05-22 15:48 Elements of Programming Interviews: 300 Questions and Solutions 这本书被很多人强烈推荐. 有300道题,比 Cracking the Coding Interview多一倍。另外,和careercup相比, 这本书里面包括了很多美国大公司面试必考的题目. 缺点是对于刚刚准备面试的人来说,题目偏难;另外是用C++描述的。所以,对于用Java的人来说不一定合适. 作者里面有一个是台湾人. 转自 http://www.jiansnet.com/topic/60 ... nce-Algorithm-Books |
Read full article from 美国计算机Computer Science面试算法书比较 - 面经分享 我很牛(wohenniu.com) -
No comments:
Post a Comment