本人专科院校毕业,因实习表现突出留在了网易,总的算下来也有6年的Android开发经验了,但是去年因为结构优化的原因,公司裁员,而我很不幸成为了被裁的一员。
说实话,我到现在也没搞明白自己为什么会被裁?难道是因为人到中年了。
难道是因为我的专科学历?不应该啊,这都工作多少年了,还回头看我的学历?
虽然心底还是不服气,但是我也懒得继续纠缠,闹到法庭也没必要,不然怕是最后一点体面也无法保留。不管怎么样,我最后还是选择了拿补偿走人。
所幸,大厂还是有些良心的,补偿的额度还挺高,我也乐得清闲,趁这段难得清闲的日子好好准备下一份工作吧。
被裁后,我先是去了试了一下水,去试了一下腾讯面试,但是却被面试官怼的体无完肤,直接被out了。下面是我的面试经历。
那天我特意理了个发,刮了下胡子,穿上了我在去年双十一抢到的匡威,连袜子都是崭新的NB。
鉴于邮件对考查内容写的一清二楚,我一看那些要点和要求都是工作中接触过的也就没有引起重视。所以一面,我并没有做太强的心理建设。
但是事实证明我还是太年轻了,我和面试官的初次见面以我的无知和自信开始,以我的局促和落寞结束。
一开始,是自我介绍,公司职能,项目简介……到这里一切都很正常,但是,后面他根据我的简历深挖的时候就越来越不对劲了。面试官问的题目居然和我理解的完全不一样,和平时工作中接触到的也完全不一样,只能怪我对 Framework那些底层理解的不够透彻。
为了不显的太low,我假装不经意提了提自己在GitHub上有自己的开源框架和那两百颗星星,但是他并不care。
我的花样耍完了,就到了他肆意挥舞小皮鞭的环节。没错,他又在继续深挖我的底层:“我看你简历上的这个项目你貌似是主力,你这个项目的底层是怎么实现的?”
看来我如果还没求饶,他就不打算放过我。
…(这里省略一些不清楚、不知道、忘记了之类的词藻,保留一丝尊严。)
接下来是关于Binder哲学三连“是什么?为什么?怎么用?”
我把肚子里仅有的关于Binder的一滴墨水分成了三滴挤出来,仍然没有让他满意。
此时此刻,除了低头委屈说不会,内心的我已经意识到了现在的面试问题的严重性,平常听说面试你只要一喊不行,对方就会体贴地换一个方向继续深入,这次我都快被搞哭了,他居然换了个姿势继续往深怼,这谁顶得住啊……
到了这一步我是完全的凉了。本来是仗着自己有点工作经验,以前的平台也还不错,就想出来碰碰运气,结果这回事死耗子没碰着,还给我差点丢了一条命。
往后又问了一些数据结构的问题,我隐约记得是毕加索还是毕加树来着,不好意思跑错片场了。
总之,场面再度十分尴尬。
其实面试官的套路大多如此,每个技术都尽可能的深入,深到你不会为止,并不是非得要把你折磨的不能自理,而是为了考察你的技术水平到底如何。
但是事到如今我的大脑已经无法给自己完成心理建设了,摧枯拉朽般智商情商性商逆商全线崩盘。
值得庆幸的是,我居然急中生智,鬼使神差地用了十种及以上不同的方式表达了我不会,每种方式都尴尬而不委婉,并且还不重样。
好歹面试一波儿不能让人家觉得我一无是处,多少还算有点文笔…
其实我平时稍微多看哪怕一眼资料,多刷一道题目也不至于是这样尴尬的局面。
大家看到这里是不是已经在心里嘲笑我一百遍以上了,如果是这样,那我本次写文又有什么意义?找虐?我自然是要逆袭的。
机缘巧合,我在腾讯课堂上面看见了一个活动,说是大佬免费的面试指导(嗯,反正是免费,我就去试了一试)。
然后我的简历被当做反面教材嘲笑了(说出来都是泪),通过交流,老师也发现了我的底层原理短板,给了我一份手册《Android Framework 精编内核解析》,让我好好学一下,现在是免费活动赠送的。
我一看,哟,4.63MB,分量还挺足,先回去复习一下吧。
复习一个月后,经过师兄的内推,我幸运的得到了字节跳动的面试机会,最终历经5面斩获了字节跳动(抖音Android岗)offer,不得不感叹一下自己还是被幸运女神眷顾的。
下面简单分享一下我这次5面字节跳动的一个真题情况,希望能够对大家有所帮助。
1:插件化。启动activity的hook方式。taskAffity。
2:okhttp支持HTTP2?http2的功能有哪些?tcp方面拥塞控制?tsl的握手和具体的非对称加密算法。非对称名称
3:handler的post(Runnable)如何实现的。callback,runnable,msg的执行优先级。阻塞是怎么实现的?为什么不会阻塞主线程?
5:求二叉树中两个节点之间的最大距离。
6:206含义,未修改资源是哪个,302含义,301含义
7:多进程通信问题。binder优势。aidl生成的java类细节。多进程遇到哪些问题?
8:动态代理传入的参数都有哪些?非接口的类能实现动态代理吗?ASM的原理
9:Application和Activity在Context的继承树上有何区别?二者使用上有何不同?
10:任意一颗二叉树,求最大节点距离
1:设计一个日志系统。
2:内存泄露的分类。怎么查看内存泄露的问题
3:touch事件源码问题。
4:组件化的问题。module和app之间的区别。moduler通信是如何实现的。
5:native奔溃的日志采集,怎么处理?
6:注解实现一个提示功能:如果int的值大于了3需要提示。
1:介绍下flutter的启动流程
2:介绍下flutter与weex的区别
3:组件化介绍一下
4:webview中与js通信的手段有哪些?
5:介绍下flutter_boost的原理
1:适配器和装饰模式各自特点和使用场景
2:视频编解码是怎么做的
3:三色球排序
这面基本上就是闲聊,问了下我有么有其他的面试什么的,聊了下薪资待遇。然后我问了一些他们公司的加班情况什么的,期间HR问了下我的抗压能力和作息规律,我表示我是夜猫子,我们交谈的很愉快,双方都很满意。
我看见网上已经有很多分享成功的经验的文章了,这里就分享一下失败的教训吧。
腾讯那次面试我已经被折磨的身心俱疲了,面试持续了将近四十分钟,嘴开始打漂,情绪紧张思维也难以集中,回答中开始大量出现我感觉、我猜、可能、应该是等高危词汇。回答的中间穿插着我不自信的连接词“嗯~啊~哼~哦~”
这次作为loser再说说在求职前期准备过程中暴露出的问题,望大家引以为戒。
面试不应该是准备好了才去,而是时刻都准备好了。如果非要说从什么时候开始准备离职跳槽,我的建议是半年。
别像我一样,面试了才开始看算法和数据结构。
我蠢到一开始就动用了我所有的人脉,投了bat及其他二线大厂所有的内推。
算上字节跳动已经是我黄掉的第三个响当当大厂了,踩着大厂当垫脚石攒面试经,除了觉得自己蠢,我还觉得自己真特么牛逼。
总有人拿网上找到的拿了bat offer的人提供的复习大纲复习,结果发现并没啥卵用。
我这次字节的面试,他提出的所有的问题全部是基于我简历中的技能清单。
我认为很多人但凡能做到简历中技能清单描述的样子,就已经算了不起了。
如果简历中感觉无料可写?我推荐一个好办法:
听说过名字,就写了解;
跟着帖子写过demo,就写熟悉;
项目当中用过,就写熟练掌握;
项目当中经常用,就写精通;
我就是这么写的,结果很显然,出来混,总是要还的,敢装逼,就活该被人凌辱。
“如果程序员对职场感到迷茫,对眼下的舒适感到不安,我建议他出去面试,不见得要走,但是你要出去,听听市场对自己的评价。”
这句话是在一个求职公众号里看到的,我觉得不光程序员,任何职场人都该深以为然。
我对职场虽不迷茫,但是面试一波儿就发现,我在毫无意识的情况下,在工作三年这个节点成长上已经被人甩下一大截,更要命的是对基础知识的掌握程度完全比不上应届毕业的实习生。
往后日子里赶紧老老实实看书,踏踏实实做事儿,早日兑现自己曾经吹过的牛逼。
文中我提到的那次免费活动 获得的《葵花宝典》PDF文档,免费分享给大家,希望能帮助到你面试前的复习,并找到一个好的工作,相对来说也节省了你在网上搜索资料的时间来学习!!!
下面是这份资料的细节部分展示,手把手,保姆式教学,教你透彻理解这两个知识点,教你吊打面试官。
需要份资料的可以点击下面的蓝色字体免费获取
需要份资料的可以点击下面的蓝色字体免费获取
需要份资料的可以点击下面的蓝色字体免费获取
啃透这份154页的PDF,底层原理不用愁,帮你提高自己在人才市场的竞争力,吊打面试官!而且,不仅仅是应对面试,Android开发想要进阶学习,想要更大的发展空间就必须深挖底层原理,仅仅停留在表面,前路是很难走的。
最后,祝大家拿下心仪的offer,工作一帆风顺!