小墨の博客

梦想需要付诸行动,否则只能是梦

面试经验整理(最新更新时间:2021.06.28)

本文部分内容收集整理于互联网。


笔记整理:

1面

自我介绍 不用说太多内容 讲亮点 (换工作原因)

基础知识 手写代码


2面

简历上项目的问题 写2-3个非常熟悉的项目 不要超过3个


3面 leader


4面 hr

坚持底线(心理的,不要说出来) 争取高薪

现在的薪资要实事求是的说,福利可以夸大一些

最好是花一天认真的学谈判技巧


奈学内推总结:


1、不要直接说“我没有问题了”

“你有什么问题要问我?”它的潜台词是,“你还想了解一些什么?帮助你更好地留在这里?”换句话说,“你有多想留在这里?”

很多求职者觉得双方沟通得差不多了,往往会直接回答,“我没有问题了”。

这样回答有2个负面影响:

第一,你居然不想知道详细的、切身利益相关的、在公司网站和媒体无法获知的情况?这可能会让面试官认为你对这个职位的兴趣并不大。

第二,很多公司都非常注重员工的个性和创新能力,回答“没问题”,可能会让面试官认为你是一个“没想法”的人,给你贴上否定的标签。


2、一定不能问很容易在网上搜到答案的问题,如业务,产品

提问也是有学问的,千万不要问通过互联网搜索就可以了解答案的问题,比如公司的主营业务,产品名称,行业地位等,否则会让面试官觉得你信息闭塞,对公司了解不够,对此次面试准备不足。


3、薪酬、加班等问题,不建议上来就问,可放在提问的最后

很多求职者非常关注薪酬福利,第一个问题会问薪资待遇,第二个问题会问是否要加班,这非常不妥。

直接问薪资,会让面试官觉得你是一个重利的人;直接问加班,会让面试官潜意识里认为你是一个拒绝加班的人。

这里并不是说薪资和加班不可以问,提几个其他问题之后再问,也顺理成章。如果其他都不问,只问这个,就会让人感觉求职者非常功利。


4、像这样提问,表现你是一个非常上进的人

如果问以下问题,会让面试官感到求职者很有进取心,会增加对求职者的好感。

为了更好地胜任这个岗位,我还需要补充哪些技能?

入职后是否有产品培训和技能培训?

这个职位在公司的发展前景是怎样的?有什么晋升机制?在什么条件下,可以获得晋升机会?


5、像这样提问,表现你想加入公司的意愿非常强烈

如果问以下问题,相当于表达了求职者加入公司的强烈愿望,说明求职者对这个工作机会很在意。

赢得这个岗位需要几轮面试?接下来的流程是什么?

团队成员有多少人?大家怎么分工?目前团队的核心工作是哪些?

如果我来到公司之后,每天的日常工作是什么?

公司对我这个职位的期望是什么?

如何评估员工在试用期间的表现?考核标准是什么?


6、如果沟通得比较顺利,你可以这样提问,加深面试官的印象

在沟通得比较顺利的前提下,也有求职者会这样提问,“请问面试官,你为什么会愿意留在这家公司?”这会拉近彼此的距离,面试官不是高高在上的,而是像朋友一样和你分享她的一段经历。

如果与面试官沟通得比较愉快,求职者也可以在提问的最后这样说,“我没有其他问题了,与您交流非常愉快,能留一张您的名片么?(或者方便加一下您的微信么?)”

在前面沟通得比较好的基础上,面试官一般不会拒绝你的要求。这样做可以和面试官建立长线联系,后续不仅可以咨询面试结果,还可以请教其他问题。无论是否入职这家公司,都可以把面试官当成朋友来相处。

面试是一件“见仁见智”的事,面试官有不同的风格和喜好,以上内容仅供参考,求职者不能机械和教条,需要随机应变,灵活运用。





一、一入阿里

1:面试流程:一共5面,一面:电话,是部门平级沟通。二面:leader(p8),三面:主管(p9),四面:交叉(p9) 五面:HRG

2:面试问题, 基本围绕着岗位相关技术等提问,以及你对未来的思考,行动方案。所以基本是看应聘者自己的表达能力和思维逻辑等。

