【1】行为面试环节
项目经验是重中之重,简历撰写参考STAR模型:即Situation(简短的项目背景),
Task(完成的任务),Action(为完成任务做了哪些工作,怎么做的),Result(自己的贡献)。
准确描述对技能的定位:了解,熟悉,精通。
一定需要注意的是:回答为什么跳槽。一定要往积极方面去回答,如个人技术瓶颈,想寻找一份更有挑战的工作。
【2】技术面试环节
基础知识扎实全面,包括编程语言,数据结构,算法等等;
能写出正确的,完整的,鲁棒的高质量代码;
能思路清晰地分析,解决复杂问题;
能从时间,空间复杂度两个方面优化算法效率;
具备优秀的沟通能力,学习能力,发散思维能力等
【3】扎实的基础知识:编程语言,数据结构和算法。链表,树,栈,队列和哈希表等。
a.大公司倾向于链表和二叉树相关的问题:链表的插入和删除;二叉树的各种遍历方法的循环和递归
b.大部分公司都会考察查找, 归并排序和快速排序
c.bat等高科技公司比较注重动态规划和贪婪算法
【4】高质量的代码
a.边界条件,特殊输入等测试案例
清晰的思路
a.枚举法
b.图例法
c.复杂问题简单化(分治法和动态规划)
优化效率的能力
a.寻找时间消耗或者空间消耗上可以优化的地方
b.牺牲小小空间换取大的时间优化-文波那契数列
*递归法O(2^n),
*归纳法O(n)(f(1)+f(2)->f(3), f(2)+f(3)->f(4)),…, f(n-2)+f(n-1) = f(n)
.沟通能力和迁移学习能力
【5】 应聘者提问
有针对的准备,预备三四个有技术含量的问题