阿里P8高级架构师:面试没你想象中的难,拿Offer也可以很轻松

webp

阿里P8高级架构师:面试没你想象中的难,拿Offer也可以很轻松

一、概述

面试,难还是不难?取决于面试者的底蕴(技能)、心态和认知及沟通技巧。面试其实可以理解为一场聊天和谈判,在这过程中有心理、思想上的碰撞和博弈。其实你只需要搞清楚一个逻辑:“面试官为什么会这样问?他希望听到什么答案?”然后针对性的准备和回答就行了,无他。

“你的优势是什么?”多年前我觉得这个问题很无聊,现在我经常这么问面试者,因为我真的想知道他的优势是什么,能给公司带来什么。最终能和面试官聊的开心愉快投缘的叫面霸。反之叫面瘫。

我带过的学生里找工作时有个有趣的现象,经常是懂沟通的人先找到工作,而不是技术最牛的那个。

面霸是可以练成的。我在这篇文章里尝试从两个方面对面试进行梳理,一个是流程,一个是细节。 流程可以让我们以上帝视角看问题,细节呢?细节决定成败。在面试这件事上,细节做的越细越好。

二、面试流程

面试就像一场战役,要打赢战役应该做如下功课,才能做到胸有成竹。

面试前准备

战前需要充分准备,要研究对手,所谓知己知彼,百战不殆。要准备好足够的弹药。

1、简历的几个注意事项

因为篇幅原因,简历的详细写法这里就不讲了。只讲 3 点需要注意的问题。

  • 不要给自己挖坑

你要对你自己写的简历负责。因为面试时,面试官通常会拿着你的简历,问里边的各种细节。 技术细节、工作经历、项目情况等。你必须对自己写下的每个字后面的隐藏话题做充足的准备。 举个例子,简历上有这样一句话:

熟悉运用 Chrome Dev Tools、Firefox 的 Firebug 调试页面

那面试官可能会问:讲讲你用 firebug 调试页面时,都有哪些经验技巧感觉比较有用?这样针对一个话题进行展开谈话。

  • 简历要有辨识度

通常一个职位可能收到的简历比较多,这时候怎么使你的简历能在众多对手中脱颖而出,获得面试邀约呢?要有“辨识度”,最好达到的效果是,面试官觉得看完这个简历,觉得很想见见这个人。 拿自我评价部分来举例吧,下面的案例大家自己看下,如果你是面试官,想邀请谁面谈呢? 括号里是我的的意见,大家也可以把自己想象成面试官,自己琢磨一下。

  • 最好找人帮你 Review 一下简历

因为简历就像自己写的程序,自己很难发现 bug,让别人以面试官的视角 review 一下,会发现一些意想不到的问题。找老师、同学、朋友都可以,不要怕麻烦。

2、找工作的主要网站和渠道

  • 智联招聘/51job/英才网(传统)

  • 拉钩(相对较新)

  • 猎聘网(高级人才)

  • v2ex(酷工作)

  • BOSS 直聘(直接和 BOSS 聊)
    *相关的社群

3、了解公司的相关情况

面试前应到公司的网站上或别的渠道,提前了解公司的企业背景、业务模式、主营产品等, 面试的时候就可以做到有的放矢。

“你对我们公司有了解吗” “我提前了解了一下,贵公司从事的是……理念是……我觉得和我的理念挺吻合的……”

“你对我们的产品有什么看法” “我仔细研究了贵公司的产品,发现有如下优点……还发现几个问题……我觉得可以这么改进……”

这样的对话,会和面试官迅速拉近距离。 面试官也会认为你做足了功课,是一个用心的人。

4、干货储备(核心技能)【这是最重要的一点】

  • 专业知识准备

收集相关面试题并熟练掌握。面试官有时候也会照着网上的题库问你问题,哈哈。最好能按自己的理解,用自己的语言去阐述问题。

  • 项目经验

项目的研发背景、整体业务流程、开发周期、负责的模块、技术实现细节、技术亮点等。你自己做过的每个项目都要搞清楚。

面试中

战斗时要保持正念、精神焕发,昂首挺胸,眼神坚定、谦虚谨慎。

1、注意礼节:礼多人不怪

以前从事对日软件开发的时候,我们会经常培训面试的礼仪问题。因为日本人比较注重这些。我记得当时有几个小环节,比如进入面试官房间前要先敲门,进入房间后没有得到”请坐“的允许前,要站立等待等等。

其实在国内面试,这些细节也很重要,不过通常的场景是:面试者会先被安排在一个屋里等待,面试者后来进入。当面试官进入的时候,面试者应该站起来并做基本的示意。会给面试官一种有礼貌的感觉。这些细节要多加留意。

2、正确的面试态度

面试这件事是一个双向选择的过程,你付出劳动,企业付你劳动薪酬,所以这是一种平等的关系。这种平等关系在面试中的体现也很重要。

