【面经】面试基本流程

写在前面 和别的行业不同
计算机行业是一个继续把面试经常列入行程的行业,即便不打算转行,也必须多去几家公司去面试了解现在的行情,不然坐久了技术便会落后
所以请各位同学务必重视
本页内容部分选自剑指Offer,以时间线作为线索
第一阶段:投简历 这个大家上招聘网站上投就行啦,就不用教了
当然由于博主经验还很少,简历怎么写,仅仅给几个要点
【1】推荐平台:牛客网,力扣,前程无忧,猎聘,智联,拉钩
【2】计算机的简历和别的行业不同,是可以反应学习成果的,自己在下班或者课下学了什么技术只管网上写,配合自己的实战经验作为证明更好
【3】照片一定要好看,正所谓人要衣装,佛要金装嘛,个人推荐在天之蓝拍
【4】例如参加学生会,歌唱比赛这些乱七八糟的别往上写,不仅没用还会减分
【5】简历可以润色但务必真实,不可瞎编乱造,不要把公司当傻瓜,人家会做背调的,吹牛吹过头了肯定会穿帮
第二阶段:简历筛选通过 这时候会有三种面试:电话面试,共享桌面远程面试、现场面试
电话面试 顾名思义,电话面试是面试官以打电话的形式考查应聘者。

优势:
【1】对于社恐的同学比较友好,看不到真人
【2】问问题不会过于深奥,毕竟电话里很多事情说不清楚
【【面经】面试基本流程】【3】不用出远门
考点:
【1】容易突然袭击,造成在不方便接电话的时候面试
【2】没有肢体语言,对语言的表述要求较高
【3】如果有外语面试,会增加外语听力的难度
提示:
【1】应聘者在电话面试的时候应尽可能用形象的语言把细节说清楚。
【2】如果在英语面试时没有听清或没有听懂面试官的问题,则应聘者要敢于说Pardon,当然中文也是一个道理,不要害怕提问,面试官不会吃人,如果会那种公司也没必要去。

共享桌面远程面试 共享桌面远程面试是指利用一些共享桌面的软件(如微软的Skype、思科的WebEx等),应聘者把自己电脑的桌面共享给远程的面试官。
优势:
【1】对于社恐的同学比较友好,不用脸对脸
【2】可以在自己熟悉的环境下进行面试
【3】不用出远门
【4】一般是大公司才有
考点:
【1】思考清楚再开始敲代码,不要一下笔就做,这个所有的考试都有
【2】为了让面试官留下好印象,要有良好的命名习惯
【3】能够进行单元测试,能做到测试在前开发在后的程序员,那基本上面试官得跪下叫爸爸了【开个玩笑哈】
【4】所有的代码都不可能一帆风顺,哪怕照抄也一样,如果偶尔有,那是老天的恩惠【本人就有过一次哈哈】,写代码遇到问题后程序员的反应能力,这些书上是学不到的,只有实战才会懂
提示:
【1】在共享桌面远程面试过程中,面试官最关心的是应聘者的编程习惯及调试能力。

现场面试 优势
【1】对于擅长社交的同学来说,这个难度不会很高
【2】对于颜值高的同学【当然我不是】,这也是个加分项哈哈哈
考点【下节讨论】
现场面试是整个面试流程中的重头戏。由于是坐在面试官的对面,应聘者的一举一动都看在面试官的眼里。面试官通过应聘者的语言和行动考查他的沟通能力、学习能力、编程能力等综合实力。

提示:
【1】规划好着装得体出行路线和时间,千万不要迟到,你想想看面试都迟到,上班不得天天迟到早退呀
【2】注意面试流程,有时候面试是挺漫长的要持续几个小时,建议带一些提神的装备
【3】事先准备好几个问题,有些面试官会在最后让你问问还有没有什么问题需要咨询的,一般是薪资,五险一金之类的,当然大厂可能不同,以后再补充吧
第三阶段:现场面试的三个环节 行为面试环节 基本面试环节
时间:5—10分钟
内容:
【1】应聘者的性格特点
【2】深入了解简历中的项目经历【可以事先准备好】
【3】技术问题一般不涉及
【4】自我介绍30s-60s【可以事先准备好,主要是学习和工作经历】,注意没用的经历【学校里做志愿者,学生会之类的的少说,面试官不是跟你唠家常】
提示:这段时间可以调整自己的情绪,让自己进入状态
拓展:面试官深入追问
【1】应聘者的项目经验
可以从以下四个方面介绍【STAR】
Situation:简短的项目背景。【这里内容比较少】
Task:自己完成的任务。【这里务必详细,面试官会不停地追问,别只写了几行代码就说自己负责的,一个不诚信的人找工作基本不可能成功】
Action:为完成任务自己做了哪些工作,是怎么做的。
Result:自己的贡献。【这方面也最好具体,最好能用数字加以说明,参与开发功能,则可以说暗示完成了多少功能,如果做优化,可以说性能提高百分比多少,如果修BUG可以说修改了多少BUG】

