半个月前,和个人终极技术目标扔物线朱凯一拍即合,到了他所开展的 HenCoder Plus 课程给你们分享了 1 个多小时的「模拟面试」心得,也顺便听了几回凯哥的课程,感受真的挺用心的。本身也但愿能一直不忘初心,在技术领域像凯哥同样,认真而且持之以恒。准备了许久,主要是为了作这一次分享。程序员
本身下来其实看了好几遍本身的录屏,以为仍是有必要作一篇文字版的分享给你们,还要有一位童鞋可以从中获得收获,那也是不枉费我手打了接近 3 万字的分享。不少思想都受着去年 Android 巴士成都交流会另一位讲师 Even 的影响,因此说,你的圈子,真的会潜移默化地影响你。面试
下面是正文:算法
我先自我介绍一下,我叫刘世麟,在网上呢,个人名字是南尘或者说,是南尘2251。编程
在找工做以前,咱们总会经历写简历,准备面试知识,再到面试的过程。但咱们总会发现,即便咱们准备许久,感受自我良好。但在面试的时候,却总感受使出浑身解数也无济于事。实际上,咱们的面试是须要实战的,咱们刷再多的题,不实战也是无济于事。然而,咱们一般面试一次,算上花在路上的时间,咱们至少得要好几个小时。最重要的是,这个时间还基本都是花在了工做日上。设计模式
此外,咱们即便花上几个小时,面完以后却会发现,咱们能获得的有价值的东西却须要深挖细掘才能造成精华。咱们很可贵到面试官对本身真正的反馈,大多数状况下被拒绝的时候面试官给的缘由都极其委婉。服务器
为了解决这样尴尬的窘境,我在去年11月在公众号上推出了「模拟面试」这项活动。用工做之余的时间帮助那些真正渴望但愿面试却又不但愿浪费工做时间的读者。微信
在为期 4 个多月的活动中,我面试了 118 位读者,其中包括小米、硅谷、美团的一些在职员工。在活动中,我与他们共同成长,一块儿进步,从自我介绍,到面试过程,再到面试反馈。读者从我这里获得了有价值的评价,我从读者那里获得了很是有价值的数据反馈。网络
我只是抱着一种尝试的态度,但愿小范围进行,但没想到有这种状况的读者极多,我采起的排队机制已经彻底不能让读者获得及时反馈了,加上我本身的时间分配问题,我很快就中止了这项活动。多线程
虽然作的时间不长,但却很是有意义,因此,今天,我和凯哥一拍即合,来到了这里,给你们作一下分享。我并非什么面霸,也不是什么大佬,仅仅是凯哥的迷弟而已。架构
周三呢,我跟着你们一块儿听了课,我发现听课的同窗很多我认识的哈,还有在我这里进行过模拟面试的人,不得不说呀,作 Android 的人不少,但圈子里面上进的人,转来转去仍是这些人。
下面,我给你们简单地分享一下我作这个活动后的一些心得。在分享以前呢,我想先送你们一句话:你可否经过面试每每不是靠技术,但你可否拿高工资绝对是靠技术。咱们的求职面试,决定因素确实不是只靠技术,你的简历、面试表现,统统都会影响着你的评级。
几个月的「模拟面试」下来,我发现你们的问题五花八门,总结下来就是这四个问题:
我先说一下简历呀。虽然我只面了 118 位读者,但收到的简历却远不止这点,对于明显抱着来尝试浪费其余人时间的,我历来都是直接打回去的。但我面试的人中,简历写的足够让我满意的人,也是百里挑一。大多数人的简历都是写的很是的乱,连基本的排版整洁都谈不上。
我常常会收到来自读者的同一个问题,「南尘呀,你能不能给我一个好的简历的模板?」
这个问题让我十分为难,若是我说「其实不存在好与很差的模板,主要看气质」。你可能会很失望,以为我可能在浪费你的时间。若是我说有,而且挑了一份我认为还不错的模板给你,可能你也会很失望,会怀疑,好的简历模板是这个样子的吗?
这就比如凯哥在上海开发者大会上讲的同样,「图片上传怎么作,你服务器怎么给你要求的你就怎么上传呀」。
实际上咱们并无逗你,要获得一个「好」的简历模板,其实并不困难,并且根本就不须要向别人要。你只须要问一下本身,什么是「好」,并把「好」这个很缥缈的词量化出来,你的简历就是好简历。
不过,在你量化「好」这个词以前,咱们须要先解决一个问题:「简历的本质是什么?」
可能每一个人的理解并不必定相同,不过这并非很重要。若是你有不一样于个人思考,那也不表明你和我之间有一我的是错的,咱们暂时能够这么认为:绚丽或者简约的模板其实都不是简历的本质。
简历的本质只有一个:向别人说明清楚你是谁,你擅长作什么。
你可能会发现,其实这两个问题都是同一个问题:你的定位是怎样的?
问题 1:「你是谁」?
可能你以为本身很清楚了,你是张三,你是李四。但若是让你用三个词,能够是名动、形容词、动词或者成语均可以,只用三个词来归纳一下「你是谁」,你能作到吗?这就是你对本身的定位。
问题 2:「你擅长作什么?」
若是我能说「什么都不擅长就是最好的擅长」,可能你们都会拍手称快吧。正如问不少人你的兴趣是什么同样,有不少人都表示没有什么兴趣。然而,你真的没有擅长的事情吗?可能只是由于你没有发现而已。这是你对本身能力的定位。
若是你真正把问题定位好了,其实解决问题并不难。然而,难就难在对本身进行定位每每很难作到精准,正如苏轼的名句:「不识庐山真面目,只缘身在此山中」。
即然是定位,那么,咱们用生活中的一个例子来讲明吧。你的手机上的 GPS 定位是怎么作到「精准」定位的?
不是靠手机自身就行的吧,它须要经过在天上的至少 4 颗卫星才能精肯定位本身的空间位置。也就是一个简单的道理:
你要定位本身,是须要别人来作参照物的。
那么若是你是应届毕业生,你须要在简历中和你的参照物(基本上是和你同一届毕业的人)作个对比较。若是你已工做多年,那么和一样工做几年的人或者应届毕业生,你也须要和他们作一个比较。
其实,你也能够从另外一个角度理解,要定位本身,也能够参考一下别人眼中的本身是怎么样的,别人每每更能发现你的优势和缺点,并且通常比你本身评估的要准确。
此外,你还能够用事物来作参照。好比为了表达你擅长 Android 视频直播技术,不少人喜欢直接在简历上加上一个「自我评价」,而后写上「我擅长 Android 视频直播技术」,你以为是个什么效果呢?像不像一我的说他很幽默,但别人和他聊天历来没笑过?
比较好的表达一我的幽默的方法应该是直接说段子,那么表达一我的擅长某个技术的方法呢?「段子」留给你们本身去写吧。
在面试后和他们分享,我才知道,他们其实并非说没有认真去作,而是确实不知道简历上到底应该放哪些东西,或者说编写的顺序是怎样的,大多数人都是直接使用好比拉勾网呀、BOSS 直聘呀,这些招聘网站的模板来编写的。这就会致使,咱们的简历上出现了一大堆没有任何价值,别人也不关心的东西。因此,我在这里再次申明呀:千万不要去用招聘网站的模板来作你的简历。
有哪些好一点的简历加分项呢?
从简历上来看,你们还有一个常见的问题是,对于项目经历,写的很是粗糙,大多数人都是写的:「我用了什么第三方库,实现了什么功能。」「我在项目中,使用什么技术,作了什么什么。」甚至是,一个项目下来,三句话就被彻底介绍完了。对于这点,我还专门咨询了咱们的 HR,他们对于这种技术简历,会怎么处理。我获得的回答是:「除非是很是厉害的公司或者项目,否则都会直接 Pass 的。」
那到底怎么写项目经历呢?在网上,盛传着一种法则:STAR (Situation Task Action Result)法则。
前面说了,在编写项目经历上,大多数人写的真的很是粗糙,基本都是使用了什么技术,什么库。甚至有人仅仅只是用过,也写了一个「精通」,实际上这是很是很差的,即便拿到了面试资格,也很容易在面试中翻车。由于大多数面试官面试的策略都分两步:
因此,简历上出现的内容,必定要是本身能答上的,仅仅是使用过的东西,不要写在最前面。
还有一个比较受争议的问题,就是到底写不写自我评价。多是受招聘网站模板简历的影响,我发现 80% 的面试者都写了这一栏。其实无可厚非,但大多数人直接放在第二个位置,我很好奇这样作的原因。最重要的是,深刻一看,内容竟然都是一些乱七八糟,面试官并不关心的内容。
先给你们截取一个反面教材:
当我看到这个自我评价的时候,就以为比较堂而皇之,可能面试者确实就是这么好的人,可是,从何取证呢?因此建议你们不要在简历中写一堆废话,简历就是求职的敲门砖,不要把没有价值的东西放在上面。
正确的关注点应该是:
上面并非模板,只是着重的一些点。好的自我评价应该写清楚本身的定位和方向,以及平时本身的一些生活和习惯。非科班出身的一般会被打上算法不够出众的标签,但咱们彻底能够从其余方面表现本身的优点。
总的来讲,简历就是求职的敲门砖。
说完了简历,咱们再来谈谈面试。无数次面试让我深入的明白一个道理:**做为程序员,咱们的能力都是创建在技术基础上的,技术不达标,其余的能力会显得很缥缈。**但决定咱们是否经过面试,除了咱们得有足够的技术能力之外,还得有不错的表达和沟通能力。
我进行了 118 次模拟面试,却发现了一个很是尴尬的结论,那就是:没有人会作自我介绍。
基本总结下来你们的自我介绍是这样的:
重点我「模拟面试」的方式仅仅是经过微信语音,尚未现场的氛围压抑感,我不可思议要是在现场面试他们会发挥成怎样。我一度觉得他们是表达能力不行,或者说是怯场紧张,因此我一直在调整面试气氛。但到讲技术的时候,我发现他们的问题并非出在表达能力。
必需要说一下自我介绍啊。任何的面试,都会有自我介绍这个环节,这是你们给面试官的第一印象,真的很是重要。一个好的自我介绍,能改善面试气氛,让本身接下来发挥更好,面试官也面试得更爽。
那咱们自我介绍应该说什么呢?我建议你们说本身的亮点闪光点,这些东西最好是简历上亮点的详细介绍,时间控制在一分钟左右,再重复一遍:不要背简历!!!
我先给你们来个范例哈,注意一下,这是没有什么技术闪光点的自我介绍。
面试官您好,我是刘世麟,很是荣幸能参加贵公司的面试,下面我简单介绍一下个人我的状况:我从实习到如今一直在 XX 公司工做,从事 Android 开发,凭借良好的工做能力和沟通能力,连续两年蝉联「优秀员工」称号,在今年初被公司内聘为技术总监助理,协助技术总监开展部门管理和项目推进工做。在工做以外,我喜欢编写技术博客和在 GitHub 上贡献开源代码,目前在 GitHub 上总共拥有 7k 左右的 Star,数篇技术博客也有数十万阅读。我很是地热爱移动开发,早已久仰贵团队对技术的看重,因此但愿今天本身面试有好的表现,将来能有幸与您共事。
很简单的一个自我介绍,这些内容在简历上都不多说起,其中,我抓住要点,强调了我本身的工做能力和沟通能力。蝉联优秀员工,被内聘为技术总监助理,都说明了本身在工做中的优异表现。在技术博客和 GitHub 上的表现,说面了个人软实力比较强,很是地热爱学习, 经过数字性的展现,让面试官有了一个比较直观的良好感觉。
你们在面试以前均可以在笔记本上面写下来,而后本身对着墙壁,模拟介绍几回,这样下来你在面试中进行自我介绍的时候每每就可以驾轻就熟。
在自我介绍以后,通常都会开始进行技术面试,基本上你的技术等级都会在技术面试环节敲定。那面试官如何在短期内判断你的技术等级呢?
这里先借用凯哥以前在知乎上的一个回答,我以为很是有意思。
从这里,我想你们已经能够获得结论啦。一般面试官在开始面试的时候,都会针对你的简历对你进行大概的判断。由于每一个人的经历不一样,擅长的方向也是千差万别,因此都不会紧抓本身擅长的方向问,而会选择对你简历上说起的内容进行挖掘。
好比你说你擅长使用 RecyclerView,那你知道如何处理 RecyclerView 的嵌套滚动么?那你知道如何处理 ViewPager 和 RecyclerView 嵌套的时候出现的焦点问题么?假设检查 RecyclerView 各类设置没问题后,数据却展现不出来,你能猜测哪些缘由么?假设只能用一个 RecyclerView,不用分 Type,让你实现一个复杂布局,你能想到一些方法或思路么?
咱们常常会在面试前刷不少的面试题,准备好久,但咱们真正到面试的时候,却老是被面试官虐的体无完肤。这说明了一个问题,咱们平时准备的东西,平时若是没有深刻理解的,是很难在面试中正常发挥的,因此,这还须要一个沉淀的过程。因此你们参加 HenCoder Plus 跟着凯哥搞清楚细节,是很是有价值的。
一些的状况说明一个结论:细节 => 技术。
但我想说,应该是 细节 + 深度 => 技术。
前面咱们有说到,在简历上咱们能够使用 STAR 法则编写咱们的履历。实际上,咱们在编写简历的时候,就已经能够思考本身面试中可能被问到的问题啦。呈如今简历上的是遵循 STAR 法则的精简版内容,实际上面试中,咱们给到的应该是详细版。不过我认为在面试中应该是 START 法则,我在后面加了一个 T,这个 T 是什么呢?Thinking。
不会总结的程序员不是好程序员,你们知道,我在工做之余写了很多 Blog,实际上就是一个总结的过程,我认为这样的方式,让我成长很是迅速。实际上,咱们在面试中彻底能够展示本身的总结能力,让面试官看到本身的亮点。
咱们来看看面试中,咱们如何利用好 START 法则。
除了上面说起的,面试官会对简历上进行深挖细掘之外,一般面试官还会问一些其余的。好比对于中级和初级工程师,通常会问一些 Java 基础和 Android 基础,好比什么 HashMap 的内部结构,Hash 碰撞处理方式呀,还有 JVM 类加载过程呀,垃圾回收算法呀,启动模式呀,Handler 原理呀,Android 的事件分发机制呀,Activity 的生命周期呀等等。这些问题好像网上都已经司空见惯,不少人都选择了直接去背诵面试题答案。
我是很是不赞同背诵答案这种作法的,人的记忆原本就是有限的,你的脑壳就只能装这么多,何况网上的博客基本出处都差很少,不少博客并无深刻到细节里面。如今的面试官也愈来愈聪明,知道如何辨别面试者是真会仍是假会。
好比上面的 Activity 生命周期,可能网上都会写,额是,onCreate() => onStart() => onResume() => onPause() => onStop() => onDestory()。但实际上,背的了这个流程,不必定能灵活应用起来。好比面试官问到,锁屏会依次调用哪些生命周期,面试者不必定知道。有些 Blog 可能写的比较仔细,会给你们列上一个表,展现这些可能的问题,好比 锁屏是 onPause() => onStop(),Activity 从不可见到可见的调用方法是 onStart(),onStop() 是彻底不可见的时候调用,因此天然而然调起 Dialog 的时候走的生命周期是 onPause() 而不是 onStop()。甚至有的 Blog 直接教你们背诵。完整生存期是 onCreate() 一直走到 onDestroy(),可见生存期是 onStart() 到 onStop(),前台生存期是 onPause() 到 onPause()。
可能这样的问题早已经被你们司空见惯,但实际上,面试官早就不会这样直接问了。基本采用的方式是给你一个场景,看你可否正确的处理,好比 Activity A启动 Activity B 后,A 真的必定会调用 onStop()
么?毕竟咱们平时作需求,也是用本身已有的知识组织起来解决需求的。
说了这么多面试技巧,那咱们还得有个很是重要的过程:准备面试,大多数人会选择去看各类面经,刷各类面试题。虽然这样确实会有必定的做用,但我认为是低效的。首先,大多数的面经,都没有一个深刻讲解的答案。第二,刷的题,大多数和求职公司的面试不匹配。目前看来,只有刷算法题在应对算法类面试的时候成功率较高,基本应用类面试,做用都微乎其微。
这就让咱们必须谈到了另一个话题:如何准备面试?
通过我屡次试验发现,技术面试的面试官问的知识,80% 会来自于你的简历,因此你至少提早除了准备自我介绍,还应该认真针对简历上的每一个技术点,思考一下可能出现的面试题,并想想如何去应对它。
除了一些特别基础的机制原理问题,好比 Activity 的生命周期呀、Handler 机制等,其余问题都是容许面试者答错的。其实面试官并不会奢望你可以完好无损地答好每个知识点,有时候判断一个面试者是否适合面试官所在公司提供的开发岗位,每每看的是面试者在回答问题中体现出来的「编码以外的能力」。因此,不要想着背诵面试题和知识点,那样无疑是低效的,而且这样得来的知识,你之后也基本不可能用到。
此外,针对不同的工做岗位,准备的面试内容也不该该同样。相较于中小型企业,大厂会问的知识面更广,好比会问很多的算法和计算机网络等基础知识,而通常的中小型企业却对这块不那么看重,他们更指望的是能迅速上手的人。也就是说,他们需求的并非一个技术多么厉害的人,而是一个合适的人。对于初级和中级工程师,面试官会更看重基础知识,对于高级甚至资深工程师,会对多线程编程,自定义View,架构能力,产品观有更高的要求。
其实「二八原则」在好多地方都发挥着做用,在 Android 开发中,我认为也是同样的。做为一个 Android 开发,你也许只会用到 Android 开发知识的 20%,另外的 80% 你其实学了也不必定会用。
而面试官其实也同样,他有可能也只掌握了 20% 的知识,并且一个面试也不会有足够多的时间给你展现你所有的知识,而每每只会注意开发中最常遇到的 20%。但大致上来讲,这 20% 比较重要的知识点,通常都是你们须要重视和答对的。我以前在公众号上写了一个面试专题,如今在公众号底部也还有一个导航。虽而后面夭折了,但写的内容基本都是每一位 Android 开发都须要重视和答对的。
俗话说「英雄不问出处」,前提很明显了你得是「英雄」。若是别人不知道你是「英雄」,那么势必会经过你的学历、公司和项目经验来判断你是否合适。毕业的学校和任职过的公司,包括你跳槽的频繁度等都会对你的评分有必定的影响。
但其实最重要作判断的根据仍是你的项目经验。因此对于你从事过的项目及你在这些项目中的职责和做用,你应该有一个清晰的描叙。
对于项目经验丰富可是项目的类型单一的人,如项目中清一色的「资讯」类应用,那么你应该表现你具有独立开发和处理各方面问题的能力,并且最好在平时你就要有意识的避免进入到这种境地当中。对于「一个经验用十年」的人,面试官其实也很难分辨出他在其余的方面是否也能作得同样好,若是你不能在公司层面避免陷入到这种状况,那么你仍是应该尝试同一个项目中的不一样方面,或者本身作一些和当前公司不相关的项目、开源库等。
但其实有不少人的问题在于,项目经验并不丰富,并且有些人工做了不少年,但有可能其中的几年都在维护一个项目,简历上每每用一句话就把这几年的事情说完了。但我认为,并非咱们在这几年中没有作什么有价值的事,而是咱们没有把这些事情记录和总结,并作一个深刻的思考和扩展。想一想吧,总会有的,把事情想到了还要对这个主题作一下扩展,你总结出来的东西才更有深意。
对于面试者来讲,每每以为面试就是回答对面试官的问题,但从面试官的角度来看,面试其实就是要作一件事情:「如何区分面试者」。简单的说,就是把你和面试官面过的(或即将面试的)的人区分开来,并给你打上几个签标,简单点能够是「不错」、「合适」、「犹豫」、「确定不行」。复杂点的,可能会把你的某些能力列出来,好比学习能力强、协做能力差,而后再和其余人放在一块儿综合考虑。每一个项目都有不一样的特色,因此每次的侧重能力考察也会不同。
因此,有时候你经过了一家公司的面试,也不须要太得意了,可能并非你有多厉害,仅仅只是你正好是这个时间段里性价比较高的那个。固然,若是你被淘汰了,也不须要妄自菲薄,也许只是由于在这个时间段有个比你更高性价比的人也来这家公司面试了。
HR 一般会问你一些离职缘由和职业规划,对于离职缘由的阐述,我想你们应该都很清楚了,不要否定老东家的价值,不要否定老东家的价值,能够结合如今面试公司来讲出本身的展望。好比我以前面试美团的时候,我是这样回答的,由于美团是一个很是重视移动端业务的互联网平台,而我以前公司因为公司战略的变化,如今业务像提供服务转型而弱化了移动端,做为一个深爱着移动互联网的人,我渴望加入美团这样的团队。
而除了说离职缘由,咱们还很可能遇到的诸如「说说你的优缺点」、「你最擅长什么」、「你在项目提供的最有价值的做用是什么」等等这类问题。这类问题在我前不久的面试中,其实技术面都会提到。其实,反过来看就很简单了,这些问题归根到底就是「你和别人的区别在哪里」。面试官的任务是要把你和别人作区别,你本身也须要把本身和别人作区别,回答「不知道、好像没什么这样的话,其本上会给减分。
我遇到过最难的「吹牛」面试题就是:
说说你和其余程序员相比你更出色的地方,为何咱们要录用你?
这是我遇到过的最难的面试题,哲学家苏格拉底说过:「人最难的就是认识本身」。这句话一点都不假,咱们可能常常会惯性地以为本身比其余程序员厉害,但真要说厉害在哪里,这真难说出来。每一个人都有和别人不同的地方,在面试前必定要想一想一些正面的积极的地方,而后本身总结一下,最好给你周围的同事、朋友说一下,看他们是否定同你的见解。最后你会发现给别人说事情时,最好的方式是说一些案例故事,虽然你要说的可能只是一个简单的点(好比你抗压能力强),但你也能够用讲故事的方式讲出来(在某次事件中你在怎样的压力下完成工做的)。
在我进行模拟面试中,我清晰地记得我有一位读者,在一天晚上 11 点过,慌乱地找到我,但愿我能给他作一下模拟面试,由于次日他就要和本身心仪已久公司的 CEO 进行终面。这位小伙伴已经通过了三轮技术面和 HR 面了,并且是本身很是渴望加入的公司,因此也是慌得不行。我强忍睡意,和他进行了模拟面试,额,严格意义上说,这只能算一次交流。
我简单了解了下他的状况,他的音视频开发经验很是丰富,而本身渴望加入的公司也是微视频领域的。因此我认为他没什么好担忧的,通过了整整 3 轮的技术面试,说明他的技术实力已经获得了公司的承认,BOSS 面最多只是随便聊聊,谈谈「人生和理想」。
你们切不可小看这个「随便聊聊」,这个「聊聊」能够很容易看出你的思惟能力和对事物的见解,并且这些方面是你短时间很难改变的特质。
他应聘的职位只是高级开发工程师,并非管理和技术负责人的角色,对方并不会太在乎他的管理能力和领导能力,因此后面的面试大可轻松应对,但仍是要简单准备一下,了解下公司状况,态度上不卑不亢。
中国人都很喜欢打听别人的收入,收入对于咱们这个社会传统来讲并不算隐私,可是对本公司或者同行业的人我通常都会选择隐瞒。HR 或者公司的制度都会明文规定不准在公司内打听员工的工资和奖金,为何呢?你们心知肚明,别人比本身低了,别人难过;别人比咱高了,本身得难过吧。人都会认为本身的能力高于平均水平,对公司的贡献确定比身边的某某多,但一但得知对方的工资比本身高,那就容易打破本身的心理平衡。
身体不平衡容易生病,心理不平衡容易出事。
因此薪资这个东西一直以来都是一个敏感话题。在讲这个以前,我想先提醒你们,选择工做的时候必定不要只看薪资福利,而应该看重更加长远的价值。
前段时间,我也经历了找工做,一共面了 4 个公司吧, 拿到了 3 个 offer,但我最后就选择了薪资最低的公司,尽管薪资第一的公司一年能够多很多收入。直到如今,我一点都不后悔。由于我看中的是同事们的学习能力和提高,如今的公司每隔一周都会又一次技术分享,分享的内容,常常都让我瞠目结舌。
好像扯远啦,咱们终究仍是绕不开和 HR 谈薪资的过程,咱们老是指望着在加入本身心仪公司的前提下,还能够摇到尽量高的薪资。下面结合个人经验给你们几点建议:
增长本身的筹码
也就是你在技术面试和管理者的面试过程当中表现较好,这时候你能够得到较高的评级,这时候 HR 给到你的幅度也会大一些。因此在面试前应该进行充分的准备,若是你是别人犹豫的对象,恰好放你经过,你不来也行的话,HR通常状况下是不会对你让步的。因此总得来讲,好像是废话,但就是真理,你还得好好准备提高本身的能力,以便于在面试中得到更好的评价。
在关键位置上有人
这一点很是重要,有本身人在你要面试的公司内部,你能够获知他们不少状况,好比此次招聘是否紧急,什么叫坐地起价,就是别人没有你有。有本身人在你才能知道有没有其余比你合适的候选者,没有的话,你才有资格坐地起价。
若是一个公司找了好久都找不到合适的人,项目已经迫在眉睫,这个时候你出现了。可是你并不知道你是他们千辛万苦找到的,他们不要你就有可能将项目至于风险中可能会有更大的损失,这个时候你是能够要一个比较高的价位的。但没有本身人告诉你这个状态的话,通常你仍是会从自身出发,可能以为本身的表现并不算特别好,会患得患失,脸皮薄的话固然不敢狮子大开口(或者你不明白你为何在这个时候在这个公司值高价)。
若是没有相关资讯了解对方公司内部对人员的需求状况的话,不少时候你靠的是运气,就是看你先后的面试者(候选人)和你的性价比结果。若是那个时期,只有你一个候选人,那么你的要求不过份,通常均可以知足。固然,HR仍是会打击你一下压压价,别人的工做就是要控制人力成本嘛。因此你认为能力不如你的人工资却比你高,一点也不奇怪,大家进入公司的时机不同。并且就算你认为对方水平不如你的,那只是你我的的见解,他的水平可能真不如你,但在公司的层面,大家可能被划分在同一级别。因此不要太在乎,最好就不要去打听。
不要让对方给你订价格
以前很多读者问我,在 HR 问到指望薪资的时候,本身能否反问对方 HR 本身值多少钱。假如我是 HR,我确定是很是反感这种行为的,我询问咱们家 HR 后(平时和 HR 私下关系很好),获得的结果一模一样。后面我发现网上居然还有文章说到,能够委婉地把问题抛回给 HR,好比「我相信贵公司会给我一个心仪的价位。」
我我的是很是反对这样的作法的。大多数公司会给到招聘网站上挂的薪资范围,并且广泛会比较接近平均值如下。因此当 HR 问你指望薪资的时候,你除了要预估本身在以前技术面试中的表现,还应该注意一下公司给的薪资范围。通常状况下不要直接给出公司给的最高值(本身能力足够优秀的例外),基本比本身预期高出 15% 较为合适,好比本身内心指望是 18k,实际上本身以为 16k 也能够加入,这时候能够说本身指望是 20k 若是实在是没有底气,也能够附加一句, 19k 也能够,相信公司不会埋没本身。
常常遇到这样的面试官,当他吧唧吧唧问完你问题后,忽然就停下了,但感受又意犹未尽,因此每每会把对话的主动权交给你,让你来提问。
个人问题问完了,你有什么要问的吗?
可能这时对于你,“要问”仍是“不要问”是个问题。若是要问,那么要问什么样的问题呢?只要你不是太傻太天真,你的心里会坚信面试其实还没结束,并非什么问题都合适问的,如奖金、加班费这些你特别关心的。
面试官的这个问题,是有意问的一种开放性问题,以此来了解你这我的的关注点;仍是仅仅是由于面试确实无问题可问了,但又不想太直接结束面试,因此就顺便问问?
这真的是个问题。
不过咱们不必定非要去揣测面试官的用意,咱们回到自身的须要。
若是你也没什么问题想问,那么能够委婉的告诉面试官本身没什么问题要问。
如:「经过一些朋友和渠道,其实我对贵公司的一些文化和愿景都还比较了解,因此我暂时也没有什么想问的,我也很但愿能加入到这样一个环境中。」
那问什么呢?
若是要问,那问题就多了。
“项目常加班吗?有加班费吗?” “有出国旅游吗?” “在这个团队中的我的提高空间怎样?” ......
其实,并非说上面的这些问题很差,或者不能问。只是,咱们问题以前应该思考一下,问什么样的问题便可以了解到想要的信息,又是眼前这个面试官最合适回答的。即咱们要让这个问题问出去后的对话能成为有效的沟通,并且这个问题是咱们关注的,而且这个问题是对方比较有发言权的。
如关于加班费的问题,其实你问 HR 或者在里面上班的朋友会更清楚些。
技术面试官 在提出问题前,咱们要先看一下如今这个面试官是处在公司的什么位置。若是他也是一个开发人员,在对你作技术面试,那不妨聊聊团队的一些技术栈方面的问题。
如:“大家的团队在采用敏捷开发的方式吗?” 而后和面试官聊聊敏捷,分享一些各自的经验,方便双方进一步的了解。
并非全部的公司都会用敏捷,那咱们能够问一些更开放性的问题,如:「在大家的项目中遇到技术障碍了,公司有什么机制去应对吗?」能够就此看看这个公司是否重视技术,有没有一些技术提高和交流的传统。
管理类面试官 若是面试官是管理职位的,那么能够问问团队组成;假设你能加入的话,会分配在哪一个team,team中有没有带你的人或让你获得进步的模式;或者了解一下他对团队目前状态的见解,是否有什么变化他想引入团队或组织的。
也就是向管理类面试官提问,你能够问一些对团队现状和将来预期(目标)相关的一些问题,这些问题会让你提早知道,进入这家公司后你应该往哪一个方向去努力。
HR 公司文化什么的 HR 通常会主动向你介绍,薪酬和福利不清楚的地方也能够继续沟通。
简单说,问本身需想要获得答案的问题,并且要针对不一样的面试官问对方比较“擅长”回答的问题。
管理者:问战略 技术人员:问战术 HR 行政人员:问后勤
大多数面试通常都会有 3 天以上的时间让咱们准备,不过咱们时常仍是会遇到临时安排的面试,给你准备的时间不足 24 个小时,让人措手不及,这个时候咱们该准备些什么呢?固然,有些同窗多是从有数日时间拖延到只剩一天,才下定决心要准备一下。
那假如咱们就只剩下一天的时间了,怎么办?很多小伙伴呀,会愈来愈慌,愈来愈慌,不断地去看一些其余的面试点,生怕哪个点没有看到。最后呢,在面试的时候,发现本身全都忘光啦,并且在面试的时候,发现本身前面没答好,极容易影响本身后面的发挥,对吧。
其实时间越近啦,反而咱们不该该再去看一些新的面试知识,放平心态,不须要准备什么。
不须要准备什么?你可能会说,南尘,你在逗我?怎么能够平静到什么都不去准备呢?
确实仍是须要准备一些东西。
那到底准备啥?
自我介绍
第一个是自我介绍,刚刚前面说了咱们要怎么自我介绍,到底要说多少句,但我没有说到底该何时准备。正常来讲,在面试前一天准备这个,是最好的,但不要死记硬背。
项目经验介绍
你比较熟悉的项目是什么?你在工做中遇到的最大困难是什么?以及你最终是如何解决的?这个项目让你获得了什么成长?
本身的定位
通常在面试中,还会问到的优点和劣势,好比说:「你的有点是什么」?「你最擅长的事情是什么」?
不过但凡是你对本身有一个比较清晰的定位,哪怕你这个定位是错的,你也能够以不变应万变,拿出纸和笔记录下你本身的优劣势,并附上相应的案例。
尽量了解公司
要了解公司什么呢?确定不是他的什么福利呀什么的,你先得知道对方想要什么样的人,能够先看招聘网上的职位简介。这个通常仍是不够准确,若是有条件,能够问问里面工做的人,或者直接问他们 HR,若是录用你的话,会让你作什么。当你清楚了对方想招什么样的人,你会更加清楚本身应该怎么作。
再来应该了解面试公司的产品,猜想他们可能会遇到哪些问题。对方招你去是要实现产品和解决问题的,好比大型的 APP 应用,可能会涉及组件化方案和各类性能问题,而小型的应用可能会更加看重你的快速开发能力。
若是有条件,还能够准备一下 Java 的基础和 Android 的基础,没什么好说的,Android 基础能够直接去看个人面试系列。
不须要准备的。
一些你如今尚未掌握的技术点,准备它们的收益不是很大。既然你还未掌握,如今再看一遍仍是难以理解透彻,可能还会出现你认为本身答对了,面试官却认为你南辕北辙的状况。
好比:算法、设计模式、OpenGL 等,这时候看并不利于你记忆和应付面试官可能换一个角度来问你。
这样的题或者说技能,是很重要的,但在 24小 时内你只能接受这个现实。若是你其余都准备好了,也能够从如今开始投入时间在这些方面,但不要想着立刻就能用上。
在最后一刻,请再看一遍本身投递给这家公司的简历,如实按简历上的回答,保证你的诚信。若是你的说法和简历上不相符,对你的影响是很大的。
今天大概就讲到这样,咱们来作个总结。首先是咱们的简历总结。
简历上的全部内容都应该是你最有价值的东西。
第一句话很是重要,我在这里再说一遍啊。**简历上的全部内容都应该是你最有价值的东西。**这上面不该该带任何乱七八糟毫无价值的东西哈,好比你喜欢打游戏,喜欢摄影,这跟咱们程序员没什么太大关系哈。
黄金两页,PDF 格式,我的信息一行两个避免留白
咱们的简历简历都采用 PDF 格式,防止别人打开出现各类格式问题。页数最好控制在两页,项目个数控制在 3~5 个,项目数目太多的,注意筛选,每一个项目宁肯写更详细也不要写太多的项目,免除外包项目嫌疑。最开始的我的信息栏最好一行写两个信息,不要一行只写一个,浪费右上角大部分的好展位。
简历上每一个栏目的顺序
简历上每一个栏目的顺序最好遵循:我的信息 => 工做经历 => 项目经历 => 我的评价。社招的同窗也建议本身能有几个练手项目,能够增长校内经历在第二个栏目。
利用好 STAR 法则
在写简历的项目介绍的时候,最好采用 STAR 法则写清楚项目发生背景、本身的职责任务、本身的处理方案和遇到困难如何解决,最后用数字来量化结果。
拒绝太官方的自我评价
自我评价能够写,但不该该太多,通常 4 ~ 5 条适宜,内容不要太官方,最好能体现本身的定位,态度,遇到困难时的方案,本身平时的技术交流平台,以及本身的优劣势。通常本身对本身评价容易太主观,这时候把本身的想法告诉你的朋友,看看他们是否和你的见解一致,通常而言,其余人的见解会更加具备客观性。
不要只准备一份简历
对不一样的公司应该准备不同的简历,实际上每次的修改也不大,但不要一味迎合对方的 JD 要求去改写本身的简历,本身的内容仍是应该作到心中有数。
提早准备自我介绍
自我介绍是面试的第一个环节,并且在每一轮面试都会存在。针对不同的面试官,自我介绍应该侧重点不同,但大致思路一致。不可彻底背诵简历上有的内容,也不可随便说几句就完事儿。正确的思路应该是本身的一个全面总结,包含本身的工做中印象深入的难题解决过程(START 法则),一半表现本身的技术硬实力和工做表现,另外一半表现本身的软实力,包括但不限于沟通,学习和其余能力。
针对自我介绍,最好是提早在纸上写下来,而且对着墙多练习几遍。
如何准备技术面试
技术面试通常分两个方向。
第一个方向是简历上的内容,通常会针对简历上说起的内容进行深层次地追问,以确保简历上的内容属实,而且很容易经过细节判断技术深度。因此在写简历的时候,就应该猜想面试官可能面试到的问题。对简历上出现的一些框架,最好针对它的疑问点进行必定的准备。好比你说你擅长使用 RxJava,那你得知道 RxJava 1 和 2 的区别联系吧,给你一个实际场景,你得知道何时用 map、flatMap、zip、skipWhile 等这些操做符吧,你还得知道背压吧,以及 RxJava 2 究竟是怎么去应对处理的吧?
第二个方向是简历以外的内容提问。这个得先看你面试的职级,好比中级和初级开发,你得明白四大组件的基本生命周期吧,你得明白 Java 的基本基础吧,你得明白基本的自定义 View 吧。对于高级和资深,你得好好准备一下多线程、复杂自定义 View 以及动画,得知道多点触控这些吧。还有一些就是面试官所在的公司迫切但愿解决或者是他们以前的问题后面获得解决的内容了。
还有一个是须要看一下你面试的公司,稍大的公司会更加在意你的基础水平和代码质量,因此会对你的技术深度和技术广度有更高的要去,而小型甚至外包公司会更在意你的开发速度,和你的抗压能力。
总的来讲,准备再多的面试题都不如先把基础问题弄清楚,弄明白,再把你简历上说起的技术点都先想清楚,搞明白再去面试。
如何应对吹牛题
HR 的吹牛题不可避免,并且如今吹牛题除了 HR,甚至还有一些总监、经理等都会问到。基本吹牛题都是什么离职缘由呀,职业规划呀,什么你遇到过最大的挑战呀,还有你的优点是什么,为何咱们要录用你呀这类的。这些问题仍是应该事先准备的。和自我介绍应该,一样是应该写在笔记本上,而后本身屡次揣摩,可能你以为本身准备很好的东西,你写出来本身都知道了。
还有一个基本不可避免的吹牛题是:「你还有什么想问个人」?这个问题,针对不同的人问的内容要不同,对于管理者,能够问公司战略;对于技术人员,能够问公司的项目流程;对于行政 HR 人员,能够问福利和公司文化。若是确实没啥好问的,就委婉地表示本身以前经过其余渠道已经了解了本身想知道的,切忌不要直接说没有。
如何和 HR 谈薪资
和 HR 谈薪资是一个必不可少的过程。若是手里已经有 offer 或者前面感受本身面试表现不错,建议谈的更加有底气。通常要价比本身指望的高 15%,不要说范围价格,不要说范围价格!虽然我知道你内心比预期低 10% 也能够接受。
手里有多个 Offer 怎么选
面对多个 Offer,大多数都在同一个城市,这时候须要把眼光看的更加长远,**必定要把眼光看得更加长远!**选择更有发展潜力的公司,而不要一味地追求薪资。这一块我其实深有感触,因此前段时间,我放弃了高我如今薪资一半的公司,选择了如今的公司,其实缘由很简单,一面的面试官把我点燃了。
还有一点是,必定要注意距离,最好优先选择距离家近的公司,租房的能够把家搬过去。天天花在地铁上的时间,不如在公司多作点事儿。
对于校招的同窗,确定会有些 Offer 来自不一样城市。不考虑到家距离的,建议优先北京、上海、深圳、成都。再是广州、杭州和一些其余城市。
当咱们是初级工程师的时候,最但愿的就是有丰富的项目经验,好把本身苍白干瘪的简历填的炫丽饱满。然而随着时间的积累,简历上的项目是挺「饱满」的了,但咱们只看「外表」的行为形成了本身另外一个困境:看似很资深,其实又没有作过什么有难度的事情,工做了十年可能只是 1 年的工做经验用了 9 次。
我以前就面过一位从 09 年开始就作 Android 的人,我算算啊,到如今应该是快干了 10 年了。光项目,简历上都写了 10 多个,整整 4 页的简历。咱们抛开简历没有对项目经历进行精挑细选的毛病,我仔细阅读简历以后,发现简历中没有任何深刻的地方。虽然写的颇有技术,但却只是在使用 API 的程度而已,有些解决问题的方式颇有技巧,但还不成体系。
这位读者待过 4 家公司,其中两家都是知名互联网企业。但假设我是公司的面试官,我可能会对他表示遗憾,心疼他没有选择更加深刻的研究和拓展。
有知名互联网企业作背书,有将近 10 年的开发经验,但我总感受还差了点什么。
假如我是公司的 Leader,我会以为这样的一位面试者,固然会比通常的 Android 求职者技术更好,但性价比确实过低了。
没有技术深度是 Android 程序员的一种常态。由于不少工做,不少人从事的项目并不须要多少技术深度,即便你有深度,你也有可能发现用不上,对于大多数人,合乎理性的作法不是去追求技术深度,而是够用,能知足需求就能够了。
但转到我的的话就不同了,在技术上你须要够用,可是在某方面上你须要有必定的深度,以突出你本身的学习理解和运用的能力,并且这个能力是要有成功案例来背书。
特别是当你成为一个资深的工程师的时候,不少公司并不但愿你仍是那样平庸,没有深度。虽然你会纳闷,我就算有深度大家也不必定用得上呀?然而到了这个级别的人需求量并不像初中级开发那么多,公司更理性和稳妥的作法是选择有深度的人,不是吗?
我是南尘,只作比心的公众号,欢迎关注我。
南尘,GitHub 7k Star,各大技术 Blog 论坛常客,出身 Android,但不只仅是 Android。写点技术,也吐点情感。作不完的开源,写不完的矫情,你就听听我吹逼,不会错~