面试流程
- 电话面试
- 共享桌面远程面试(少部分大公司)
- 现场面试
主要讲最为重要的现场面试
现场面试的三个环节
行为面试 : 面试刚开始的5~10分钟进行,作为暖场的过程。
面试者被要求进行自我介绍;
面试者可能会针对你简历上的项目进行一些提问;(在填写项目时,应该把笔墨着重放在介绍自己完成的工作而不是项目的背景上)
询问你简历上的技能问题; (写简历时不要随便使用“精通”,“了解”等字眼,应该使用“熟悉”)
如果你是跳槽的,可能会问你“为什么跳槽”。 (避免以下几个理由 :老板太苛刻、同事难相处、加班太频繁、工资太低,应该告诉面试官自己对这份工作感兴趣,以前的工作干时间长了没激情了)
技术面试环节 :整个面试环节中最为重要的环节
面试官主要考察三个方面 :基础知识、高质量的代码、清晰的思路、优化效率的能力
基础知识
基础知识主要三个方面:
- 编程语言:应该至少熟练掌握两门语言,一门面向过程,一门面向对象。熟练!
- 数据结构:至少熟练掌握链表、树、栈、队列和哈希表等数据结构以及它们的操作。其中链表和二叉树相关的问题最常提及。面试者需实现对链表的插入和删除节点了如指掌,对二叉树的各种遍历方法的循环和递归写法烂熟于胸。
- 查找、排序等算法:重点掌握二分查找、归并排序和快速排序。谷歌、百度等公司还会要求应聘者熟练掌握动态规划和贪婪算法。
高质量的代码
面试中的代码需具有鲁棒性:一定要考虑周全在写代码,最好的方法就是动手写代码之前想好测试用例,考虑到边界条件、特殊输入和错误处理等方面,对空指针要加以判断和特殊处理。
清晰的思路
有时候面试官会故意出一些非常复杂的题目,他并不期待你在面试过程中给出完整的答案,更加看重的是你是否有清晰的思路。
解决难题的三大法宝(谨记):
- 画图:画图能使问题形象化
- 举例:举例能使问题具体化
- 分解:分解能使复杂问题简单化
优化效率的能力
程序员应该一直关注自己的程序对时间和内存的消耗。
优化时间效率和空间效率的方法:
- 分析效率: 平时做题的时候要做完一题,就得立刻分析程序的时间复杂度和空间复杂度。
- 熟知各种数据结构的优缺点
- 熟练掌握常用的算法:查找和排序算法
应聘者提问环节
应聘者提问环节在面试的最后5~10分钟,提问的时候需要注意:
- 不要问假大空的事情:例如公司未来的规划之类的
- 不要谈钱,不要谈钱,不要问薪水 : 技术面试不是谈薪水的时候,工资的事情应该留到你过了面试和HR谈。
- 不要当场打听面试结果
- 问与公司项目,你应聘的工作相关的问题:面试之前就应该做好功课,把公司的主要业务,职位要求了然于胸。
网友评论