剑指Offer-面试的流程

周日就要面试了,才突然发现没有正式地学习过面试本身,补一下课

面试的三种形式

电话面试

  • 电话充好电
  • 不要太嘈杂
  • 要尽可能地多问问题的细节
  • 尽可能地用形象的语言将细节说清楚
  • 听不懂/不理解的话要多问
  • 用自己的理解复述一遍问题

共享桌面

思考清楚再开始写代码

  1. 明确解题思路
  2. 估计时空复杂度
  3. 边界条件

良好的函数命名和缩进对齐

单元测试

  • 先给出测试样例
  • 再开始写代码
  • 非常有用
  • 代码出错,也不要着急,耐心调试

现场面试

  • 规划路线,估算时间
  • 准备得体的衣服
  • 注意邀请函内的面试流程
  • 注意提前想好几个问题

面试的三个环节

行为面试

开始:一个简短的自我介绍(主要的学习,工作经历,30s-1min)

  • 用于调整自己的状态
  • 更多只是一个暖场

问题:项目经历

使用STAR模型描述项目

  • Situation:项目背景
  • Task:完成的任务,注意参与与负责的区别,一旦说了负责,就会被问到架构设计,核心算法以及团队合作
  • Action:怎么做的,设计/开放/测试
  • Result:贡献,性能优化/维护/测试最好带上数字;功能的话则说具体的功能内容

其他问题

  • 最大的问题,如何解决
  • 学到了什么
  • 和其他成员有没有冲突,如何解决冲突

提示

  • 背景可以简化一些
  • 工作和成绩才是重头

技能:用词

  • 参与/负责:做了一些工作/对整个项目了如指掌
  • 了解/熟悉/精通:上过课,看过书,没有做过项目/使用某项技术较长时间,具有相关文档可以解决一些问题/得心应手,能够解决同事的问题,不能随便写
  • 应聘原因:前一项工作得不到发展/刚到厌倦

技术面

  • 基础知识:语言,数据结构,算法
  • 代码质量:边界条件,特殊输入,先加限制,再逐渐扩充,鲁棒性,尤其是空指针和错误处理,先写测试样例非常重要
  • 分析思路:举例将其具体化,用画图表示数据结构,尝试分解问题
  • 优化效率:
  • 综合能力:沟通,理解,学习能力,抽象能力等

提问环境

最好提前准备二到三个问题,以备不时之需。

不要问的问题

  • 和自己的职位没有关系的问题
  • 不要问薪水
  • 不要问面试结果

推荐问题:职位或项目相关的问题

  • 做好功课,了解时间,业务和职位要求
  • 留心面试官说过的话