如果在应聘者的简历中上述4类信息还不够清晰,则面试官可能会追问相关的问题。除此之外,面试官针对项目经验最常问的问题包括如下几个类型:

  • 你在该项目中碰到的最大问题是什么,你是怎么解决的?
  • 从这个项目中你学到了什么?
  • 什么时候会和其他团队成员(包括开发人员、测试人员、设计人员、项目经理等)有什么样的冲突,你们是怎么解决冲突的?
因此在准备简历的时候最好把这些问题都说清楚
【2】应聘者掌握的技能
可以给大家一些简历术语
了解:上过课看过书,没有项目经验
熟悉:实战项目中适用某项技术已经有较长的时间,通过查阅文档可以解决大部分问题
精通:无论什么人问问题都能回答,能够回答同学或者同事的绝大多数问题
【3】为什么跳槽
这个时候是说漂亮话的时候,这个大家都能自己编了,就不多写了
规避以下几个原因:老板太苛刻,同事难相处,加班太频繁,工资太低廉
推荐原因:想挑战更有挑战性的工作
技术面试环节 时间:40-50分钟【重头戏】
内容:
【1】基础知识扎实全面,包括编程语言、数据结构、算法等
【2】能写出正确的、完整的、鲁棒的高质量代码【注意特殊输入】
【3】能思路清晰地分析、解决复杂问题
【4】能从时间、空间复杂度两方面优化算法效率
【5】具备优秀的沟通能力、学习能力、发散思维能力等
这些内容都可以做足准备
最简单的就是去刷LeetCode,牛客网之类的

可能有同学认为面试官不要你可能是因为性格不适合,态度不够诚恳,其实大家都是程序员,都是直来直去的,他们只认题目做不做的对
如果题目简单了但是被拒了,十有八九就是代码没写好
往往越简单,面试官给出的数据越刁钻

但如果有些问题比较复杂,面试官就会考虑面试者能否在很短的时间里给出清晰地思路,因为如果要求面试者在很短的时间里解决很复杂的问题着实有些强人所难
所以这个时候不要惧怕做不出来,要让自己能否给出一个完整地思路

另外往往你做出来以后面试官会提醒你有更好的办法,不要放弃思考,毕竟我们编程序就像造武器,最终就是为了火力又猛又轻巧

最后就是软技能
很多同学看我置顶首页会发现我考法考,学辩论,这其实就是练一下嘴,增加点社交能力
毕竟现在是团伙作案,三个臭皮匠顶个诸葛亮
另外也要不断增强自己的学习能力,毕竟计算机行业更新迭代太快了

应聘者提问 时间:5-10分钟
要点:
【1】这里可以事先准备好,因为这往往是最后的环节
【2】如果操作得好这里是加分项
【3】和自己的职位有关
【4】不要问薪水【不是说全程不问,技术面试的时候不要问】
【5】不要打听面试结果
推荐问题:
【1】与应聘岗位和项目相关【建议在面试前就做足功课】
【2】注意面试官介绍的时候说的话,往往可以成为提问的要点
第四阶段:收尾工作 不管成功不成功,相见即是缘分,即便最终不成功也要注意基本的礼貌,毕竟做什么都是先做人
艾跃进教授说过,一切失败都是因为做人的失败
成功了不要狂喜过头【免得入职以后给你加工作】
失败了也不要过分沮丧甚至骂街【这样会无形中影响下一次面试】
咱们要努力告诉面试官,不留爷是你的损失哈哈哈

结语:今天就暂时和大家聊到这里,祝大家收获理想的Offer

    推荐阅读