3:关于背调和入职流程,一般来说半个月左右能搞定

4:关于薪资:面试之前都可以参考一下阿里定级薪酬标准,一般来说出入不大


二、二进宫好进吗?

我觉得看个人与岗位的符合程度,离职后半年可以再次申请,但是据说阿里只接受一次回头,也就是离职了两次不可以再入职权里了,再者就是如果经历,能力都得到业务老大的认可,HR也可能因为价值观,以往的评分,以往面试记录,看你不爽等原因挂掉你(这些都是特殊情况),原则上不会因为二进宫挂你,而是因你不符合要求而挂。


三、社招对年龄有要求吗?

基本上来说没有明确的要求,看主管,看HRG。基本上符合岗位要求都是差不多的。


成名需趁早,有能力早点到大厂工作。大厂虽苦逼,虽难熬,但你会收获很多,眼界,方法等等最重要的你要知道,你是和这个行业相对优秀的人一起共事。最后在大厂也不要抱怨,相对来说,你们己经在一个相对公平,公正,平等的环境中了,起码奋斗还是会有所收获的。


来源:https://baijiahao.baidu.com/s?id=1643207505129754122




一、投递简历

1. 找内推。大公司投简历尽量找内推,无论是校招还是社招。校招可以去牛客网或知乎找,社招可以在微博、知乎或者找猎头也可以。内推不代表给你的简历加buff,而是能给面试进度加个进度条,便于追踪。

2. 不重复投递简历。我在公司里帮HR调研过一段时间的招聘系统,招聘系统一般会自带去重功能。也就是你找人内推了,自己又在官网投了一次,这样简历来源会从内推渠道转化为官网投递,而有些公司会优先筛选内推的,所以重复投简历显得很没必要。大家在找人内推的时候,他们会跟你说你内推完就不要再去官网投递了,也是这个道理。

3. 这边补充一个我在我星球里分享的投递玄学,很多同学都说很好用。

#面试经验

推荐大家在星期三下午或者星期四早上投递简历,这样既可以在这星期收到面试通知,也顺便把面试安排在下个星期,给自己预留点时间对即将面试的公司进行业务了解或者对应的面试题搜索复习。

如果在星期一星期二投的简历面试时间正常都在星期四星期五,所以推荐在星期三下午或者星期四上午投,可以给自己多出星期的两天。

提前写好简历投,倒逼自己复习,这几天效率应该是最高的。


二、准备面试

1. 阿里内推的简历是不用去做官网的面试题,包括技术和素质,但做完面试题好像会加快这个内推流程。我在内推完的一星期都没动静,于是去做了官网的面试,做完的第二天就收到了面试通知。我也有几个朋友他们没做面试题的,比我晚几天收到了面试通知。

2. 记录面试过程。这是一个师兄给我的经验,要记录面试过程中面试官问的以及自己回答的,方便面后复盘。从自我介绍到回答问题,看自己的语速、表达,逻辑等等方面是否存在可以改进的问题。由于苹果手机没有录音功能,于是买了根录音笔。

3. 做好热身。阿里是我第一家面试的大厂,也是我第一次远程面,然后我又非常想去,所以导致我很慌,很紧张。我在接到面试通知后到第一次面试只有5天时间,导致我这5天时间只睡了10个小时,天天泡在通宵自习室,早上回宿舍洗个澡,天天在刷题。假如我在投递阿里之前,先投一些我意向没那么强的大厂,或者我准备阿里面试的时候就不会那么慌,乱了手脚。这也就是为什么说正式面试之前的热身多么重要,我在三面的时候也被说了简历写的不好什么的,这也是没做好的热身的后果啊。

4. 写博客或者文档,建立自己的复习体系。如果平时学习以及面试准备的时候没做好整理和总结的工作,那么在复习时会非常痛苦,会像无头苍蝇。


三、技术一面

1. 一面是真正的纯技术,面试官就是根据他的问题来的,从Java的类、集合问到JVM、多线程,再到大数据框架,全都是岗位要求的技能,也可以看出这些问题都是面试官提前准备好的,而不是按照我简历上面去问的。

