剑指Offer:名企面试官精讲典型编程题 - (EPUB全文下载)
文件大小:1.26 mb。
文件格式:epub 格式。
书籍内容:
剑指Offer:名企面试官精讲典型编程题
第1章 面试的流程
第2章 面试需要的基础知识
第3章 高质量的代码
第4章 解决面试题的思路
第5章 优化时间和空间效率
第6章 面试中的各项能力
第7章 两个面试案例
第1章 面试的流程
1.1 面试官谈面试
“对于初级程序员,我一般会偏向考查算法和数据结构,看应聘者的基本功;对于高级程序员,我会多关注专业技能和项目经验。”
——何幸杰(SAP,高级工程师)
“应聘者要事先做好准备,对公司近况、项目情况有所了解,对所应聘的工作真的很有热情。另外,应聘者还要准备好合适的问题问面试官。”
——韩伟东(盛大,高级研究员)
“应聘者在面试过程首先需要放松,不要过于紧张,这有助于后面解决问题时开拓思路。其次不要急于编写代码,应该先了解清楚所要解决的问题。这时候最好先和面试官多做沟通,然后开始做一些整体的设计和规划,这有助于编写高质量和高可读性的代码。写完代码后不要马上提交,最好自己review并借助一些测试用例来走几遍代码,找出可能出现的错误。”
——尧敏(淘宝,资深经理)
“‘神马’都是浮云,应聘技术岗位就是要踏实写程序。”
——田超(微软,SDE II)
1.2 面试的三种形式
如果应聘者能够通过公司的简历筛选环节,那恭喜他取得了阶段性的成功。但要想拿到心仪的Offer,应聘者还有更长的路要走。大部分公司的面试都是从电话面试开始的。通过电话面试之后,有些公司还会有一两轮远程面试。面试官让应聘者共享自己的桌面,远程观察应聘者编写及调试代码的过程。如果前面的面试都很顺利,应聘者就会收到现场面试的邀请信,请他去公司接受面对面的面试。整个面试的流程我们可以用图1.1表示。
图1.1 面试的形式和流程
注:只有少数公司有共享桌面远程面试环节。
1.2.1 电话面试
顾名思义,电话面试是面试官以打电话的形式考查应聘者。有些面试官会先和应聘者预约好电话面试的时间,而还有些面试官却喜欢搞突然袭击,一个电话打过去就开始面试。为了应付这种突然袭击,建议应聘者在投出简历之后的一两个星期之内,要保证手机电池能至少连续通话一个小时。另外,应聘者不要长时间呆在很嘈杂的地方。如果应聘者身在闹市的时候突然接到面试电话,那么双方就有可能因为听不清对方而倍感尴尬。
电话面试和现场面试最大的区别就是应聘者和面试官是见不到对方的,因此双方的沟通只能依靠声音。没有了肢体语言、面部表情,应聘者清楚地表达自己想法的难度就比现场面试时要大很多,特别是在解释复杂算法的时候。应聘者在电话面试的时候应尽可能用形象化的语言把细节说清楚。例如,在现场面试的时候,应聘者如果想说一个二叉树的结构,可以用笔在白纸上画出来,就一目了然。但在电话面试的时候,应聘者就需要把二叉树中有哪些结点,每个结点的左子结点是什么、右子结点是什么都要说得很清楚,只有这样面试官才能准确地理解应聘者的思路。
很多外企在电话面试时都会加上英语面试的环节,甚至有些公司全部面试都会用英语进行。电话面试时应聘者只能听到面试官的声音而看不到他的口型,这对应聘者的听力提出了更高的要求。如果应聘者在面试的时候没有听清楚或者听懂面试官的问题,千万不要不懂装懂、答非所问,这是面试的大忌。当不确定面试官的问题的时候,应聘者一定要大胆地向面试官多提问,直到弄清楚面试官的意图为止。
面试小提示:
应聘者在电话面试的时候应尽可能用形象的语言把细节说清楚。
如果在英语面试时没有听清或没有听懂面试官的问题,应聘者要敢于说Pardon。
1.2.2 共享桌面远程面试
共享桌面远程面试(Phone-Screen Interview)是指利用一些共享桌面的软件(比如微软的Live Meeting、思科的WebEx等),应聘者把自己电脑的桌面共享给远程的面试官。这样两个人虽然没有坐在一起,但面试官却能通过共享桌面观看应聘者编程和调试的过程。目前只有为数不多的几家大公司会在邀请应聘者到公司参加现场面试之前,先进行一两轮共享桌面的远程面试。
这种形式的面试,面试官最关心的是应聘者的编程习惯及调试能力。通常面试官会认可应聘者下列几种编程习惯:
● 思考清楚再开始编码。应聘者不要一听到题目就匆忙打开编程软件如Visual Studio开始敲代码,因为在没有形成清晰的思路之前写出的代码通常会漏洞百出。这些漏洞被面试官发现之后,应聘者容易慌张,这个时候再修改代码也会越改越乱,最终导致面试的结果不理想。更好的策略是应聘者应先想清楚解决问题的思路,算法的时间、空间复杂度各是什么,有哪些特殊情况需要处理等,然后再动手编写代码。
● 良好的代码命名和缩进对齐习惯。一目了然的变量和函数名,加以合理的缩进和括号对齐,会让面试官觉得应聘者有参与大型项目的开发经验。
● 能够单元测试。通常面试官出的题目都是要求写函数解决某一问题,如果应聘者能够在定义函数之后,立即对该函数进行全面的单元测试,那就相当于向面试官证明了自己有着专业的软件开发经验。如果应聘者是先写单元测试用例,再写解决问题的函数,我相信面试官定会对你刮目相看,因为能做到测试在前、开发在后的程序员实在是太稀缺了,他会毫不犹豫地抛出绿色的橄榄枝。
通常我们在写代码的时候都会遇到问题。当应聘者运行代码发现结果不对之后的表现,也是面试官关注的重点,因为应聘者此时的反应、采取的措施都能体现出他的调试功底。如果应聘者能够熟练地设置断点、单步跟踪、查看内存、分析调用栈,能很快发现问题的根源并最终解决问题,那么面试官将会觉得他的开发经验很丰富。调试能力是在书本上学不到的,只有通过大量的软件开发实践才能积累出调试技巧。当面试官发现一个应聘者的调试功底很扎实的时候,他在写面试报告的时候是不会吝啬赞美之词的。
面试小提示:
在共享桌面远程面试过程中,面试官最关心的是应聘者的编程习惯及调试能力。
1.2.3 现场面试
在通过电话面试和共享桌面远程面试之后,应聘者不久就会收到E-mail,邀请他去公司参加现场面试(Onsite Interview)。
去公司参加现场面试之前,应聘者应 ............
以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。
书云 Open E-Library » 剑指Offer:名企面试官精讲典型编程题 - (EPUB全文下载)