三足鼎立——读三大程序员面试书籍有感 面试
市面上关于IT面试的书籍汗牛充栋,大多数是天下一家——你抄我来我抄它。而今ITEye又推荐了一本,说实话我第一感觉就是又一本老生常谈之作,并不给予太多希望,然而细读样章,却意外的发现了亮点。
众所周知,此类型的书中已经有两本经典之作,分别是:
《编程之美》——微软技术面试心得
《剑指offer》——名企面试官精讲典型编程题
珠玉在前,这本《程序员面试攻略》究竟凭什么引起了读者注意,让我们来比较一下。
先说《编程之美》。毫无疑问,在技术深度上这本书是傲视群雄的,想要完全读懂这本书,没有一定的逻辑思维能力和数学功底恐怕不是易事。然而它的优点也是它的缺点,正是因为对技术过于专注,使得它的覆盖面不够广。对于我来说它有两个不足:
1,缺少面试过程的整体介绍。面试是一个人与人沟通的过程,面试官从中获得对面试者的认识,而技术细节只是面试过程中的一个重要元素。但此书从头到尾只针对技术,其它细节如如何有效跟面试官沟通等没有提及。
2,部分面试题目的解答依赖于平台。因为是微软的技术面试,因此跟WINDOWS拉上关系也不出奇。例如第此书的第一个例子,如果运行在多核的CPU上,用JAVA是无法解决的,因为它要使用到WINDOWS的API(将线程绑定在某个核上),这让非WINDOWS的程序员非常痛苦。
接着说《剑指offer》,它完全克服了《编程之美》的两个缺点,对面试有了一个相对完整的介绍,同时面试题的挑选也不依赖于特定的平台,具有普遍性。然而它也有自身的缺陷。
1,对面试的整体介绍还是不够全面,只针对面试流程本身,没有从一个更高的角度来考虑,例如面试前如何选择适合自己的职位。
2,面试题目的范围相对来说还是比较狭窄,只集中在算法,同时部分题目深度略感不足。
而我们今天的主角《程序员面试攻略》,则是集上两者的大成,我个人觉得它有以下两大优点:
1,从一个更高的角度来看待面试,不仅仅纠结与面试过程。它第一章叫做《求职之前》。说实话,我刚看的时候是挺震惊的,它让我认识到自己是需要成为一个怎样的程序员,它里面提到:
”你是一个系统程序员还是一个应用开发者?“
这让我醍醐灌顶,怪不得我之前总觉得自己的工作好像有点不对劲,但又说不出来,原来我是想做一个系统程序员而不是应用开发者,真是一言惊醒梦中人!
2,题目覆盖广泛,除了设计算法,还包括了并发编程等多项内容!虽然说并发编程的内容足以重新写成另外一本书,然而它能恰到好处的讨论了一下并发编程,虽然并不会太深,但还是让人见识到并发编程在面试中会怎样出现。接着还有数据库、设计模式、面向对象编程、图形学和位操作、图形和空间方面的难题、智力难题、非技术问题等等,这些点都是可以展开成一本本好书,但它都是适可而止地包括了进来。在内容的广度方面是前两本无法媲美的!
总而言之,《程序员面试攻略》的作者对面试有一个高纬度的全面认识,它的内容综合性超过了前面两本,虽说前两本也是有其优秀独特之处,但从整体上看,无疑《程序员面试攻略》略胜一筹。