面试官的视角从面试官视角剖析考题构思、现场心理、题解优劣与面试心得,尚属首例。50余道编程题《剑指Offer:名企面试官精讲典型编程题》精选谷歌、微软等知名IT企业的50余道典型面试题,提供多角度的解题辅导。这些题目现今仍被大量面试官反复采用,实战参考价值颇高。系统的解题方法《剑指Offer:名企面试官精讲典型编程题》系统地总结了如何在面试时写出高质量代码,如何优化代码效率,以及分析、解决难题的常用方法。超写实体验与感悟Autodesk一微软一思科,作者一路跳槽-路“面”,既亲历被考,也做过考官,更是资深程序员.大量的一线面试与编程经验,足当确保《剑指Offer:名企面试官精讲典型编程题》品质。
海报:
《剑指Offer:名企面试官精讲典型编程题》剖析了50个典型的程序员面试题,从基础知识、代码质量、解题思路、优化效率和综合能力五个方面系统整理了影响面试的5个要点。全书分为7章,主要包括面试的流程,讨论面试流程中每一环节需要注意的问题;面试需要的基础知识,从编程语言、数据结构及算法三方面总结了程序员面试的知识点;高质量的代码,讨论影响代码质量的的3个要素(规范性、完整性和鲁棒性),强调高质量的代码除了能够完成基本的功能之外,还能考虑到特殊情况并对非法输入进行合理的处理;解决面试题的思路,总结在编程面试中解决难题的常用思路,如果在面试过程中遇到了复杂的难题,应聘者可以利用画图、举例和分解复杂问题3种方法化繁为简,先形成清晰的思路再动手编程;优化时间和空间效率,介绍如何优化代码的时间效率和空间效率,读完这一章读者将学会常用的优化时间效率及空间换时间的常用算法,从而在面试中找到最优的解法;面试中的各种能力,本章总结应聘者在面试过程中如何表现学习能力和沟通能力,并通过具体的面试题讨论如何培养知识迁移能力、抽象建模能力和发散思维能力;两个面试案例,这两个案例总结了应聘者在面试过程中哪些举动是不好的行为,而哪些表现又是面试官所期待的行为。
所谓学习能力,很重要的一点就是根据已经掌握的知识、技术,能够迅速学习、理解新的技术并能运用到实际工作中去。大部分新的技术都不是凭空产生的,而是在已有技术的基础上发展起来的。这就要求我们能够把对已有技术的理解迁移到学习新技术的过程中去,也就是要具备很强的知识迁移能力。以学习编程语言为例,如果全面理解了C++的面向对象的思想,那么学习下一门面向对象的语言JaVa就不会很难。在深刻理解了JaVa的垃圾回收机制之后,再去学习另外一门托管语言比如C群,也会很容易。
面试官考查知识迁移能力的一个方法是把经典的问题稍作变换。这个时候面试官期待应聘者能够找到和经典问题的联系,并从中受到启发把解决经典问题的思路迁移过来解决新的问题。比如如果遇到面试题38“数字在排序数组中出现的次数”,我们看到“排序数组”就可以想到二分查找算法。通常二分查找算法用来在一个排序数组中查找一个数字。我们可以把二分查找的思想迁移过来稍作变换,用二分查找算法在排序数组中查找重复数字的第一个和最后一个,从而得到数字在数组中出现的次数。
面试官考查知识迁移能力的另一个方法就是先问一个简单的问题,在应聘者解答完这个简单的问题之后再追问一个相关的同时难度也更大的问题。这个时候面试官希望应聘者能够总结前面解决简单问题的经验,把前面的思路、方法迁移过来。比如在面试题40“数组中只出现一次的数字”中,面试官先问一个简单的问题即数组中只有一个数字只出现一次的情况。在应聘者想出用异或的办法找到这个只出现一次的数字之后,他再追问如果数组中有两个数字只出现一次,该怎么找出这两个数字?这个时候应聘者要从前面的思路中得到启发:既然有办法找到数组中只出现一次的一个数字,那当数组中有两个数字只出现一次的时候,我们可以把整个数组一分为二,每个子数组中包含一个只出现一次的数字,这样我们就能在两个子数组中分别找到那两个只出现一次的数字。接下来我们就可以集中精力去想办法把数组一分为二,这样就能找到解决问题的窍门,整个题目的难度系数就降低了不少。
……