2. 在回答问题的时候,如果是自己比较熟练,平时深入学习过的,可以回答的详细一点,多一点。毕竟面试时间有限,都是一个小时,会的答的多,不会的比重就减少。所以在有几个问题上我都回答的比较详细,并且跟我做的项目进行联系展开来说。

一面只有两个问题没回答好,其他我自己都挺满意的,所以在面试结束后面试官让我等二面通知,我也立马看了官网进度条的变化,激动~


四、健身房里的技术二面

1. 我在一面结束后,手机立马将静音调成了震动+最大音量,生怕错过了面试电话。每当校招季的时候,牛客网总会出现类似“010 - **** 这个电话是哪家大厂”的帖子,很多校招的面试都由面试官自己去协调的,比如我的两面都是技术面试官打我电话的,所以有时候错过了就真的错过了。

2. 在下午三点,我在健身房换好衣服刚要训练的时候,一个杭州的电话突然出现在屏幕上,吓得我赶紧躲在衣柜角落带上耳机开始跟面试官进行交流。面试官一上来连让我自我介绍也没有,直接介绍了他是谁,然后就开始面试了。

二面比一面多了几题算法和项目场景题,算法讲思路就可以,一部分Java和大数据的问题,但一面和二面的问题都不重叠,由此可见一面的面试记录他那里也有的。二面面试官问了40分钟让我等通知,然后就挂了,连给我反问的机会都没有。

因为我珍惜这个面试机会,所以就算在健身房也跟面试官直接聊上了,没跟他约其他的面试时间,而从面试过程来看,面试官时间很急,好像每个时间点都安排好了一样。在我学习群里,也有很多人因为这种情况错过了大厂面试,有些是没接到电话,有些是跟面试官约了时间,最后不了了之,所以大家且面且珍惜啊,对于自己想去的厂子,还是得多关注一下。


五、产品经理的死亡三面

两面技术面完了之后,帮我内推的小姐姐说我前两面不错,都拿了A,三面真的是我最「无语」、收获最大也是最有意义的一次面试,虽然被惨虐,但对我的帮助还是挺大。


1. 项目业务。面试官先让我对项目进行介绍,然后一个劲地问我业务流程,人员分工这些,还问了我对项目有没有什么看法,能不能改进。

说实话我被问懵了,虽然我对项目的技术栈都还算了解,但一个劲地问我业务一下子就转不过来。所以除了技术,大家对自己项目的业务也要去关注一下。


2. 项目架构。面试官问我这个项目能承受多大的并发量,压测数据是多少,问我:“衡量一个系统的稳定性是什么?”。

我当时心想:这些是测试干的吧,架构师思考的吧,关我一个开发什么事啊。但现在想想,一个好的开发工程师是应当具备这些知识的,也要带着这些问题进行开发,无论从宏观角度还是用户思维,替系统和用户考虑。

在面试结束之后,我马上去图书馆借了本《大型网站技术架构:核心原理与案例分析》这本书,用了一下午通读完,又用一星期时间对这本书的内容进行整理,整理完之后什么QPS、负载均衡、秒杀架构等等顺手捏来。


3. 符合岗位的项目。我面的是大数据开发工程师,但我简历上只有两个web分布式项目,于是被面试官百般蹂躏,一直问我简历上为什么没有大数据项目,项目能更好地巩固理论,为什么理论懂那么多却不去做相关项目等等。反正被问的很惨。

我心想:不是说大厂都注重理论基础吗?不是说项目不重要吗?太天真的,那是建立在有项目的基础上。前段时间群里有个小兄弟基础很好,也是因为项目被面试官挂了,补了项目之后开挂一般。


我在三面面试完之后,隔天就开始安排大数据项目的学习,边学边面,后面的一些大厂面试都很顺利。

三面面试官在结束面试之前问我还有什么想问的,于是我把积攒了很久问题问了出来:

a. 我问了阿里maxcompute里的一个自研消息队列,问他这个跟其他消息队列组件有什么区别。

面试官回答:我之前做技术的,但我现在是产品经理,已经不做技术很久了,但我组里的其他在做,所以这个我不太清楚。

b. Dubbo社区最近又活跃起来了,是不是又要重新大力发展Dubbo?

面试官回答:这个我也不知道。


六、总结

