先讲面试流程,按时间和公司来排序:
阿里阿里在拥抱变化消息放出来之后,随随便便做了笔试题,然后竟然收到了面试通知。技术面略温和。可能是他们不招人的原因。
一面:
问了一个改进的二分查找,要求找到输入为N的第N个值为K的数。
要求写了多线程下的单例。
问了为何选择IOS开发而不是Android开发。我说做Android开发时遇到一些坑,他就具体问我哪些坑。然后问后续有没有解决这些坑。
后来给我总结说自信活泼,能力强,但是遇到问题要深挖。
二面:
拔得很高,都是些很抽象的问题,结合简历来问的,面试官喜欢临场发挥,提一些问题。这个面试官气场很强,几乎打乱我的节奏。
- 让你带一个全新的系统,你打算怎么做?
- 命令模式是什么?
- 一个GBK编码在各种机型上测试跑出来有很多不同的错误码,错误不确定,要怎么检查?
- 为何引擎、UI渲染通常情况下用单线程来做?
- UI的优先级是如何?
- 后续打算如何学习IOS?有没有具体的计划?
被问的很惨,但是或多或少有结合自己具体的经验去回答抽象的问题。应该是这一点让技术二面决定让我进HR面了吧。
HR面:最恶心的一面了。害的劳资都有HR面恐惧症了。
要求用两个字评价大学生涯。
遇到的最大挫折是什么。
在我讲述过程中多次打断我,插入一些鄙视我学校、鄙视学校学生的话。
最后跟我各种吐槽阿里缩招的事,选几句经典的话。
PS.我并不是阿里宝宝,但是因为这个事情成为阿里黑。签了之后做的第一件事情就是黑阿里HR。然而阿里的技术都很赞。
百度百度第一次笔试,进不去。百度第二次笔试,进不去,放弃。
鹅场技术一面
- 组合模式是啥。
- TCP/UDP区别。
- UDP的应用场景,为什么。
- 红黑树是啥。
- 堆是啥。
- 两个栈实现队列(让写代码)。
- 看些什么书平常。
- IOS里的isa指针。
技术二面
气场超级强大,不让说多余的废话,就一直问关键问题。
- 给一个数组,演练快排过程。
- C 里的几个Cast。
- c里的volatile关键字。
- UDP为何快。
- Socket编程。
- TCP三次握手。
- 为何IOS而不是Android。
- JAVA垃圾回收。
- C const实现。
- 宏和const的区别。
- 胜任工作的优缺点。
- 每个项目都几个人负责的。
- 使用过几个引擎间的差别。
- 4亿个QQ输入任意QQ判断是否是会员。
HR面
太温柔了。
华为
- 压力最大的情况是什么时候。
- 加班怎么看。
- 工作地点。
- OFFER收割情况。
机试
逆转单词问题。
取石子问题。
第三个忘了。
技术一面
- 如何当上副主席的。
- C与C 区别。
- C与C 哪个性能比较好。
- A*算法。
- 工作地点意愿。
技术二面(HR)
项目里用了哪些数据结构。
主要是项目。
细节加分项下面这些细节、技巧是我总结的,不一定适合每个人,大牛可以跳过去,这些都是细小的加分项。
面试前的一些准备
1)搜集信息,如果有前面的人去面试过了,尽可能多的打听一些信息,准备自己的回答,要保证这些问题问到你,能够答得得体。
2)注意形象,不要给人邋遢的感觉,快上场前注意一下牙齿。。换位思考自己如果是面试官,看到你的样子第一眼,会不会想要和你作为同事?
3)代码能力是最能拉分的,在面试前一天最该着重准备的是一些基本算法的默写,代码的风格最好参考一些规范的写法,注意边界条件。
4)有一些非常影响面试的性格弱点,希望在面试前一个月就自己认识清楚,最短时间努力去改正。比如说表达能力差的同学,一定要抽时间锻炼自己的演讲能力,和同学对话模拟演练,看一些辩论比赛,结合简历准备好台本等等等等。。
5)控制面试中比例的分配。面试可以分为项目和技术两大块,决策出你的最佳比例,项目熟悉的,多写一些在简历上,增加面试官问你项目的时间,不要盲目相信网上的所谓“简历最好一页,项目最好一个”,那是对你所有项目中有特别出色的一个而言。如果对自己项目特别熟悉,不要吝惜笔墨,但是要注意条理清晰。相反,如果对项目不够熟悉也来不及准备,就要在基础上下苦功夫了。如果简历上的东西不够出彩,导致面试官问的少,而且打算很快时间结束的话,你必须要有危机意识。这时候可以有这样一些险招来扳回一城。
- “我的基础/网络/数据结构比较扎实,您可以问一下这方面”
- 这些话一旦说出来,就要准备好被问到
- 红黑树/TCP格式/B树/内存管理等等比较难的问题,需要提前做好准备。
- 简历上也可以写一些引导面试官发问的内容。
在技能上
写上“熟悉游戏中的经典算法/在GIT上维护开源代码”这样具体的,引人发问的话。
面试中的一些技巧:
1)观察面试官的性格,也就是常说的察言观色。如果面试官比较活泼,就表现自己开朗积极的一面。可以在面试中试着活跃气氛,最能插段子的地方是自我介绍和讲述优缺点的时候。
如果面试官年纪比较大,记得表现诚恳谨慎,不要跳,不要飞,放慢语速,想好了再说话。一般这些年长的面试官阅人无数,眼光毒辣,最好不要想给他们挖坑。。
2)谈话本来就是双向的,讲项目的时候也有一些给面试官挖坑的地方,比方说让介绍项目的时候,自己特别熟的地方,也能体现自己能力很深的地方,故意不说的很清楚,让面试官问出来。然后再回答。
3)因为是应届生,对自己即将从事的行业的认识,最好能用自己的语言表达出来,不要上网找一些资深人士的总结去背诵,太过生硬,有的时候自己的认识 细节描述会给这段经历加很多分,也表现你是一个注重实践的人。
4)写代码的时候不要冷场,这个时候一般你不说话,面试官也不说话,他会在电脑上给你敲评价。这时候最好不要让他冷静下来作对你的分析,要陪他说话,最好的就是一边写一边说代码思路,不仅可以让你消除紧张,还可以缓和气氛。
杂七杂八的经验总结如何回答自己不会的问题?
面试官问的问题复杂了,一般有两种情况是难以回答的,第一种,上升到一个非常抽象的层次提的问题。这时候,应该向面试官提出对具体的线索的要求。“能不能举个具体的例子?”要求在具体情境下进行作答。这样就降低了回答的难度。
第二种是没接触过。这里再分为两种,第一种工作情景,和业务相关。第二种可以概括为具体的技术问题。
关于业务问题,需要你从自己的项目里作一些总结,回想一些类似的情景,“这个问题我在自己作项目的时候也出现过类似的。。然后我是这么解决的。。”甚至你可以偷换概念,从问题转向说一些表现自己能力的事情,总之不能直接回答不会。
关于技术问题,如果不会,解决的一个基本的原则就是分解,转成一系列小的,你熟悉的问题,一个个击破。“这个问题我会分三个阶段解决,首先。。然后。。”如果分到原子问题,仍然不会,可以求助面试官,但是求助之前必须试探几个思路,“您的问题是这个意思吗?/我理解的这个概念可能不对,但是我猜测是这个样子。。”
如何回答自己非常熟悉的问题?
如果会并且熟悉,平常你也有总结的话,可以拔高。举个例子,
面试官问到“稳定的排序有哪些?”
- 你可以回答“有插入排序、冒泡排序、基数排序”
- 也可以回答“内部排序有。。外部排序有。。”
我是这么回答的,“判断一个排序是否稳定要看算法中每一次循环中比较的步长,如果步长大于1,就是不稳定的”
面试官“那你说冒泡是稳定的吗”
- “是的,因为它只有相邻的作比较,步长等于1”
面试官“那插入排序呢?”
- “插入排序每一次循环都可以控制步长增长在1,也是稳定的”
面试官提问中的一些坑
“说一下你最得意的一个项目”
说一下个人的感受,我个人很讨厌这样的问题,尤其在我的简历上是精挑细选的三个项目之后。而且只说一个会导致我的节奏被打乱,陷入被动。
我会先试探的说,我是一个诚实的人,每个项目都是自己非常骄傲熟悉的,不擅长和非核心的项目并没有写到简历上去。可不可以用简短的话来一一为您介绍。
如果不可以,这时候就要做一个抉择,说哪一个?我的建议是,说和你应聘职业最相关的那一个,展现你的专业和职业的契合度,同时保持一个谦虚的态度,因为来面试你的都是这个专业的资深人士。没有的话,再说你最拿手的一个,记住由于面试官不会特别熟悉你的专长,为了避免他觉得无聊,请举足够多的例子,打足够多的比方,轻松幽默的讲述这个项目。
“你还有什么要问我的吗?”
我在这个问题上栽了无数的跟头。讲讲几个禁区吧,在你和面试官聊的不是很HAPPY的时候,不要问过于私人的问题,问面试官工作经验什么的;
- 不要问一下百度就能知道的蠢问题,什么公司这个事业群分几个部门,有哪些城市;
- 不要问公司保密的问题,工资福利;
- 不要问假大空的问题,什么公司发展前景的;
- 不要问会显示自己缺点的问题,让HR给你作人生规划什么的;
- 不要问与面试无关痛痒的问题。
保险中求保险的回答:
- “请您为我这次面试做一次点评好吗”
- 如果有更好的答案,请联系我。
- “遇到问题你是怎么解决的?”
这个问题,必须结合自己亲身体验,要讲的感人至深,引起面试官的共鸣。
问题分两个部分。
“什么困难?”
“怎么解决?”
困难的选择最好和你应聘的职业相关,如果是程序员,讲技术是最好的回答,把困难产生的成因和情景都交代完了,就算是编的也请把细节说的详细点,让面试官走进情景里。然后给出详细的、漂亮的解决方案,“因为困难发生突然而且时间紧迫,我先制定了一个紧急的解决方法,但是不算成熟,后来我一直对它觉得疑惑,潜下心来去网上找大牛的解决方案,一个个去实践,然后总结。。/因为网上没有搜到相关的解决方案,我去查看了源代码,发现问题是。。
但是这都是我一些比较粗浅的见解,面试官您作为这个技术的资深从业人士,您觉得这个问题还有什么更好的解决方案?”
“你觉得你的缺点是什么?”
这个问题非常难以回答,一不小心回答错误整个面试印象分会被拉倒非常低。
一些经典回答又被大家用烂,也会让面试官讨厌你。
............
另外分享一下我的心路历程
前一晚
1)敷个面膜,准备小裙子和鞋子,买好水和干粮。
2)脑海里演练被自己面试的过程。
3)联系已经面试过的同学索要面试信息。
前一个小时
1)检查牙齿
2)默写排序
3)自我介绍的练习
PS.签了之后和实验室的小伙伴多喝了几杯头脑发热之后写出这些东西,希望酒醒了不会觉得自己太装B想删文。
祝大家都拿到理想OFFER。
,