这是我去年的经历,觉得还挺励志的,希望能帮助到一些正在迷茫的同学。
是去美团送外卖了?有配电瓶车吗?
答:亲,有配的哦,开起来贼顺滑。啊呸,说啥了,咱进的是正儿八经的技术部门。
当时刚过完年回到上海,此时的我已经毕业两年半了,和大多数咸鱼一样,上班就是CRUD,下班就是看剧、玩游戏(英雄联盟、手游都玩)。
当时我的工资一个月到手就5k出头,但是因为在甲方驻场开发,加上差补餐补有接近8k,还包住。每到周末几个小伙伴一起打牌、一起搞情、一起洗脚,日子过得很是滋润,当时其实挺满足的。
让我萌生想跳槽的根本原因已经忘了,想了很久没想起来,可能是受其他小伙伴的影响吧,有了这种想法后就开始准备起来了。
刚开始只是每天下班后躺在床上看别人的博客学习一些东西,一般是22:30看一小时左右,当时最先看的是线程、四大组件、Java基础相关知识,等等这类比较基础的知识。
想跳槽的想法有了之后便一发不可收拾,如果说刚开始每天晚上看1小时只是在试探,那么半个月之后我便全力投入面试准备了。
当时工作上的事情不是很多,每天花个两三个小时基本就能应付了,所以其余的上班时间我都拿来准备面试了。准备面试的方式主要通过看别人的博客、看源码,内容主要是 Android 核心知识和 Android 面试题。
从二月初准备到了三月底,这期间我主要干了以下几件事:
1.看面试题
这期间我看了很多套 Android 面试题,还记得的有:
①Android Framework 高频面试题总结
②字节跳动高频面试真题解析
③美团 Android 面试真题解析
④Android社招高频面试题
........
很重要的一点,看题要带着理解、带着思考去看,将题目与实际开发的内容结合去理解,这样很容易就记下来了,死记硬背效果不好。还有看面试题不能只看一次,需要反复看,就像你高中准备考试那样。看完这些面试题后,我能很自信的在我简历写上了:
对于Framework这听着就高大上的东西,当时我能做的就是带着理解把下面这几道题目背的滚瓜烂熟,在此之前我压根就了解Framework。
对于背面试题,我只能说两个字。
2.源码初探
在看完上面的面试题后,已经能应付很多问题了,但是好像还缺了点什么?没错,就是能让你装逼的源码。当时我选择了常用集合的源码,基本都是边看源码、边对着别人的博文跟着一行行的学。在学习 Android 集合源码时,对我很有帮助是这份《Android源码解析》:
主要内含微信 MMKV 源码、AsyncTask 源码、Volley 源码、Retrofit源码、OkHttp 源码等等。
看完这些源码后,我把一些我掌握的比较好的写到简历里去了,因为这是当时我觉得自己为数不多的亮点了。
这些源码的准备也基本全用上了,面试中遇到过这些相关的问题:
后面被问多了,就会加一些自己的思考。
自己深挖过(例如看过源码)的知识点被问到时,一定要抓住机会表现,让面试官感受到自己的深度,这些都是加分的点。
3.项目准备
除了技术知识外,项目也是必不可少的一环,但是不需要准备很多,只需要挑2-3个你最牛逼的需求点准备就行了。
第2其实就是来凑数的,打扰了。
但是项目中遇到难题时千万不要总想着退缩,这些解决难题的过程、解决的难题,都会让你快速成长和受用终身。
这些内容就是我开始面试前的全部准备了,从2月初到3月底,差不多准备了1个半月,当时的简历是这么写的。现在看起来有点 low,但是当时已经是我的极限了。
准备好了之后就是疯狂投递简历了,各种知名的招聘网站都要去投,也没有什么挑选的说法(唯一可能就是尽量选互联网公司,还有就是像阿里腾讯这种大公司,咱是不敢投的),只要是招2年 Android 的投就完事了。只要能给个面试机会,咱就得谢天谢地了。
从3月底面试到了4月底,总共面了20来个公司。基本是每天2个面试,上午下午各一个。早上室友还没起床,我就已经出门了。早餐都是在三林东地铁站附近的巴比馒头解决的;午餐就在面试公司的附近找家麦当劳解决。那段时间每天在路上奔波的时间至少四五个小时,但是完全不觉得累,整个人对未来充满了希望。
也多亏了这一个月的面试时光,我走过了上海的很多地方:漕河泾、张江高科、唐镇、人民广场、陆家嘴、中山公园,之前在上海呆了2年去过的地方还没我面试期间去的多。
面试有时候就跟碰运气一样,运气好点,问的全是会的,运气差点,两句话就被轰出来。
这里就只放部分公司的面试题了,有些实在是不记得了。。。
小公司1
小公司2
天天拍车
浦发信用卡
美团
开始面试完拿到了几个offer,但是拒绝了,选择了面试最后两家公司:浦发和美团,我不是一个相信运气的人,但是这次幸运女神确实眷顾了我,让我抓住了最后一根稻草。
进美团并不是一帆风顺的,拿到面试资格都费了好大劲,当时自己的简历太普通了,大概率入不了美团hr的法眼,但是我还是厚着脸皮投了很多部门,有些部门还投了很多次。终于,在我的死缠烂打下,有一位善良的hr给了我一次机会,这是我进美团的第一位贵人。
就这样,我不可思议的拿到了美团的offer,薪水也超过了我的预期。
经过这几年的“摸爬滚打”,我发现进大厂确实有一些诀窍,对于和我一样背景一般的同学,只要你抓住了诀窍,进大厂不是梦。
1)一定要提前准备,至少准备个一个月,网上的面试题多看看,对于那些高频题目,带着理解去学习,实在不能理解的就背下来,大家高考的时候不都是背过来的。
2)大厂通常有很多部门,每个部门的hc数和招人标准都不一样,即便是同个部门,如果hr不同,标准肯定也不一样,重复投简历可以增大我们拿到面试机会的概率。同理,重复面试不同的部门,也可以增大我们进大厂的概率。
3)大厂经常会布局新业务,新业务需要快速启动入场,hc通常会有很多,因此招人的标准会稍微降低,这个时候是个绝佳的机会。我当时进的就是个新的业务部门。
有时候,选择比努力更加重要,机遇比奋斗更加重要。但是,机会只留给有准备的人。我们只有时刻准备着,才能在机会到来的时候,去抓住它。
我很幸运的是,当我准备好的时候,机会来了。从此以后,我变成了一个相信运气的人。
我相信,越努力,越幸运。
这里给大家分享一下我的面试复习路线,有需要的朋友可以参考一下:
1、看视频进行系统学习
前几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,唯一的缺点就是免费的容易过时。
2、进行系统梳理知识,提升储备
客户端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
系统学习方向:
架构师筑基必备技能:深入Java泛型+注解深入浅出+并发编程+数据传输与序列化+Java虚拟机原理+反射与类加载+动态代理+高效IO
Android高级UI与FrameWork源码:高级UI晋升+Framework内核解析+Android组件内核+数据持久化
360°全方面性能调优:设计思想与代码质量优化+程序性能优化+开发效率优化
解读开源框架设计思想:热修复设计+插件化框架解读+组件化框架设计+图片加载框架+网络访问框架设计+RXJava响应式编程框架设计+IOC架构设计+Android架构组件Jetpack
NDK模块开发:NDK基础知识体系+底层图片处理+音视频开发
微信小程序:小程序介绍+UI开发+API操作+微信对接
Hybrid 开发与Flutter:Html5项目实战+Flutter进阶
知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结。
3、读源码,看实战笔记,学习大神思路
“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。
这个源码的资料我在上面已经分享展示出来了,这里就不再放图片了。
4、面试前夕,刷题冲刺
面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。
以上内容均免费分享给大家,需要完整版的朋友,点这里可以看到全部内容。