误区 1:过于自卑性型。感觉找个工作不容易啊,给我个工作就行,这样气势上容易落到下风。这时候面试官会感觉到,从而进一步在气势上压住你,不利于双方顺畅平等的交流。

误区 2:过于亢奋型,觉得自己什么都会,挺牛,比面试官都厉害,这样也不对。

正确姿势:不卑不亢、从容面对、真诚回答最好。

3、告别:别忘了加微信

微信是移动互联网时代的个人名片,结束时最好互相加一下微信并备注好。比如我会这样备注:H5 讲师 北京 张三。面试者可以这样备注:58 同城 研发部经理 李四。

这样可以和面试官保持后续的联络,是个很重要的动作。即使没能面试成功,可能某一天发生链接成为你的人脉也说不定。

面试后

因为我们可能还要打多场战役,所以针对每次战役都要及时进行反思,总结经验教训,用现在流行的说法叫“复盘”。这样才会有进步,下次作战也会更有自信和把握。

复盘很重要,没有复盘的行动往往是无效的,因为没有经过总结和沉淀。大家要养成经常复盘的习惯。面试的复盘我们可以这样做:

1、复盘自己在面试现场的整体表现

*是否表现得沉着自信、充满活力、轻松自如?
*对面试官提问的反应是否恰当、准确、灵活?

2、复盘自己在面试中的所有问题及答案

*分别记录下 HR 面试问题和技术面试问题及回答
*关于面试官的提问,你是否还可以做出更好的回答?

3、其他心得感受

最好将以上内容写成一篇面试总结,存在印象笔记里。比如形成这样的笔记本,在以后面试时这些经验就是最好的资料库:

2015-10-11 IBM java 开发 北京 #面试#

2017-12-11 埃森哲 iOS 技术 Leader 郑州 #面试#

整个面试流程可以用 PDCA 循环理论来进行检查和改进。

三、面试问题

大部分公司在社招的时候,不光是阿里,其它公司也都一样,基本上都分为两个阶段的提问。

第一个阶段是主语言本身以及它的高级特性

第二个阶段是讲述自己的项目,并在中间穿插着问题

社招面试如何准备1主语言本身以及它的高级特性。

主语言当然就是你平日里拿来赚钱的家伙。

主语言很显然是Java,那么对于Java来说,它的语言本身以及它的高级特性,都有哪些比较容易在面试中问到呢?

一般情况下,主要有以下知识点很容易被问到。(PS:以下所列举的,都是一些Java相对而言比较高级一点的知识点,因为这里谈的是社招,而不是校招)

1、Java的数据结构相关的类实现原理,比如LinkedList,ArrayList,HashMap,TreeMap这一类的。以下简单模拟一个数据结构的连环炮。

  • 比如,面试官先问你HashMap是不是有序的?

  • 你肯定回答说,不是有序的。那面试官就会继续问你,有没有有顺序的Map实现类?

  • 你如果这个时候说不知道的话,那这个问题就到此结束了。如果你说有TreeMap和LinkedHashMap。

  • 那么面试官接下来就可能会问你,TreeMap和LinkedHashMap是如何保证它的顺序的?

  • 如果你回答不上来,那么到此为止。如果你依然回答上来了,那么面试官还会继续问你,你觉得它们两个哪个的有序实现比较好?

  • 如果你依然可以回答的话,那么面试官会继续问你,你觉得还有没有比它更好或者更高效的实现方式?

如果你还能说出来的话,那么就你所说的实现方式肯定依然可以问你很多问题。

以上就是一个面试官一步一步提问的例子。所以,如果你了解的不多,千万不要敷衍,因为可能下一个问题你就暴露了,还不如直接说不会,把这个问题结束掉,赶紧切换到你熟悉的领域。

2、Java并发包当中的类,它们都有哪些作用,以及它们的实现原理,这些类就是java.concurrent包下面的。与上面一样,咱们也简单的模拟一个并发包的连环炮。

  • 比如面试官可能会先问你,如果想实现所有的线程一起等待某个事件的发生,当某个事件发生时,所有线程一起开始往下执行的话,有什么好的办法吗?

  • 这个时候你可能会说可以用栅栏(Java的并发包中的CyclicBarrier),那么面试官就会继续问你,你知道它的实现原理吗?

  • 如果你继续回答的话,面试官可能会继续问你,你还知道其它的实现方式吗?

  • 如果你还能说出很多种实现方式的话,那么继续问你,你觉得这些方式里哪个方式更好?

  • 如果你说出来某一个方式比较好的话,面试官依然可以继续问你,那如果让你来写的话,你觉得还有比它更好的实现方式吗?

如果你这个时候依然可以说出来你自己更好的实现方式,那么面试官肯定还会揪着这个继续问你。

