15 年手持 4 个大厂 offer 的我,今天面试今日头条体无完肤
1)先讲自己面试前的工作状况
? 我在 11 年进入的 Android 行业,没错我是转行的。本科是机械电子专业,大学就开了一堂 C 语言的课程,而且,这个课程基本上早就还给老师了。现在想来,我那时真的生活在一个非常好的时代,我毕业前听说 Android 开发非常火,然后身边有很多学长通过培训进入了一个软件开发行业,薪资很高,所以,我带着将信将疑的态度,试试的太多也报了一个学校附近的 Android 培训班,名字我忘记了,一个不大的机构,一个老师他自己一个人教课,那段时间是我大学学习东西最多的时候,经常在吃饭的时候还在想着代码。 学习了 4 个月,没错,我进入了 IT 行业实习,深圳的一个公司,还是上市公司,薪资水平我们班最高,7.2K 一个月,当时我非常满意(12 年 6 月正式转正),同班同学能拿到 5K 以上的寥寥无几。
? 随着时间变化,到 14 年,公司给我开的工资已经有 16k 了,几乎与我刚进公司翻了两倍,但是我并不满意,我了解到的身边同事出去别的公司可以拿到 20K 以上,于是我也跳槽了,我去面试,面试结果说实话感觉好轻松的拿下了 4 个大厂的 offer,记得是 百合网,大疆无人机,顺丰,YY 语言。薪资最高的开到了 30K+,加上年终奖什么的,应该可以到 50W 一年,我毫不犹豫的选择了这加公司,一待就待了 2 年。 还记得是 16 年,身边一个玩的好做后台的哥们跟我说,他准备去创业了,做智能移动医疗设备在深圳,问我要不要一起去,有期权,初始创业团队,天使轮,薪资也比现在的公司高,我顺利的年薪到了 60W,带团队。当时想,我能够独立开发一个 app,能够实
现各种功能,然后带着一个 6 人的开发团队,职业发展不错,我现在想起来感觉真的很好,很无知。
? 很快时间到了 20 年,一场疫情,公司发不出工资了,30+岁的我不得不找工作了。起初是很担心的,也很难受,毕竟 4 年没有找工作了。
2)讲解面试过程
? 开始修改简历,投简历,一开始我投的有,腾讯,招商银行,阿里,腾讯音乐,滴滴,小米。基本上简历都过了,一开始这些公司都发了面试邀请,应该与自己多年的工作经验和大厂经验有关。但是这个时候才是真正的内心难受的时刻才开始,因为,职场经验让我很会聊天,但是,技术问答却让我无话可说,真的非常非常难受。我一直自认为技术还是不错的啊,公司项目一直都是我在主打,项目游刃有余,需求皆能分配给下面的人完成。但是,一面试我才真的傻眼啊,那些技术人家要求的不是简单的应用,而是原理。每个点都是问原理啊,我晕了。虽然很难受,我决定还是总结一下,用这个文章来思考我这个现在想起来最近几年创业公司几乎没有成长的职业生涯。所有面试都在一面挂了,而且面试过程就是煎熬,我的痛苦从一面开始,一直到现在还存在着。
3)滴滴一面试题总结
? 在滴滴,一开始被问的第一个是,你知道广播 BroadCast 有哪几种吗?然后问我,都怎么注册?一开始想,这他妈不是侮辱我么?然后,他说广播通信的原理是什么?我他妈傻眼了,我看着对面那个其貌不扬的小伙子,说了句不知道,噩梦的开始...
? 然后问了我 handler,原理,源码,looper 的 for 循环的理解,for 死循环为什么不会导致 anr?
reteofit 源码也是,讲完源码,就问我里面的动态代理,里面采用了什么设计模式,以及设计模式的理解?
binder 机制,MMap 原理,为什么要用 MMap
性能优化中内存泄露的理解,leakCanary 的原理
事件分发机制里,view 层的方法跟事件分发有关的是哪几个,做什么功能,举例滑动冲突的解决思想
自定义 view 绘制流程,问完,就是问 measure 具体的绘制,onlayout 的实现是怎么放子 view 的
网络 tcp/IP 协议,Socket 通信原理,socket 复用机制底层实现原理
然后还有 Java 语言方面的
线程的创建有几种,是 sleep 跟 wait 的区别,然后就是 wait 同步锁的原理,notify 怎么打开的?多线程的通信进程间的通信
? 反射原理
? 类加载机制
? arrayList 底层
? HashMap 原理与冲突解决办法
? 算法题:两个非常大的数(long 表达不了)相加,现场实现;
我依稀的只记得上面这些了,这么多问题,我用了大概 1 个小时完成了,60% 只回答了一些表面的东西,底层的一概不知,不知道我当时怎么能忽悠 1 个小时的,反正结果就是没有结果了,难受啊。。。
评论