一面之缘也不能放弃->一年Android社招经验
Posted 涂程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一面之缘也不能放弃->一年Android社招经验相关的知识,希望对你有一定的参考价值。
作者:姓chen的大键哥
今天不是来继续讲蓝厂故事的,讲的是近一段时间的跳槽故事。话不多说直接上正文
战绩
先上战绩,仔细看看会发现,多数公司只有一面之缘,有的甚至连见都不愿意见一面(所以别说我是标题党了),建议大家在找工作的时候自己做个记录,每次面试之后进行反思总结,对于面试过程中发现问题,及时弥补。
时间顺序 | 公司 | 岗位 | 状态 | 分析原因 |
---|---|---|---|---|
1 | 快手 | android架构开发工程师-【直播】 | 一面挂 | 表达能力欠佳;知识点不够深入;知识面广度需提高 |
2 | Shopee | Android开发工程师 | 简历挂 | 简历里关于工作经历描述有问题 |
3 | 小满科技 | Android开发工程师 | 简历挂 | 大概率不敢要(笑) |
4 | 腾讯音乐 (QQ音乐商业化) | Android开发工程师 | 一面挂 | 方向不符合,对工作经历表述有问题,HR的锅 |
5 | 知乎 | Android开发工程师 | 简历挂 | 无 |
6 | 京东 | Android开发工程师 | 简历挂 | 无 |
7 | 随手记 | Android开发工程师 | 简历挂 | 投递之后无反馈,不确定是否在招人 |
8 | 快手 | Android开发工程师-RN方向 | 简历挂 | 被卡简历了 |
9 | Shopee | Android开发工程师-数字银行 | 一面挂 | 知识点遗漏,表达能力太弱(硬伤) |
10 | 猿辅导 | Android开发工程师 | 一面挂 | 最后的 算法 没做出来 |
11 | 字节跳动 | Android开发工程师-国际化直播 | 一面挂 | 问了好多简历之外的东西,比如性能优化,完全答不上来 |
12 | 富途 | Android开发工程师 | 一面挂 | 表述问题 |
13 | 腾讯音乐 (全民K歌) | 互动视频产品Android高级工程师 | 五面(offer) | 都拿到offer了还说啥 |
14 | b站 | Android开发工程师 | 三面挂 | 在想要一份什么样的工作的问题上的表述有问题 |
15 | 货拉拉 | Android开发工程师 | 一面挂 | 不知道要怎么说(简历没啥可问?),估计又是HR的锅 |
跳槽经验总结
非技术方向准备
1、离职原因:
马云说过,员工离职无非两点:钱给少了、心委屈了。其实还有一点:没成长(成长有限)
明确自己的离职原因很重要,一方面面试的时候面试官会问,另一方面你提离职的时候也会问,还有就是你的离职理由是你跳槽的动力。当有跳槽的想法的时候先想一个问题:你现在有什么,你想要什么,为什么要(有什么好处,和现在对比呢),明确这个问题的答案再考虑跳槽。
面试的时候,面试官问你为什么跳槽,切忌不要讲现东家的坏话(即使它真的不太行),尽量往个人发展这个方向上靠。当然面试官有另外一种问法:你想要一份什么样的工作,其实答案是一样的,只不过换了一种描述方式罢了。
提离职的时候,上级问你为什么要走,切忌不要讲坏话(即使它真的不太行),可以以个人发展和实际工作感受展开讲讲,当然有家庭因素的也可以讲。大家有缘一起共事,有的时候也要好聚好散,撕破脸皮对彼此都不好。
给后辈一些经验:对于刚毕业不久的人,薪资不要看的太重,高薪不是人人都能拿,背后有相应的代价(当然如果现在的工作回报/投入比太低,那也可作为你跳槽的理由,但不要展现出来)
2、面试讲稿准备:
面试的时候,除了八股文 和算法 需要准备,其他方面的描述也要准备,因为其他方面的描述可能会成为否决你的关键因素(面阿B的时候就是),这些描述看着简单,但深藏陷阱,一个不留神会让你前期的努力白费了。
总结一下,需要准备的描述有:
- 自我介绍(必备)
- 离职原因(必备)
- 想要一份什么样的工作(离职原因的另一种说法)(必备)
- 工作经历介绍(建议准备,可能会问)
- 项目介绍(必备)
- 收获(看个人,建议也准备一下,有些公司会问)
- 转行原因(针对那些转行的同学必备)
对于上述的内容,建议先思考然后再写下来,没事就看两眼,读一读,在不断面试过程中进行修改完善,到最后你就得心应手了。
3、简历撰写和投递:
简历撰写这个,我是吃了不少亏,所以在这要重点讲一下。
简历无非介绍你个人情况:个人基本信息 ,联系方式 ,毕业学校 ,工作经历 ,专业技能 ,项目经历 等等。要记住,简历是要展示你个人实力的,那些与岗位无关的内容就没必要写进去了,或者直接一笔带过。
个人基本信息,联系方式,毕业学校这几个如实填写就好了,别造假(造假啥结果,你懂的)
专业技能这里,一定要写你会的,你不会的,或者只是了解的就不要写进去了,以免被问到答不上来导致面试官怀疑你的能力;写的时候也不要写的太简单,比如直接写熟悉Java,熟悉Android等等,这样面试官提问就会自由发挥了,应该带有引导性的来写,例如:熟悉Java常用的数据结构,对其原理有一定了解。这么写一方面让你在复习的时候方向明确,另一方面就是面试的时候能避免面试官随机提问问到你不熟的领域(当然还是要看面试官,有的面试官不按套路你就没辙了)
工作经历和项目经历两块内容可以合并起来写,当然也可以拆开
1.拆开:拆开来写的话,在工作经历这里就大概写写具体负责什么工作,有什么产出,利用STAR法则写更好。重点是项目经验这里,需要写明你具体负责了哪些功能开发or优化,用的什么技术(对于这些技术你也要做相应的功课,必问),带来了什么效果之类的;这部分不用写很多,可以先写下项目介绍的草稿,然后修改修改之后从中提取关键的信息写到简历里。
2.合并:如果合并来写,无非就是介绍工作同时把负责的项目写进去罢了,写法类似拆开,这里就不再赘述。
3.对于一些工作经历和意向岗位不匹配的同学(即转行),建议将工作经历和项目经历拆开来写,工作经历一笔带过,重点写项目经历,项目一定是要匹配意向岗位的,要突出自己的思考以及技术能力
写完简历之后给,朋友或者认识的前辈看看,让他们给你点建议,多找几个人给你看看,这样才能万无一失
简历投递顺序,可以先从体量较小的公司下手,看一下外面对你的认可程度同时锻炼面试能力(你要是很自信,那直接投心仪公司也不是不行),面几家之后开始投规模较大的公司,把意向公司放到后面投递,这样稳扎稳打才能取胜(我是大厂和小厂一起投递了,结果小厂没反馈,大厂先给了面试,前期面试吃了不少亏,如果没有很自信和硬实力,还是由小到大来投递)
4、心态准备:
既然你已经决心要跳槽了,那么你就要坚定自己的意志,不能受外界的影响,大键哥面试初期处处碰壁,甚至被面试官嘲讽,一度怀疑是不是自己不行导致找不到工作,甚至想放弃,但后来还是坚持下来了,并收到了TME的offer。
总结一下,面试其实是个双向的过程,这一家看不上你,那就下一家,总会遇到合适的,千万不要别人一句话就全盘否认自己。
Tips:
面试过程中会遇到形形***的面试官,面试过程要保持一颗平常心,而且不要想这是面试,想着这是一场交流会,通过交流沟通彼此了解。
面试官会给你建议,会指出你的问题,对于这些问题要虚心接受,知道怎么改过。
当然有些面试官就是来嘲讽你的,莫慌,不管就行了,因为即使你后面入职了,面试官会是你的同事or上级,你觉得在这种工作环境下还能顺心吗(虽然我是没遇到这样的面试官)
5、其他:
每次面试都做个记录和总结,然后调整心态继续下一场面试,毕竟知己知彼,才能百战百胜嘛
技术方向准备
技术方向的准备就看具体岗位了,Android这边面试常问的分为八股文+ 算法 + 项目
八股文: 我这边借用网上的一折帖子: “一年经验Android社招经验贴—字节、腾讯、美团offer”,根据这里面提到的技术相关问题针对性复习即可
算法:剑指offer是一定要的,这边有剑指offer,刷就完事了;如果觉得不够,那可以加上LeetCode。大部分公司问的都不会太难,基本就是剑指offer变形甚至原题(客户端是这样,后端同学建议多刷一下LeetCode)
项目: 对于项目,技术上和业务上都要会,比如做一个需求,这个需求的背景是啥,为啥要做,你是怎么做的,为什么这么做,技术细节如何balabala。当你在对项目复盘的时候,一定不要只盯着你做的那一部分,还要把自己做的部分横纵拓展一下,这样才能做到无懈可击。当然优秀的表达能力也很重要,大键哥这种嘴笨的人就挺吃亏的,所以我就写下来,每天看一看,时间久了就知道怎么讲了。建议都写一下,结合实际和自身进行调整。
面经
所有面经放于此,有需要自行查看,结合简历作为参考
快手: (第一次一面挂,第二次简历挂)
一面:
1.自我介绍
2.工作情况介绍,工作最大收获是什么
3.了解Framework吗,讲一下
4.了解App多一些还是Framework多一些(当然是app多一些)
5.Activity生命周期
6.Dialog会让Activity调用生命周期方法吗
7.Activity的FLAG作用,拿NEW_TASK这个举例
8.onDestory()一定会执行吗?onStop()一定会执行吗?
9.view绘制流程(不会,简历里也没写,他还问了)
10.Handle的postDelayed()方法是怎么实现的,内存屏障了解吗,源码看过吗
11.ArrayList内部是怎么实现的
12.LinkedHashMap内部实现
13.CurrentHashMap讲一下(讲了1.7和1.8实现),1.7还做了哪些优化,讲到了volatile,可见性?Java内存模型
14.算法:包含min函数的最小栈,指讲了思路,没让写
15.算法:丢鸡蛋问题(Google面试题),讲了思路,没让写(限制操作20次答出来了,限制操作15次想不到)
16.算法:只遍历一次删除倒数第n个节点,手撕(快慢指针)
腾讯音乐-QQ音乐商业化: (一面挂)
一面:
1、自我介绍
2、进程和线程的区别
3、两个线程同时对一个变量0进行++操作,最终结果如何
4、TCP、UDP区别
5、如何排查网络请求问题
6、算法:一个数字中包含4,将这个数字拆成两个不带4的值(讲思路,讲复杂度)
7、介绍工作(致命,只讲了政企项目,没讲MDM,强调MDM之类的开发项,弱化政企项目)
8、提问
腾讯音乐-互动视频产品: (offer)
一面:
1、自我介绍
2、M***3、TCP、UPD之上的应用层协议
4、进程状态
5、CPU调度算法
6、虚拟内存
7、HTTP状态码
8、项目
9、HashMap
10、voliate和synchronized
11、算法:对一个乱序数组进行去重
12、反问二面:
1、项目介绍,遇到的困难
2、AIDL原理
3、线程之间通信
4、内存泄露的种类
5、生产者消费者问题
6、线程池参数
7、GC原理
8、频繁GC原因以及会出现的问题
9、线程同步的方式
10、算法:随机打乱一个数组
11、反问三面:
1、自我介绍
2、项目介绍,难点
3、Activity启动流程
4、Service生命周期
5、Activity和Service通信
6、ContentProvider原理
7、Handler内存泄露的原因以及解决方案
8、MVC和MVP、优点和缺点四面:
1、自我介绍
2、TCP UDP
3、设计一个线程池
4、如何保证UDP传输的数据是完整的
5、内存泄露以及避免措施
6、死锁
7、Android消息机制
8、算法:1000个数找重复 进阶:海量数据找前100个大的数五面(hr):
1、工作一年的收获
2、为什么在看机会
3、反问
4、意向薪资
Shopee:(第一次简历挂,第二次一面挂)
一面:
1 自我介绍
2 Activity生命周期
3 横竖屏切换生命周期变化
4 聊为什么转Android
5 EventBus原理(被强行打断)
6 提问
猿辅导:(一面挂)
一面:
1 自我介绍
2 mvc mvp mvvm
3 Activity A启动Activity B生命周期变化,启动模式加上呢?
4 Handler可能会导致内存泄露,为什么;从cgRoot讲一下;怎么避免这种情况
6 ViewGroup布局子view,如何保证每一行不超过父view宽度
5 Https通信
6 AIDL原理,解包
7 懒汉式单例
8 算法:给定一个数组,针对每一个元素,找他右侧第一比他大的元素,放在一个数组中返回。
字节跳动:(一面挂)
一面:
1、自我介绍
2、算法已知四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0(四数相加)
3、线程安全
4、synchronized底层原理,做了什么优化
5、对象头有几种(忘得一干二净)
6、volatile作用、原理、和synchronized的区别
7、线程安全的集合类(CopyOnWriteArrayList、Vector、HashTable、ConcurrentHashMap)
8、HashTable、ConcurrentHashMap区别和优缺点
9、sleep()和wait()区别
10、三个线程,如何顺序打印A B C
11、怎么设计线程池
12、idleHandler了解嘛
13、app启动流程
14、app冷启动优化
15、性能优化工具
16、postDelayed()怎么实现
17、http1.1和http2.0的区别
18、处理多线程问题要考虑什么
19、反问
(大概这些,有些忘了)
富途:(一面挂)
一面:
1、自我介绍
2、HashMap原理
3、线程安全
4、线程安全的HashMap,原理
5、网络分层
6、AsyncTask原理
7、事件分发机制
8、MVC、M***9、算法:随机打乱数组
10:逻辑:25人找到跑步最快的3人,5条跑道
11、提问
B站:(三面挂)
一面:
1、自我介绍
2、voliate
3、synchronized
4、ConcurrentHashMap
5、HashMap LinkedHashMap
6、线程池
7、项目
8、M***9、设计模式,责任链模式
10、JVM内存分配
11、反问二面:
1、工作内容介绍
2、意向
3、直播相关业务
4、适配的问题
5、项目问题
6、反问三面:
1、意向
2、一些杂七杂八的问题
3、你想要一份什么样的工作(和为什么跳槽同理)
货拉拉:(一面挂)
一面:
1、自我介绍
2、项目介绍
3、内存泄***r>4、线程状态
5、场景题 四个线程请求四个服务器,最快的一个先返回,如何终止其他三个
6、遇到的困难,怎么解决
7、反问
我的面经在这就讲完了,虽然有成功的也有失败,但我觉得自己的每次面试都要好好地整理记录一下,方便自己往后复习,争取不要在同一个知识点继续翻车。每次的面试不仅仅单纯只是面试,还是在了解市场的行情,也是检测自己技术和市场需求是否匹配,自己的技术有没有落后。
最后
在这里小编分享一份面试之前在网上查找收集的往年常见面试题及学习复习滋尿,整理成了一些文档。希望能够对大家有所帮助,在面试中能顺利通过。
如有需要请去我 GitHub 中查阅,望这些干货能够帮助到大家!!!
以上是关于一面之缘也不能放弃->一年Android社招经验的主要内容,如果未能解决你的问题,请参考以下文章