1. 阿里的面试官都挺好,面试的内容是我面试那么多家以来最全面的,问题也没有特别刁钻,都比较符合工作场景。

2. 项目很重要,项目是敲门砖也是面试的大头,如果我没有简历上的两个项目的话,估计简历都很难被捞起来,而且进入到3面。很多面试题都是从项目角度去提问的,而且回答的时候也可以结合项目回答,这个很加分。

3. 除了项目所用技术之外,也要关注项目的业务以及架构,最好是能融合在一起讲清楚。这边推荐两本书:《大数据之路:阿里巴巴大数据实践》和《大型网站技术架构:核心原理与案例分析》,看完会收获很多。

4. 只有多面试,你才能将原有的「我以为」思维变成「原来是这样」。很多东西并不是你想的那样,需要有人去给你当头棒喝才会醒悟。


来自:https://blog.csdn.net/liliangpin/article/details/99792158




前言

现在是2020年01月03日。相信现在有很人已经在准备面试了!我们今天就来唠唠面试。

大多数人可能面试前没准备,或准备方法不得当。要知道,我们平时干活更偏重于业务,不可能大量接触到算法,数据结构,底层代码这类面试必问的问题点,换句话说,面试准备点和平时工作要点匹配度很小。

很多人能力其实不差,但面试时没准备或不会说,这样的人可能在进团队干活后确实能达到面试官的期望,但是面试官只会根据面试情况来判断,所以这部分人很可能就无法通过面试。

今天我们来走进面试关心里。

如果我是面试官

如果我是面试官!在面试前,我会阅读简历以查看候选人在框架方面的项目经验,在候选人的项目介绍的环节,我也会着重关注候选人最近的框架经验,目前比较热门的是SSM。

框架是重点,但别让人感觉你只会山寨别人的代码!

不过,一般工作在5年内的候选人,大多仅仅是能“山寨”别人的代码,也就是说能在现有框架的基础上,照着别人写的流程,扩展出新的功能模块。比如要写个股票挂单的功能模块,是会模仿现有的下单流程,然后从前端到后端再到数据库,依样画葫芦写一遍,最多把功能相关的代码点改掉。

其实我们每个人都这样过来的,但在面试时,如果你仅仅表现出这样的能力,就和大多数人的水平差不多了,在这点就没法体现出你的优势了。

我们知道,如果单纯使用SSM框架,大多数项目都会有痛点。比如数据库性能差,或者业务模块比较复杂,并发量比较高,用SpringMVC里的Controller无法满足跳转的需求。所以我一般还会主动问:你除了依照现有框架写业务代码时,还做了哪些改动?

相信现在有人会回答:增加了Redis缓存,以避免频繁调用一些不变的数据。或者,在MyBitas的xml里,select语句where条件有isnull,即这个值有就增加一个where条件,对此,会对任何一个where增加一个不带isnull的查询条件,以免该语句当传入参数都是null时,做全表扫描。或者,干脆说,后端异步返回的数据量很大,时间很长,在项目里就调大了异步返回的最大时间,或者对返回信息做了压缩处理,以增加网络传输性能。

对于这个问题,有很多面试官不在乎听到什么回答,他只关心回答符不符逻辑。

一般只要你回答的对,面试官对你就会给出“在框架层面有自己的体会,有一定的了解”,否则,面试官就只会给出“只能在项目经理带领下编写框架代码,对框架本身了解不多”。

其实,在准备面试时,归纳框架里的要点并不难,我就不信所有人在做项目时一点积累也没,只要你说出来,可以说,这方面你就碾压了将近7成的竞争者。

要了解性能优化,别就知道增删改查。

数据库方面,别就知道增删改查,得了解性能优化!在实际项目里,大多数程序员用到的可能仅仅是增删改查,当我们用Mybatis时,这个情况更普遍。不过如果你面试时也这样表现,估计你的能力就和其它竞争者差不多了。

这方面,你可以准备如下的技能:

  • SQL高级方面,比如group by, having,左连接,子查询(带in),行转列等高级用法。

  • 建表方面,你可以考虑下,你项目是用三范式还是反范式,理由是什么?

  • 尤其是优化,你可以准备下如何通过执行计划查看SQL语句改进点的方式,或者其它能改善SQL性能的方式(比如建索引等)。

  • 如果你感觉有能力,还可以准备些MySQL集群,MyCAT分库分表的技能。比如通过LVS+Keepalived实现MySQL负载均衡,MyCAT的配置方式。同样,如果可以,也看些相关的底层代码。

