一次面试总结

本篇基本不涵盖技术解析,只是我个人久违的一次面试总结。

早在5月份就离职了,上家公司P2P行业,至于为什么离职相比了解P2P的都应该能猜个大概,从5月一直到8月 这3个月基本上就处于放飞自我的状态,为什么没有急着找工作,因为我有了一个女儿,这是我今年最开心的事情了,在家做一个全职奶爸,感觉特别的美妙,当然会很辛苦,但是育儿真的是一件很有乐趣的事情。

转眼就到了8月份 宝宝6个多月了,坐的也比较稳当了,也开始添加辅食,我女儿真的超级省事,找工作的事情就开始提上日程了,先是准备简历,我投的也比较佛系,先在boss上公开,后来拉钩上也投了一些,然后发现问的挺多但是深聊的不多,很多外派的工作我干脆直接拒绝了,可能我要求的薪资比较高,也可能我的简历看起来比较low,再加上基本是有一搭没一搭的聊着。其实我本人并不是很着急工作,因为还是抱着一个去大厂的想法,想再多准备准备,8月23号收到了第一个面试邀约,这距离我公开简历大概有一个礼拜了,想着这是第一个面试邀约,也没太关注是什么样的企业,我就接受了,也顺便想看看3个月没工作的我,状态如何。

面试约在下午2点,看了下位置地铁是真心不方便,然而开车缺只需要35分钟,所以果断开车去了,面试公司比想象中的要大的多(后来才知道这真的是一个比较大的公司),基本的接待流程不表直接进入正题。

被一个一看就是技术的人员领进了一间会议室,这位仁兄看起来也很随和让我随便坐,也让我放松,说随便聊聊,其实我真的不怎么紧张,他看了我的简历,因为简历上有写android系统启动 app启动 binder通信等知识点,所以就从这三个方面问了一下,既然写在最前面的 当然是掌握的比较好的了,从源码到原理到扩展我将这3个问题说了一遍,他也比较认可,然后就说了一个比较场景化的问题,他说他们是做SDK的,如何在客户多个app集成他们SDK的设备上,实现多个app之间的推送通道共享,实现互相之间的跨进程通信,其实听完我是懵逼的,因为我一直做应用层,SDK还是做地图服务的,完全是我非常陌生的领域,我才后悔根本没看公司是干什么的,而且推送这玩意我也没搞过啊,基本都是用第三方的,当然基本原理就是Socket长连接,然而我开发过程中还真就没有自己弄长连接玩过,在Java层面要跨进程通信肯定是aidl啊,基本SDK既然是共用的 那么aidl的文件肯定是写在在Sdk中的,但是怎么共用通道这里由于没有实现过 一度陷入尴尬的局面,最后面试官也很体贴的给出了思路引导,就是在最先启动的app中开一个service进程,用这个进程实现Socket,这么一说我思路就打开了,接着就说A B C3个应用如何基于这个service进程进行通信,这个Service一定是SDK中定义的,我们通过aidl就可以获取到相应的binder对象。

上面的这个场景化问题算是在引导下给出了解决方案,然后又问了我如何去设计一个图片加载框架,CPU异常排查,那些情况会引发CPU过高,以及应用流畅性如何保证,Bitmap大小问题,内存相关问题,这些问题对我来说是相当友好了,逃不开我的知识体系,基本回答的都不错,问题越开放,我越强壮 O(∩_∩)O哈哈~。这个技术一面就算结束了,除了那个问题其他的都还不错。

技术二面开始,又进来一位面试官,一开始我以为是HR,因为他还是让我介绍下自己,然后突然就说他们项目有一些广告,做这种地图服务(参考高德百度),当移动到相应区域怎么去请求地图上的广告信息(也就是商户信息,地图上的那些大头针标记),需要那些参数,这个问题一出我才发现这原来是技术二面,这个问题相对来说比较简单,既然是地图肯定逃不过地理位置,我就说的地理位置,他问我那个地理位置,我就说是屏幕中心点的,然后配上一个半径范围,他又说这样并不严格准确,意思就是屏幕是长方形的,这个屏幕中心点半径是一个圆形,那我说就传左上右下这种位置的地理位置,他说这个问题连中心点很多人都回答不上(我其实不知道为什么会很多人回答不上,我回家问了做web前端的媳妇儿,她也给出了和我类似的回答,估计可能这种场景问题一上来都很懵逼吧),然后他还说左上右下这样是可以但是还是有问题,就是发生旋转的时候,然后也没有让我继续思考如何解决,可能觉得到这里能回答到到这种程度就可以了。

