周日就要面试了,才突然发现没有正式地学习过面试本身,补一下课
面试的三种形式
电话面试
- 电话充好电
- 不要太嘈杂
- 要尽可能地多问问题的细节
- 尽可能地用形象的语言将细节说清楚
- 听不懂/不理解的话要多问
- 用自己的理解复述一遍问题
共享桌面
思考清楚再开始写代码
- 明确解题思路
- 估计时空复杂度
- 边界条件
- 写
良好的函数命名和缩进对齐
单元测试
- 先给出测试样例
- 再开始写代码
- 非常有用
- 代码出错,也不要着急,耐心调试
现场面试
- 规划路线,估算时间
- 准备得体的衣服
- 注意邀请函内的面试流程
- 注意提前想好几个问题
面试的三个环节
行为面试
开始:一个简短的自我介绍(主要的学习,工作经历,30s-1min)
- 用于调整自己的状态
- 更多只是一个暖场
问题:项目经历
使用STAR模型描述项目
- Situation:项目背景
- Task:完成的任务,注意参与与负责的区别,一旦说了负责,就会被问到架构设计,核心算法以及团队合作
- Action:怎么做的,设计/开放/测试
- Result:贡献,性能优化/维护/测试最好带上数字;功能的话则说具体的功能内容
其他问题
- 最大的问题,如何解决
- 学到了什么
- 和其他成员有没有冲突,如何解决冲突
提示
- 背景可以简化一些
- 工作和成绩才是重头
技能:用词
- 参与/负责:做了一些工作/对整个项目了如指掌
- 了解/熟悉/精通:上过课,看过书,没有做过项目/使用某项技术较长时间,具有相关文档可以解决一些问题/得心应手,能够解决同事的问题,不能随便写
- 应聘原因:前一项工作得不到发展/刚到厌倦
技术面
- 基础知识:语言,数据结构,算法
- 代码质量:边界条件,特殊输入,先加限制,再逐渐扩充,鲁棒性,尤其是空指针和错误处理,先写测试样例非常重要
- 分析思路:举例将其具体化,用画图表示数据结构,尝试分解问题
- 优化效率:
- 综合能力:沟通,理解,学习能力,抽象能力等
提问环境
最好提前准备二到三个问题,以备不时之需。
不要问的问题
- 和自己的职位没有关系的问题
- 不要问薪水
- 不要问面试结果
推荐问题:职位或项目相关的问题
- 做好功课,了解时间,业务和职位要求
- 留心面试官说过的话