人们都说,这个世界上有两种人注定单身,一种是太优秀的,另一种是太平凡的。
我一听呀?那我这岂不是就不优秀了吗,于是毅然决然和女朋友分了手。
人们都说,互联网寒冬来了,这个时候还在大面积招人的公司,必然是牛逼的公司。而这个时候勇敢跳槽的人,必然是牛逼的人。
于是2020年5月25日下午14:00,我开始了字节跳动的社招面试。
为了这天,我前一天排老长的队理了个利落的发型,胡子刮得一干二净。穿上崭新的新百伦999,连袜子都是崭新的NB,墨绿色工装裤配酒红色卫衣,外面再搭一件精致的黑色羽绒小坎肩,准时准点出现在电脑屏幕前,准备开始视频面试。
去面试头条,你最好有点心理准备。我面试过头条的好兄弟给了我一句忠告。不过邮件对考查内容写的一清二楚,所以一面,我并没有做太强的心理建设,事实证明我可能对通用型业务和软性技能的理解还不够透彻。
时间到了,画面里出现一个面积很小的房间,面试官坐在里面调节姿势和座椅靠背。这不是我第一次,但我却比第一次还要紧张。面试官跟我的一位闷骚朋友很像,长相、气质、说话声音如出一辙,我几乎差点问他这些年跟郑州那个女孩子还有没有联系,孩子到底是不是你的......
确认过眼神,我们在初次见面的紧张和局促中正式开始,前戏的部分大同小异,自我介绍,公司职能,项目简介。
小作坊走出来的小猿,项目经验并不出彩,没有高并发,没有分布式,前端后台服务器和数据库部署在同一台机器上。为了不显的太low又假装不经意提了提自己在GitHub上有自己的开源框架,但是他并不care。我的花样耍完了,就到了他肆意挥舞小皮鞭的环节。
接下来是我靠着自己的记忆整理出来的这次的面试题:
字节一面 1小时
面试官一直在摆弄自己超长的浓密头发,可能是变相施压吧在。。
- http1.1和2.0区别
- 序列化,Serializable和parceble区别,分别什么时候用
- tcp三次握手
- 内存泄露
- 双亲委派机制
- 快排
- threadlocal了解吗
- handle你怎么理解的(扯源码),post方法是怎么工作的(封装Runnable)
- okhttp讲讲
- 事件处理机制
- Activity生命周期,给了几个场景问生命周期变化
- Fragment生命周期
- Service(具体是啥记得不太清了,都学学没坏处)
- GC回收机制
- HashTable理解,初始带大小,扩容机制,HashMap
- 还有哪些安全的map
- sychronized用过吗,sychronized可以相互嵌套吗
- violatile用过吗
- 算法:之字形输出二叉树(秒了)
20分钟后字节二面 1小时
- 接口和抽象类区别
- 设计模式六大原则
- handle内存泄露
- 进程调度策略
- 如何保证微信发送消息可以传达到,跳出TCP思维想想(结果还是抄了TCP思想)
- 由于网络原因信息发送速度不一,如何使接收端可以确认信息的正确顺序
- 如果让你管理APP中的线程你会怎么做(我也没太懂。。就说了线程池之类的)
- okhttp线程池怎么实现的
- 事件处理机制
- 如果添加onClick事件怎么处理事件
- 如何下载一个特别大的图片
- 如何加载一个特别大的图片
- 如何在关闭程序之后很快加载特别大的图片
- Exception和Error区别以及Exception两种类型
- 算法:求最长递增子序列(原本以为是不连续的讲了半天。。面试官说是连续的,O(n)秒了)
半小时后hr打电话约三面(视频面)
字节三面 40分钟
面试官:那我就看看你安卓了解到什么程度吧。。
- 布局了解过哪些
- 广播讲讲,系统广播有哪些
- MVP和MVVM讲一下
- 用过哪些隐式intent
- Fragment生命周期
- touchEvent和touchListner
- targetSDKVersion,minSDKVersion,compileSDKVersion(得知我没注意过,面试官发出了肆无忌惮的笑声。。对不起这些不会是真的会被嘲笑)
- SQLite用过吗,sharedpreference用过吗,多进程使用sharedpreference
- 聊项目
- 平时有什么爱好
- 安卓看了哪些书
中间面试官问了很多底层原理的问题,除了低头委屈说不会,内心的我已经意识到了问题的严重性,平常面试你只要一喊不行,对方就会体贴地换一个方向继续深入,这次我都快被搞哭了,他居然换了个姿势继续往深怼,这谁顶得住啊……到了这一步我的心理防线基本宣布告罄😭😭😭
其实面试官的套路大多如此,每个技术都尽可能的深入,深到你不会为止,并不是非得要把你折磨的不能自理,而是为了考察你的技术水平到底如何。但是事到如今我的大脑已经无法给自己完成心理建设了,摧枯拉朽般智商情商性商逆商全线崩盘。
当然这也不能全怪我,上来就是三个大闷棍,就是李云龙来也让旅长打成懵逼了,哪里还能腾出精力开意大利炮。
最后的视频面面试官终于放我走人,长达一个小时的激情视频聊天终于结束,关掉视频的一刹那,随着浑身一阵抽搐,整个人瘫软在椅子上。我是谁?我在哪儿?刚才发生了什么?
哦,刚才发生了那种事情。我之前对那种事情还挺向往的,内心对此充满了激情和憧憬,怎么现在,对这件事情一点兴趣也没了?现在只想这么瘫着什么也不想做。要不要点根烟抽抽?哦对了我不抽烟。原来贤者时间脑子里这么多想法……
飘飘忽忽浑浑噩噩,脑海里一直回荡着周董的音乐:这感觉已经不对我最后才了解,一页页不忍翻阅的情节我好累,你沉默看我掉过几次泪多憔悴,而我心碎你受罪你的offer,我不配~~~!
面试过程和提到的问题大致如此,为了阅读体验有部分艺术修饰,但是内容全部都是真实的。接下来咱们说点正经的。
面试中需要注意的问题
今天这轮面试,算是被扒了个体无完肤,可以说是程序员面试的反面典型,当然我也不怕说出来,菜就是菜,吹水就是吹水,努力把吹过的水早日兑现,迟早有一天能成真正的大佬!
这次作为loser再说说在求职前期准备过程中暴露出的问题,望大家引以为戒。
1、尽量早早做好准备
面试不应该是准备好了才去,而是时刻都准备好了。如果非要说从什么时候开始准备离职跳槽,我的建议是半年。别像我一样,面试了才开始看算法和数据结构。
2、先找小公司面几次进入状态,再投大公司一举拿下。
我蠢到一开始就动用了我所有的人脉,投了bat及其他二线大厂所有的内推。算上字节跳动已经是我黄掉的第三个响当当大厂了,踩着大厂当垫脚石攒面试经,除了觉得自己蠢,我还觉得自己真特么牛逼。
3、你的简历,就是复习大纲
总有人拿网上找到的拿了bat offer的人提供的复习大纲复习,结果发现并没啥卵用。我这次字节的面试,他提出的所有的问题全部是基于我简历中的技能清单。
我认为很多人但凡能做到简历中技能清单描述的样子,就已经算了不起了。如果简历中感觉无料可写?我推荐一个好办法:
1.听说过名字,就写了解;
2.跟着帖子写过demo,就写熟悉;
3.项目当中用过,就写熟练掌握;
4.项目当中经常用,就写精通;
我就是这么写的,结果很显然,出来混,总是要还的,敢装逼,就活该被人凌辱。
4、警惕舒适区
不得不承认我在现公司呆的真的非常舒服,领导非常器重,项目和授课两不耽误,去大学实训总是受到学生的追捧,手里时不时还能接到价格公道的私活儿。
之所以想走,一方面是因为心中对大厂和技术的执念,另一方面是因为现在已经到了给自己规划的时间,碰巧赶上互联网寒冬是没有办法的事,但是我仍然坚信真正牛逼的人是不会被寒冬所阻拦。
最近的几波儿面试直接把我打到怀疑人生了,面试完后双目无神的望着天花板不知道该如何评价自己。授课到现在带过的学生虽然不多,但是送进一二线大厂的没有二十个也有十几个了(我们机构不造假学历,都是实习生进的),怎么我这个老师找个工作这么费劲?是道德的沦丧还是人性人扭曲?是大厂真的飘了还是我确实拿不动刀了?
“如果程序员对职场感到迷茫,对眼下的舒适感到不安,我建议他出去面试,不见得要走,但是你要出去,听听市场对自己的评价。”
这句话是在一个求职公众号里看到的,我觉得不光程序员,任何职场人都该深以为然。我对职场虽不迷茫,但是面试一波儿就发现,我在毫无意识的情况下,在工作三年这个节点成长上已经被人甩下一大截,更要命的是对基础知识的掌握程度完全比不上应届毕业的实习生。
往后日子里赶紧老老实实看书,踏踏实实做事儿,早日兑现自己曾经吹过的牛逼。
最后
不知不觉自己已经做了几年开发了,由记得刚出来工作的时候感觉自己能牛逼,现在回想起来感觉好无知。懂的越多的时候你才会发现懂的越少。
最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的24套腾讯、字节跳动、阿里、百度2019-2020面试真题解析,我把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。
还有 高级架构技术进阶脑图、Android开发面试专题资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
一线互联网面试专题 379页的Android进阶知识大全 379页的Android进阶知识大全点击:
《Android架构视频+BAT面试专题PDF+学习笔记》
即可免费获取~
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。(我现在正在按着这份学习笔记复习,争取下次面试不再被怼!)
网友评论