原文:潇潇凤儿
现在的市场环境确实不大好,裁员与及在预谋裁员的公司一大把,当然招人的公司也有。楼主这几天去面试了几家公司,目的有以下几点:
1、跟现在老东家签约的合同快到期了,想出来看看新机会,有好-机会就考虑挪挪窝了;
2、现在外面的市场是个什么样子,求职的人和招聘的人比例;
3、市场对于一个高级/资深开发工程师的要求是什么样子(毕竟纸上得来终觉浅,觉知此事须躬行);
4、年龄到底是不是个坎。
面试机会的渠道
楼主从3月初开始先在北邮人论坛(自己北邮毕业的,倾向于学校论坛)上看社招版块,投了五家,有两家约面了。之后在Boss直聘网和猎聘网上填写信息,上传自己做好的简历附件。周六刚填完,就有不少猎头打电话,管我要简历,加微信号,然后自报家门有哪些公司可以内推的,一开始没经验,想着猎头能推荐,就让他们内推呗。结果后来发现联系的猎头都快要把自己手机打爆了,而且路数都一样,都是那么几家公司帮忙推荐。周一赶紧把猎聘网上的简历撤下来了,给我的感觉就是猎聘网上几乎全是猎头吧,而且后面发现通过猎头推荐的能去面试的公司几乎没有,可能帮忙递了20家,能有2家约面就不错,而且还不是应聘公司跟面试的人单约,是猎头两边约,这样面试时间可能得来回改,可能猎头生怕跳单吧。猎头会在面试前一天各种提醒你明天要面试啊,带简历啊,当天又问你出没出发啊,提醒你面完了给他们打电话呀,有时没面完就开始给你打电话,发微信,询问面试情况怎样。可能生怕跳单了?反正联系得太频繁了,搞得我现在对猎头很反感,其实他们跟房屋中介一样,如果你让告诉中介要租房或是买房,他们一段时间内会不停得给你发消息打电话,约你出来看房子。通过猎头找工作肯定有一定的成功率,但我是不想再通过猎头找工作了。
再说说Boss直聘吧,这上面就清爽多了,很多公司直接把招聘职位、要求、公司简介、员工待遇、岗位薪水等写清楚了,他们可以在上面搜寻应聘者的简历,有意向的直接约面了。应聘者也可以看看各家公司的应聘职位,自递简历,自报家门,如果对方有意向,直接约面。我大部分面试机会都是从这上面获取的。如果是猎头在这上面联系我,我一般都直接略过了。
下面说说自己面试了几家公司遇到的一些面试题目吧,感觉无论自己怎么准备,好像永远达不到面试官满意的程度,或者说自己总有很多不会的,稍微一问深了,就不会了,这也怪自己技术栈深度不够、广度不够,没面过,没经验。而且各个面试官真是看心情,路数完全不一样,有的只问java特别特别基础的知识,比如面向对象的设计原则、比如char占几个字节,能不能存中文。。。有的问android性能优化,有的只考算法,有的可能来个脑筋急转弯。不过这也激励自己要努力,不能再每天无所事事的,做完公司那点活了,不去主动更新自己,也知道自己到底有几斤几两了,当别人问自己的职业规划时,自己也思索着,以后到底想发展成什么样。
面试题目
- 一个创业公司
(发现问下来几乎全是java基础知识,几乎没有android知识)
-
先是笔试:生产者消费者模型用线程方式实现、按元素大小拼接两个链表
-
同步和异步的区别
-
阻塞和非阻塞的区别
-
泛型擦除
-
集合中线程安全的类和非线程安全的类(SparseArray和ListArray的区别,SparseArray怎么存数据、取数据)
-
Gradle插件怎么做
-
https怎么实现防抓包
封装第三方库等等;
-一个五六百人的民企
线程池
-
消息推送(自己做一个消息推送怎么实现)
-
Exoplayer相对于系统的MediaPlayer有什么优点
-
h5面面加载缓存,和原生怎么传递数据
-
MQTT和XMPP有什么区别,为什么会有那么多协议
-
https的原理,中间人攻击
怎么中断一个线程
-大厂
(多家公司面试题汇总,一些我认为的简单或是常规问题就不罗列了,全是我自己之前没怎么关注的问题,所以有时第三方库烂大街的原码分析要看,但有些关键点,其实很多博文可能都没分析到,需要自己多想想,自己主动去思考)
AsyncTask原理,在子线程中定义AsyncTask实例可不可以,为什么不可以呢
OkHttp原理(说了那些拦截器)怎么实现多路复用的(这个主要从https实现多路复用的原理上谈,用了二进制分帧,那okHttp其实就是按分帧来读取,具体可以自己看看相关博客)
Handler的机制,android内部是怎么实现发送延时消息,(一开始以为是用个类似于Timer之类的定时任务,后来才知道是用系统开机时间+延时时间得到一个时间T1,当手机当前时间到了T1的话,就会把消息发送出去。但有可能UI线程被阻塞了,所以到了T1时间,也不能确保100%这个Message被发出去的)
性能优化减少apk体积,怎么减小so包的体积呢
怎么给一个应用加固
ANR的原理,怎么从trace.log中找到ANR的原因及出现的地方(找到main thread),如果只是在主线程中Thread.sleep(10S),会不会出现ANR
JNI层的Crash怎么定位(通过ndk中相应的工具addr2line ndk-stack等可以定位到行)
广播为什么能作为四大组件,有什么特殊之处(经面试官提醒,能实现一对多通信),本地广播的实现原理
Android中设计Fragment的好处,那有了Activity为什么还要设计出Fragment来呢(解耦)
ViewStub为什么能实现延迟加载(它没有进行测量和绘制,只在调flate或是setVisibility时才会加载进布局)
Binder怎么实现进程间通信的,怎么注册服务的。。。。
。。。。还有很多题,就不一一举例了,只能说给自己一个教训,很多东西看深点就不会多问一点就不知道了。
-创业公司想招团队负责人
做过哪些性能优化,Leakcanery的原理,怎么检测内存泄漏的
android的新技术你用了哪些
你认为你应用中做得比较nb的地方有哪些,你认为你项目中解决了哪些技术难点等等。。。
-我认为反常规的面试
1)直接拿着我做的公司某个应用开始一通批判,觉得我自己对自己做的应用都不负责任,还有什么理由来应聘你,问你认为你最善长做的是什么,比如UI、功能、性能优化等,你要说UI吧,你这UI做得怎么怎么的,你要说性能吧,应用性能也确实一般般,让我觉得我没有啥善长的。回来老公说我们公司害了我,因为我现在的公司做的应用要求太低了,能用就行。但是别人对我要求松,我得对自己严要求、高标准〜〜〜〜
2)上来弄个类似于脑筋急转弯的题
Set<Short> stack = new HashSet<>();
for(Short i = 0; i < 100; i++) {
stack.add(i);
stack.remove(i-1);
}
System.out.println(stack.size());());
我以为会抛异常,面试官问要是不抛,又会输出什么,我想着输出1呢。后来自己下来试验了一把,发现输出100,让我百思不得其解。后来百度搜索,经别人提点才知道因为i-1这里用到了隐式类型转换i-1会转成int型的减法,所以在remove时,根本没有那个对象,所以无论怎么调stack.remove(i-1)都不会有元素移出,我不得不感叹面试官设计的陷阱。后面又问了两个矩阵传送门问题,应该有取巧的办法,可能我脑子真是太笨了,最终也没有想出来。
面试感言
自己的总体感受是:现在市场大环境不好,各大互联网招人的部门都是些边缘部门或是新设部门,有些甚至是光杆司令或是完全全新的部门,从0个人开始招,先招团队负责人等。现在市场是供过于求,有不少被公司裁掉的员工,在这个节点找工作,导致楼主去面试,面试官一上来就问你现在是离职态还是在职。如果自己不够优秀,面试官有很多选择,是不愿意付高价来招聘你的,按道理什么时候都这样吧,只是现在有点过了。市场供过于求,应聘公司有得挑,不够优秀,可有可无的人,一般会倾向于压低工资。
通过这轮面试,让我知道了自己的差距,自己的研究的东西太浅薄了,而且没有自己的优势或者说专长。而且自己作为一个女程序员,发现HR面时很吃亏,HR好像提前给你考虑了各种因素,结婚了是吧,有没有小孩,有小孩你得照顾小孩吧,我们这里很忙的。即使你再想证明自己,工作方面不会受影响,但他们还是不想冒这个险,就像我当年校招找工作,去自己老家某银行面试,省行不要女生,可以去自己家里的分行。因为你要结婚,要生孩子,要休产假,要照顾家庭。我什么都没说呢,就把我给否完了,给我先下个定义,难不成想让女程序员都不要结婚不生娃么,你也有媳妇啊。
总的来说,自己劣势挺明显的,没有在某方面有很深研究,没有什么优势,知识面的广度和深度都不够,这方面要加强,同时作为一个有娃的女程序员,已经被别人否掉了50%了,所以必须从技术方面加强吧。
工作我还会继续找,人都是追求上进的,有好机会还是会考虑挪窝的。我不想在我30岁就干一份可以养老的工作,技术我也会努力去提升,愿我和大家都会有一个更好的未来。
资料分享欢迎Android工程师朋友们加入安卓开发技术进阶互助:856328774
免费提供安卓开发架构的资料(包括Fultter、高级UI、性能优化、架构师课程、 NDK、Kotlin、混合式开发(ReactNative+Weex)和一线互联网公司关于Android面试的题目汇总。
合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!
网友评论