PS:最近有些难受,以下内容并不客观,更偏向于自己。希望大家友善发言,如果能够说一下自己的想法或者对于面试看法技巧之类的就更感谢了。
首先介绍一下自己的情况。目前所在的是一家小的创业公司,待了 3 年多,薪资一般吧。
我觉得自己的能力是没问题的,想寻求更好的发展。
本来呢,也打算骑驴找马,打算年前离职,但是昨天的一次 Android 面试让我心好累……我迷茫了。
由于这几年公司也在转型。工作经历大概可以分为 3 个阶段。
第一阶段是从进公司开始做 android app 开发,无论是外包或者公司的主力产品都做过。
第二阶段是做 ROM 开发,由于公司规模不大,除了硬件和底层的东西外,基本上是一个人负责了整个 ROM 的修改,编译,发布(基于 MTK 的某一个 rom,然后做一些 android framework 层面上“奇奇怪怪”的定制)。
第三阶段,也就是当前。之前做的 ROM 所适配的手机销量未达预期,公司也不再准备投入更多,基本上是做做简单的维护。而我被分配的新任务是做机器学习的一些东西,比如 Tensorflow, OpenCV 做做图片处理,训练之类的。
相信诸位看了上边的经历,大概也猜到我现在所面临的问题。即,当前在一线做 android app 开发,而我的目标仍然是想找 android 开发的职位(没错,或许你会说我傻,但是我有自己的坚持)。
事先说一下,因为确实有段时间未做公司正式项目的 app 开发,但是也不是说已经荒废了技能,下面是我对自己的一些评价:
总的来说,我觉得自己的能力还是很不错的,就是感觉运气好像不是很好,当初校招的时候就没有找到拿到心仪的offer。
我从来没想到,自己会在面试中沦落到如此尴尬的境地。
我当时是投的腾讯的Android开发岗(毕竟小厂待了这么多年,还是想要进大厂看看的)
腾讯面试官非常耐心,差不多都是按照他所准备的 Android 面试题一一提问。一开始的问题也能应对自如,可是后面我就懵了!
1、说下jvm内存结构、代码调用过程中的内存流程吧。
2、java如何分配内存,多线程呢?
3、Spring如何加载注解
4、Spring启动流程、bean实例化
5、xxljob原理,使用流程
6、OOM定位、解决方式,流程
7、讲项目xxxxx
以上问题基本上没有什么阻碍,大多顺利的回答了,但是我没想到后面居然越挖越深了。
8、redis pipline是全双工还是半双工
9、云原生是什么?(这个真不会,我直说了自己不会,面试官就换了个问题)
10、用过广播吗?说说广播的注册方式?
11、你知道为什么要设计者两种方式吗?(不知道,不过面试官给了提示,后面跟上了)
12、那说说广播底层的设计原理吧
13、为什么要用Binder呢?
14、Binder的原理是什么?Binder的优势有哪些?为什么Binder不用socket实现?
前面几个还能在面试官的提示下勉强答上来,但是后面就是真的跟不上了,很多技术都会用,但是要我讲出来是真的很难。Binder原理我是真的搞不懂啊……难受,后面的算法题也没有答上来……人都傻了,大厂都喜欢这么问吗?
面试只进行了二十几分钟,面试官就跟我说“回家等通知”了。
最主要的就是底层原理这些准备的不够充分。
我对自己的表现非常不满意,面试官问的技术我都用过,大部分都能答上。
但是我自己所组织的语言,描述的结果却差强人意。我更期待的是对于我自己项目经历的说明。因为这是我和其他应聘者不一样的地方。而面试官却完全没问我简历上的项目经历。虽然最后我还是自己硬讲了一下,但面试官也并未有兴趣,我讲的也很干瘪。最后面试就这样结束了。
哎,后面面了阿里,也是一样的挖底层,Handler和Binder这些东西必问啊!!!要好好准备!!
后面我干脆去机构买了一份大佬编写的PDF资料,这份资料我上传到我们2000人小圈子的共享文件了,需要的自取,密码找管理员要(点击此处蓝色字体可以直达)。
需要份资料的可以点击下面的蓝色字体免费获取↓↓↓↓↓
这份资料我上传到我们2000人小圈子的共享文件了,需要的自取,密码找管理员要(点击此处蓝色字体可以直达)
需要份资料的可以点击下面的蓝色字体免费获取↓↓↓↓↓
这份资料我上传到我们2000人小圈子的共享文件了,需要的自取,密码找管理员要(点击此处蓝色字体可以直达)