然后又问我这个商户信息的展示时机,我就说了移动手势结束,判断action_up的时候,他能理解我的意思,就说是地图停止滑动的时候,我说是的,他说我们有地图停止的回调,我说那就在这个回调中就可以了,更省事一些。他说如果停止之后又立即移动怎么办,这里考察的就是网络请求时机的设计了,我就说做个延时,如果一段时间比如500ms内没有触发移动回调就进行请求,触发了就不进行请求,本以为这样就结束了,结果又问了我具体的代码实现,说真的3个多月没敲代码的脑袋还真有点木,一下子还有点懵,我就说弄个定时器500ms ,弄个标志位请求的时候判断,移动回调触发的时候修改标志位,他说这样可能还有问题,最后说移动的时候直接取消定时器就好了,这样设计会好一些,然后又问我如果是小范围移动误触了这种怎么办,我就说看看移动的距离吧 在一定范围内我们就不取消定时器,他觉得还可以就没继续追问。

接着就是如果弱网络环境下怎么办,我理解了他要问的问题就是请求回来的数据已经和当前地图画面不匹配了,因为弱网络下可能经过3 4秒甚至更久,而这时候用户已经移动到别的区域了,一开始还是将思维固化在上次的标志位上,说了一下思路,感觉自己都说服不了自己,最后突然就灵机一动,说直接取消请求就好了,他听了之后也似乎如释重负似的,对嘛,这最简单,看来是我回答上了,他很满意… 不得不吐槽下自己,果然不在工作状态很多东西一时间真的很容易走到牛角尖里出不来,后来又问了一个关于SDK早期设计不完善遗留问题怎么去弄,一个关于使用方app向sdk发送统计数据,由于多线程问题导致缓存一致性问题,发送过来的数据如果没有第一时间上传服务器,到这数据被更改但是又不能加锁,问我怎么办,我说只有copy一份了,这其实是一个妥协的问题,因为SDK已经迭代了很久 现在让用户去改肯定不行,所以只能自己这边copy然后上传这个copy的。然后又问我copy需要注意什么,我又懵逼了,需要注意什么,然后试探性的说了一句深拷贝,他说恩对…这里我也是有点凌乱。

二面中又问了一些问题不过我看来都比较基础,总的来说二面的面试官思路更加清晰,问题都是层层递进的,从开始请求需要什么,到什么时候请求,请求时机优化,再到复杂网络情况下请求怎么办处理,以及面对SDK早期设计不完善如何补救最小的影响用户等等。总的来说我回答的7788吧,毕竟没接触过地图开发,二面之后就是HR了,不得不说大厂的HR还是很有见解的,基本上有很多套路,不过对于我这种三观正确又比较擅长沟通的HR面可能是我最不担心的了,比较对面是个女HR,而我的颜值可以说在程序员中算是出类拔萃的了(接受实锤),所以这种套路我也可以轻松应对,最后谈的也很愉快。

回到家没多久,就发来了offer,具体就不表了,其实3个多月没有工作第一次面试就发来offer对我来说其实是一个挺大的鼓舞,最起码获得他人的认可,虽然offer的薪资和我要的有差距,但是其实也比较不错,可惜我本人没有在地图领域发展的想法, 最后只好婉拒了,当然其实HR中关于我职业定位的问题也应发了我的思考,毕竟年龄也早到了该考虑未来的情况!这篇其实就是一个简单的流水记录,炫技可能有点,显摆显摆也有这种小心思,但是更多的是发现现在的面试场景化问题越来越多,面试的时候很多都要具体到代码实现,长时间不敲代码真的有点头脑发空,而且我觉得一定要有职业规划这样你才能随着年龄的增长保持一定的竞争力,就是写到这里吧!真有看的童鞋也辛苦你们看了这么久,最近准备写一下关于职业定位的问题,以及准备一些面经发出来。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值