哪怕你在前三点表现一般,那么至少也能超越将近一般的候选人,尤其当你在SQL优化方面表现非常好,那么你在面试高级开发时,数据库层面一定是达标的,如果你连第四点也回答非常好,那么恭喜你,你在数据库方面的能力甚至达到了初级架构的级别。

围绕数据结构和性能优化做准备

Java核心方面,围绕数据结构和性能优化准备面试题!Java核心这块,网上的面试题很多,不过在此之外,大家还应当着重关注集合(即数据结构)和多线程并发这两块,在此基础上,大家可以准备些设计模式和虚拟机的说辞。

下面列一部分部分问题给大家参考参考:

  • String a = "123"; String b = "123"; a==b的结果是什么?这包含了内存,String存储方式等诸多知识点。

  • HashMap里的hashcode方法和equal方法什么时候需要重写?如果不重写会有什么后果?对此大家可以进一步了解HashMap(甚至ConcurrentHashMap)的底层实现。

  • ArrayList和LinkedList底层实现有什么差别?它们各自适用于哪些场合?对此大家也可以了解下相关底层代码。

  • volatile关键字有什么作用?由此展开,大家可以了解下线程内存和堆内存的差别。

  • CompletableFuture,这个是JDK1.8里的新特性,通过它怎么实现多线程并发控制?

  • JVM里,new出来的对象是在哪个区?再深入一下,问下如何查看和优化JVM虚拟机内存。

  • Java的静态代理和动态代理有什么差别?

通过上述的问题点,大家可以看到,上述问题包含了“多线程并发”,“JVM优化”,“数据结构对象底层代码”等细节,大家也可以举一反三,通过看一些高级知识,多准备些其它类似面试题。

我们现实的面试中,如果你不熟悉Java核心知识点,估计升高级开发都难,更别说是面试架构师级别的岗位了。

要了解如何看日志排查问题

inux方面,至少了解如何看日志排查问题!如果候选人能证明自己有“排查问题”和“解决问题”的能力,这绝对是个加分项,但怎么证明?

目前大多数的互联网项目,都是部署在Linux上,也就是说,日志都是在Linux,下面归纳些实际的Linux操作。

  • 能通过less命令打开文件,通过Shift+G到达文件底部,再通过?+关键字的方式来根据关键来搜索信息。

  • 能通过grep的方式查关键字,具体用法是, grep 关键字 文件名,如果要两次在结果里查找的话,就用grep 关键字1 文件名 | 关键字2 --color。最后--color是高亮关键字。

  • 能通过vi来编辑文件。

  • 能通过chmod来设置文件的权限。

当然,还有更多更实用的Linux命令,但在实际面试过程中,不少候选人连一条linux命令也不知道。还是这句话,你哪怕知道些很基本的,也比一般人强了。

要了解底层代码

了解底层源码代表着什么?证明你对这个知识点非常了解。

不少工作经验在5年之内的程序员,认为这很难?确实,如果要通过阅读底层代码了解分布式组件,那难度不小,但如果如下部分的底层代码,并不难懂。

1、ArrayList,LinkedList的底层代码里,包含着基于数组和链表的实现方式,如果大家能以此讲清楚扩容,“通过枚举器遍历“等方式,绝对能证明自己。

2、HashMap直接对应着Hash表这个数据结构,在HashMap的底层代码里,包含着hashcode的put,get等的操作,甚至在ConcurrentHashMap里,还包含着Lock的逻辑。我相信,如果大家在面试中,看看而言ConcurrentHashMap,再结合在纸上边说边画,那一定能征服面试官。

3、可以看下静态代理和动态代理的实现方式,再深入一下,可以看下Spring AOP里的实现代码。

4、或许Spirng IOC和MVC的底层实现代码比较难看懂,但大家可以说些关键的类,根据关键流程说下它们的实现方式。