为什么说面试的时候要引导面试官,原因就在这了。因为面试官的提问很多时候都是有迹可循的,你如果抓住了他的轨迹,能够猜到他下面很可能会问什么,那你在回答的时候就可以往你想要谈的方向去说。这样面试时就会显得更加从容,更加的游刃有余。

**3、Java的虚拟机的内容。这部分主要包括三部分,GC、类加载机制,以及内存。

一个GC部分简单的连环炮。**

  • 面试官可以先问你什么时候一个对象会被GC?

  • 接着继续问你为什么要在这种时候对象才会被GC?

  • 接着继续问你GC策略都有哪些分类?

  • 你如果说出来了,继续问你这些策略分别都有什么优劣势?都适用于什么场景?

  • 你继续说出来了以后,给你举个实际的场景,让你选择一个GC策略?

  • 你如果选出来了,继续问你,为什么要选择这个策略?

下面是关于类加载机制的简单连环炮。

  • 首先肯定是先问你Java的类加载器都有哪些?

  • 回答了这些以后,可能会问你每个类加载器都加载哪些类?

  • 说完以后,可能会问你这些类加载之间的父子关系是怎样的?

  • 你在回答的时候可能会提到双亲委派模型,那么可以继续问你什么是双亲委派模型?

  • 你解释完了以后,可能会继续问你,为什么Java的类加载器要使用双亲委派模型?

  • 你回答完以后,可能会继续问你如何自定义自己的类加载器,自己的类加载器和Java自带的类加载器关系如何处理?

再来一个关于内存的连环炮。

  • 首先肯定就是问你内存分为哪几部分,这些部分分别都存储哪些数据?

  • 然后继续问你一个对象从创建到销毁都是怎么在这些部分里存活和转移的?

  • 接着可能会问你,内存的哪些部分会参与GC的回收?

  • 完事以后,可能还会问你Java的内存模型是怎么设计的?

  • 你回答了以后,还会继续问你为什么要这么设计?

  • 问完以后,还可能会让你结合内存模型的设计谈谈Volatile关键字的作用?

  • 你在谈的时候,肯定会提到可见性,那么接着可见性这三个字,还可以继续问你并发的内容。

额外的加分项

上面两个阶段基本上是必问的,还有一些加分项。这些加分项中,有些内容面试官也会问你(比如TCP/IP协议、算法),但更多的是会先问你了解不了解,你了解的话再继续聊,不了解的话就直接略过了,不至于因为这种问题而直接把你打入地狱。

列举一些加分项:

  • 计算机系统原理。

  • 网络通信协议(TCP/IP,HTTP等)。

  • 数据结构与算法。

  • 著名开源项目的源码。

  • 你自己有很棒的开源项目。

  • 你的个人博客。

  • 待评论区补充。

这几项当中,

对于前1-3项,如果你之前就比较了解,只是由于时间问题忘记了的话,还是可以临时抱佛脚一下的。

至于后面4-6项,就需要你日常的积累了,不是一时半会儿能做到的。如果你平日里没有积累,那么后面这三个加分项只能抛弃了。

最后切记,大公司不要学历造假,不然你是无法入职的,现在很多公司都在offer前进行背调,这样会影响你以后去该公司的就入职机会,小公司当然你可以玩点技巧,但最重要的还是你必须自我努力,自己有能力才是关键,是金子去哪里都会发光。

下面是我收藏的一个系统化学习的课程体系,高并发分布式、工程化、商城实战、性能优化、热门源码框架、微服务架构:

需要思维导图格式的可以加群:810589193免费获取

webp

阿里P8高级架构师:面试没你想象中的难,拿Offer也可以很轻松

webp

阿里P8高级架构师:面试没你想象中的难,拿Offer也可以很轻松

webp

阿里P8高级架构师:面试没你想象中的难,拿Offer也可以很轻松

webp

阿里P8高级架构师:面试没你想象中的难,拿Offer也可以很轻松

webp

阿里P8高级架构师:面试没你想象中的难,拿Offer也可以很轻松

webp

阿里P8高级架构师:面试没你想象中的难,拿Offer也可以很轻松

四、总结

就写到这里吧,希望通过本文大家可以对面试这件事的整体和细节有更进一步的认知,参加面试也能更加自信和有把握。逐渐成长为可以纵横江湖的面霸,在江湖上留下你的传说

最后给大家一个惊喜,针对以上技术图,我也录制了一些视频资料提供给大家~

有高清架构脑图、Java架构资料、Java面试资料等...

现在加群:810589193可以免费获取Java工程化、高性能及分布式、高性能、高架构、性能调优、Spring、MyBatis、Netty源码分析等多个知识点高级进阶干货的相关视频资料,还有spring和虚拟机等书籍扫描版,还有更多面试题等你来拿

分享给喜欢Java,喜欢编程,有梦想成为架构师的程序员们,希望能够帮助到你们。

webp


猜你喜欢

转载自blog.51cto.com/14214335/2384655