前文

本文希望通过揭开一些 React 隐藏的技术细节, 来辅助对官方文档中某些概念的理解

读者可以将本文看做对官方文档的补充

行文方式我采用的是提问-解答的方式, 即先根据官方文档给出的使用规则, 提出Why, 然后我们根据实际的调试再来解答这些Why, 最后系统的整理这些 Why 变成 How, 如果你们有更好的行文方式, 也欢迎留言讨论

另外为了阅读体验, 我不会粘贴过多的源码, 避免打断各位读者的思路.

来,发车了!

  1. 战略定位:Android面试都会问些什么?

要打败敌人首先需要摸清敌人。Android面试有它固有的套路。

一般大厂的面试包括 技术面 * 3 + HR面 * 1。

技术面中一面考察基础知识,这一面相对容易,只要你把我下面给出的武林秘籍背熟就易如反掌。这一面大约占40%;

二面侧重项目经历/应对问题能力,这一面要求普遍较高,需要学会应用知识,更注重于优化、性能等方面。但其实也没那么可怕,举个栗子:

我介绍自己车辆监控项目时,面试官首先让我去思考有没有什么不足。我总结了2点,其一是传输数据量过大会造成网络负担较重;其二是长连接稳定性不容易维护。面试官便继续问我有没有想出什么好的方法可以对不足处进行改进。我便接着描述了心跳检测和数据分帧。

Android 系统工程师面试提问 安卓工程师面试_Android


所以你看,如果把握住套路,传说中"必挂"的二面似乎洒洒水~项目经验如何去说我也写了一个专项,学到了保证面试官疯狂给你爆灯!项目经验不会说?字节跳动小姐姐手把手教你"套路"面试官!

这一面大约占40%;

三面是交叉技术面,这一面请自求多福。本人也很倒霉,撞上了一个网络安全组的面试官,疯狂问我黑客技术。我磕磕绊绊,根本回答不出所以然,场面一度尴尬……日常的时候积累一些多元技术是有必要的。所幸,这一面大约占20%,并没有过多影响总体分值。

其中手撕代码作为基本能力会穿插在每一面中,对于经验不足的校招生来说。算法能力会是决胜负的关键棋子。

Android 系统工程师面试提问 安卓工程师面试_Android_02

最后的HR面,就抱着老子已经拿到offer的心态快乐面对啦。不过需要提前准备一下自己的职业规划,可以问一下工资待遇和一些福利政策,对于offer丰收,难以抉择的大佬来说,此时此刻应该就是所谓的"痛并快乐着"吧~

  1. 运筹帷幄:我需要形成什么样的知识体系?

既然摸清了敌人的套路,下面我们就要对症下药。时刻铭记,你要学的是Android面试的知识,不是基础知识也不是进阶知识。漫无目的地横冲直撞只会事倍功半。

Android 系统工程师面试提问 安卓工程师面试_项目经验_03

  1. 披襟斩将:我需要掌握多少知识?

大致的框架有了,下面就是搬砖添瓦。一恩姐姐的武林秘籍无条件公开,建议大家加入收藏夹,或者打印下来,按照迭代模式学习、背诵、巩固。

最后

简历首选内推方式,速度快,效率高啊!然后可以在拉钩,boss,脉脉,大街上看看。简历上写道熟悉什么技术就一定要去熟悉它,不然被问到不会很尴尬!做过什么项目,即使项目体量不大,但也一定要熟悉实现原理!不是你负责的部分,也可以看看同事是怎么实现的,换你来做你会怎么做?做过什么,会什么是广度问题,取决于项目内容。但做过什么,达到怎样一个境界,这是深度问题,和个人学习能力和解决问题的态度有关了。大公司看深度,小公司看广度。大公司面试你会的,小公司面试他们用到的你会不会,也就是岗位匹配度。

面试过程一定要有礼貌!即使你觉得面试官不尊重你,经常打断你的讲解,或者你觉得他不如你,问的问题缺乏专业水平,你也一定要尊重他,谁叫现在是他选择你,等你拿到offer后就是你选择他了。

另外,描述问题一定要慢!不要一下子讲一大堆,慢显得你沉稳、自信,而且你还有时间反应思路接下来怎么讲更好。现在开发过多依赖ide,所以会有个弊端,当我们在面试讲解很容易不知道某个方法怎么读,这是一个硬伤…所以一定要对常见的关键性的类名、方法名、关键字读准,有些面试官不耐烦会说“你到底说的是哪个?”这时我们会容易乱了阵脚。正确的发音+沉稳的描述+好听的嗓音决对是一个加分项!

最重要的是心态!心态!心态!重要事情说三遍!面试时间很短,在短时间内对方要摸清你的底子还是比较不现实的,所以,有时也是看眼缘,这还是个看脸的时代。

希望大家都能找到合适自己满意的工作!