《剑指offer学习笔记-第一章:面试流程》

第一章:面试流程
一、面试的三种形式:电话面试、共享桌面远程面试、现场面试
1.电话面试:以打电话形式考察应聘者,面试官可能约好时间也可能突然袭击,为避免后者,在投出简历一两个星期之内应保持手机能通话一小时,并且最好不要长时间呆在嘈杂的地方,不然听不清对方说话会很尴尬。
电话面试的沟通只能靠语言,你应尽可能用形象化语言把细节说清楚。很多外企电话面试会加入英语面试环节。在没听懂没听清面试官问题时要大胆向面试官提问,直到弄清意图为止。

2.共享桌面远程面试:你会把桌面共享给面试官,面试官可观看你的编程调试过程,主要考察你的编程习惯和调试能力。通常注意一下几点:
(1)思考清楚再编码
(2)良好的代码命名和缩进对齐习惯
(3)能进行单元测试
(4)编程遇到问题能熟练设置断点、单步跟踪、查看内存、分析调用栈、发现问题根源并解决问题。

3.现场面试:应做好下面几点准备:
(1)规划好路线计算出行时间,避免迟到。
(2)准备好得体的衣服。
(3)注意面试邀请函的面试流程。
(4)准备几个问题。

二、面试的三个环节:行为面试、技术面试、提问环节

  1. 行为面试环节
    面试官会注意应聘者性格特点,深入了解简历中列举的项目经历。可能此处会要求自我介绍,用1分钟线左右时间介绍自己的学习工作经历。
    (1) 项目经历
    面试官会详细了解感兴趣的项目,准备简历可以用STAR模型:
    Situation:简短的项目背景,如项目规模、用户、功能等
    Task:自己完成的任务,分清参与和负责。
    Action:做了哪些工作,如何做的。如系统架构、应用的技术、如何测试等
    Result:自己的贡献。开发、优化、维护占的百分比。
    此外面试官还可能问的问题:
    a. 你在该项目遇到的最大问题是?如何解决的?
    b. 从这个项目中你学到了什么
    c. 何时会和其它成员有冲突,如何解决。
    (2) 掌握技能
    面试官可能针对简历上提到的技能提出问题,注意技能的了解、熟悉、精通的区别。
    了解:学习过或看过书,但没做实际的项目。如果应聘的职位确实需要才列出了解内容。
    熟悉:实际项目中应用某项技术较长时间,通过阅读相关文档可解决大部分问题。简历中大部分技能应该是熟悉。
    精通:对某一项技术得心应手,能解决该技术较难问题。
    (3) 为何跳槽
    避免流露负面情绪,避免下面四个原因:老板苛刻,同事难相处,加班多,工资低。
    建议答案:现在工作做了一段时间,没有太多激情了,因此希望寻找一份更有挑战性的工作。

  2. 技术面试环节
    技术面试关注5种素质:扎实的基础知识、高质量的代码、分析问题思路清晰、能优化时间和空间效率、学习沟通能力。
    面试前需要对编程语言、数据结构、算法等基础知识有全面了解。遇到简单问题注重细节如完整性和鲁棒性。复杂的问题通过画图、举例分析、分解问题等方法理清思路。除此外还应不断优化时间空间效率,力求找到最优解法。主动提问,弄清题目要求,体现沟通能力。当面试官询问前后有关联的两个问题,把解决前面问题的思路迁移到后面的问题,体现学习能力。
    (1) 扎实的基础知识
    编程基本功:编程语言、数据结构、算法。
    (2) 高质量的代码
    面试官格外关注边界条件、特殊输入等体现代码质量的关键地方。最好是写代码前想好测试用例,把各种输入都想好了,才能在写代码是把各种情况都做相应处理,写完代码后,之前的测试用例都能输出正确时才提交代码。
    (3) 清晰的思路
    对复杂问题,面试官更看重面试者的思路。可用下面几个方法形成清晰的思路:
    a. 具体化:举几个具体例子帮助理解问题。
    b. 形象化:试着用图形表示抽象的数据结构。
    c. 简单化:把复杂的问题分解为若干简单子问题。
    (4) 优化效率的能力
    优化时间或者空间效率首先学会分析效率,要熟知各种数据结构的优缺点,选择合适的数据结构解决问题,熟练掌握查找和排序算法。
    (5) 优秀的综合能力
    除了编程能力和专业技能外,软技能如沟通能力和学习能力、抽象建模和发散思维也很重要。

  3. 应聘者提问环节
    在面试之前为每一轮面试准备2-3个问题,应避免询问和职位无关的问题,不要问薪水,不要打听面试结果。
    推荐问的问题是和应聘职位或者项目相关的问题,要对应聘职位和项目背景有一定了解,一是在网上收集公司成立时间、主要业务、职位要求等信息,二是留意面试官说的话,如面试前对职位和项目的简单介绍,可从中找出一两个点提问。

你可能感兴趣的:(读书笔记)