其实准备的底层代码未必要多,而且也不限于在哪个方面,比如集合里基于红黑树的TreeSet,基于NIO的开源框架,甚至分布式组件的Dubbo,都可以准备。而且准备时未必要背出所有的底层(事实上很难做到),你只要能结合一些重要的类和方法,讲清楚思路即可(比如讲清楚HashMap如何通过hashCode快速定位)。

那么在面试时,如何找到个好机会说出你准备好的上述底层代码?在面试时,总会被问到集合,Spring MVC框架等相关知识点,你在回答时,顺便说一句,“我还了解这块的底层实现”,那么面试官一定会追问,那么你就可以说出来了。

不要小看这个对你的帮助,一旦你讲了,只要意思到位,那么最少能得到个“肯积极钻研“的评价,如果描述很清楚,那么评价就会升级到“熟悉Java核心技能(或SpringMVC),且基本功扎实”。要知道,面试中,很少有人能讲清楚底层代码,所以你抛出了这个话题,哪怕最后没达到预期效果,面试官也不会由此对你降低评价。所以说,准备这块绝对是“有百利而无一害”的挣钱买卖。

适当了解些分布式

在描述项目里框架技术时,最好你再带些分布式的技术。下面我列些大家可以准备的分布式技术。

  • 反向代理方面,nginx的基本配置,比如如何通过lua语言设置规则,如何设置session粘滞。如果可以,再看些nginx的底层,比如协议,集群设置,失效转移等。

  • 远程调用dubbo方面,可以看下dubbo和zookeeper整合的知识点,再深一步,了解下dubbo底层的传输协议和序列化方式。

  • 消息队列方面,可以看下kafka或任意一种组件的使用方式,简单点可以看下配置,工作组的设置,再深入点,可以看下Kafka集群,持久化的方式,以及发送消息是用长连接还是短拦截。

以上仅仅是用3个组件举例,大家还可以看下Redis缓存,日志框架,MyCAT分库分表等。准备的方式有两大类,第一是要会说怎么用,这比较简单,能通过配置文件搭建成一个功能模块即可,第二是可以适当读些底层代码,以此了解下协议,集群和失效转移之类的高级知识点。

如果能在面试中侃侃而谈分布式组件的底层,那么得到的评价就会比较好了,比如“深入了解框架底层”,或“框架经验丰富”,这样就算去面试架构师也行了,更何况是高级开发。

把技能嵌入到你做过的项目里

一切的一切,把技能嵌入到你做过的项目里!在面试过程中,经常会听到一些比较遗憾的回答,如果你对SQL优化技能讲得头头是道,但最后,这是你平时自学时掌握的,并没用在实际项目里。

当然这总比不说要好,但如果在项目里实践过。大家就可以对比下两者的差别,一个是偏重理论,一个是直接能干活了。

从这里,我想告诉大家的是,你之前费了千辛万苦(其实方法方向得到,也不用费太大精力)准备的很多技能和说辞,最后应该落实到你的实际项目里。

请记得,“实践经验”一定比“理论经验”值钱,而且大多数你知道的理论上的经验,一定在你的项目里用过。所以,如果你仅仅让面试官感觉你只有“理论经验”,那就太亏了。

最后

本文用意是让大家别再重蹈别人的覆辙,这里还给出了不少准备面试的方法。你的能力或许比别人出众,但如果你准备面试的方式和别人差不多,或者就拿你在项目里干的活来说事,而没有归纳出你在项目中的亮点,那么面试官也不会看好你。

如果你觉得有帮助,请给我点赞鼓励!



作者:java星星
链接:https://www.jianshu.com/p/c9acbd4639dd
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。





张小弟之家

本文链接:
文章标题:

本站文章除注明转载/出处外,均为原创,若要转载请务必注明出处。转载后请将转载链接通过邮件告知我站,谢谢合作。本站邮箱:admin@only4.work

尊重他人劳动成果,共创和谐网络环境。点击版权声明查看本站相关条款。

    发表评论:

    搜索
    本文二维码
    标签列表
    站点信息
    • 文章总数:533
    • 页面总数:20
    • 分类总数:96
    • 标签总数:212
    • 评论总数:63
    • 浏览总数:274202

    | | |
    | |  Z-Blog PHP