面试的形式

  • 电话面试
    • 环境安静
    • 用形象化的语言把细节说清楚
  • 共享桌面远程面试:考察编程习惯和调试能力
    • 思考清楚再编码
    • 良好的代码命名和缩进对齐习惯
    • 能够进行单元测试:断点,单步跟踪,查看内存,分析调用栈
  • 现场面试
    • 不迟到
    • 注意面试流程
    • 准备几个问题

面试的环节

  • 行为面试:5~10分钟,性格特点,项目经历,暖场
    • 30s~1min 简单自我介绍:主要学习、工作经历
    • 若详细问项目,STAR模型
      • Situation:项目背景
      • Task:自己完成的任务
      • Action:为完成任务自己做了哪些工作,是怎么做的
      • Result:自己的贡献
    • 其他常见问题
      • 该项目中碰到的最大问题是什么,怎么解决的?
      • 从这个项目中学到了什么?
      • 什么时候会和其他团队成员(RD、QA、UED、PM)有什么样的冲突,你们是怎么解决冲突的?
    • 掌握的技能
      • 了解:只上过课或看过书,没有做过实际项目,不建议列在简历上,除非是应聘职位需要
      • 熟悉:实际项目中使用某项技术很长时间,通过查阅文档可以独立解决大部分问题
        • 项目开发过程中用到的技能,可以用“熟悉”
        • 毕业设计用到的技能
    • 为什么跳槽?
      • no: 老板太苛刻,同事太难相处,加班太频繁,工资太低
      • ok: 现在的工作做了一段时间,已经没有太多的激情了,因此希望寻找一份更有挑战的工作。再论述为什么有些厌倦现在的职位,以及面试的职位我为什么会有兴趣。
  • 技术面试:40~50分钟
    • 基础知识扎实全面,包括编程语言、数据结构、算法等
    • 能写出正确的、完整的、鲁棒的高质量代码
    • 能思路清晰地分析、解决复杂问题
    • 能从时间、空间复杂度两方面优化算法效率
    • 具备优秀的沟通能力、学习能力、发散思维能力等
  • 应聘者提问
    • 问与职位或项目相关的问题
    • 不要问薪水
    • 不要打听面试结果