前言
最近我兄弟王硕很苦恼,他的女朋友和他分手了。他工作了5年工资还是1.5K,身上还有房贷车贷, 交往了3年的女友前几天向他提出了分手,原因大家都懂,感情上两个人呆在一起时间久了越来越无聊了。经济上,看不到希望这么多年,没有一点改变,既没有未来规划,得过且过,也没有提升自己的意思,于是交往了3年都黄了!
不过这次分手给我兄弟当头一棒,下定决心改变自己,要让那个女孩子后悔!
1.5K的逆袭之路
他离开了他工作5年的工作舒适区,在家里应该是闭门不出3个月,准备去面试字节跳动(志气还挺大),作为朋友肯定会帮他(内推字节),PS:不过要是什么时候能给我一个女朋友就更好了!
面试前准备
第1步:你要知道你是谁
参加面试前,要给自己的角色和职位做一个定位。其中你最应该关注的是你自己的岗位职责还有技能是什么,你在这个领域沉淀了什么。只有详细地分析清楚了这些,之后才能在面试中更加自信地表现你自己。
第2步:你要知道你想要什么
你的目标岗位是什么?基于你之前的工作经历和行业趋势,给自己制定一个至少3年的规划,其中包括业务、技术上的提升计划。还有综合能力的提升规划,比如协调能力、沟通能力、执行能力等。
这个规划不是执行很久都一成不变,而是根据实际情况不断微调,以适应最近情况,让自己的职业规划可以衔接下去。
第3步:回顾和总结你有什么
这里面包括你的基本功,你擅长的开发技能,之前的技能等都要做梳理。
首先,一定要用自己使用比较多的开发语言作为核心开发语言。一般核心开发语言不超过两个,必须精通才行,深入到原理层。
其次,把自己所在的公司,参与过的核心项目都梳理清楚。把跟自己求职岗位相关的公司经历和项目重点做一次回顾,尤其是业务细节非常重要。
第4步:了解企业想要什么样的人
可以通过研究岗位职责、职位描述、浏览公司网站、app产品等方式判断产品的用户量,可能用到的技术,从而做相应的准备。
第5步:了解对方公司和岗位怎么样
全面深入地了解对方的公司,包括公司业务发展历程、产品愿景、迭代周期、团队风格、技术氛围、公司目前遇到的问题和挑战等。
如果准备充足,面试官是可以感受到的,这也会给面试官留下很好的印象。
毕竟跳槽是双向选择,你需要对去面试的公司有充分的了解,在面试中可以提出一些比较有深度的问题,把所有疑惑都在面试中解决掉 。
第6步:你要知道你求职的岗位面试流程是什么
一般公司都有3-4轮面试。
一面技术面试,考察技术基本功。
二面业务面试或者项目面试,通过不同项目考核你的技术广度和实践能力。这种提问会根据你的简历做结构化面试,比如请你梳理你之前做过的项目,这个要遵循STAR法则:Situation ,Task, Action, Result。从项目背景、任务、采取了什么行动、最终结果如何去回顾,梳理自己的业务亮点。分析一下现在回想起来,当时是不是可以有更好的解决方案。
三面是综合面,会考察技术以外的其他能力,比如软性技能:执行、沟通、协调等。
最后一面是HR面,会比较关注你的离职原因、求职动机、薪资期望,这些要提前想清楚,避免回答的时候逻辑混乱。
第7步:你要准备几个问题去问面试官
面试到最后,面试官通常会问:你有什么问题想问我们的吗?
这时候不提问题是不可取的,会给人一种不够积极的印象。其实,面试官让你提问是有目的的:一方面,他可能想知道哪些问题是你最关心和重视的 ;另一方面,给你一个机会提问,可以突显你的专业和态度。问得好的话,有加分的可能。
关于具体可以问哪些问题,下面总结了几个还不错的问题供大家参考:
- 这个职位在公司的具体职责是什么,目前最紧要的任务是什么?
- 公司对我面试的这个岗位的定位是什么,最希望这个人达成的工作指标有哪些?
- 如果我有幸加入,公司您希望我三个月完成哪些工作?
- 公司希望通过这个职位实现的长期目标是什么?
- 公司的价值观和愿景是什么?
- 公司未来一年的发展计划和团队规划?
- 公司是一群什么样的小伙伴,这个岗位所在的的团队是什么氛围?
- 通过刚才和我沟通,您对我的评价是什么,您觉得我的优势和劣势是什么?
面试与面经(大大小小面试参加了20多场)
跟谁学
1.项目中的Webview与native通信
2.项目中对WebView的功能进行了怎样的增强
3.synchronized跟ReentranLock有什么区别?
4.synchronized与ReentranLock发生异常的场景.
5.算法,删除数组中的重复元素
6.手写双检查单例模式,各个步骤有什么区别
7.Activity生命周期
快手
1.string,equals,==有什么区别
2.AsyncTask内存泄露
3.dispatchTouchEvent,onInterceptEvent,onTouchEvent顺序,关系
4.onMeasure,onLayout,onDraw关系
5.算法题,反转数组
6.算法题,链表求和
7.说说你对协程的理解
8.协程怎么取消
9.说说MVP与MVVM的区别
快手二面
1.算法题,二叉树的最大深度
2.如果android端和IOS端调一个接口,一个通了一个没通,你会如何解决
3.如果android端和IOS端调一个接口,一个比较慢,一个比较快,有什么思路
4.ARouter的原理是什么?如果不用ARouter,你会怎么去解藕。接口?设计接口有什么需要注意的?
5.h5与native交互做过什么工作?
6.登陆功能,登陆成功然后跳转到一个新Activity,中间涉及什么?从事件传递,网络请求,AMS交互角度分析
7.AMS交互调用生命周期是顺序的吗?
8.binder进程间通信可以调用原进程方法吗?
9.mvp与mvvm有什么区别?
10.token放在本地如何保存?如何加密比较好?
快手三面
1.viewModel的原理,为什么可以在Activity销毁后保存数据
2.mvvm双向数据绑定的原理是怎样的?ViewModel
3.说说你们项目中的难点是怎样的?
4.伪代码实现一个长按事件
5.实现一个下载功能的接口
字节跳动
1.你们的项目中有什么难点?
2.你们项目的稳定性如何?有做过什么稳定性优化的工作?
3.WebView性能优化做过什么工作?
4.AIDL in out oneWay代表什么意思?
5.线程池了解多少?拒绝策略有几种,为什么有newSingleThread
6.跨进程通信了解多少?管道了解吗?
7.协程介绍一下,讲一个协程的scope与context,协程的+号代表什么
8.Handler休眠是怎样的?epoll的原理是什么?如何实现延时消息,如果移除一个延时消息会解除休眠吗?
9.算法斐波那契台阶
10.手写生产者消息者模型
11.IdleHandler应用场景
字节跳动2面
1.自定义圆角图片
2.自定义LinearLayout,怎么测量子View宽高
3.setFactory和setFactory2有什么区别?
4.插件化换肤方案
5.插件化的原理,startActivity hook了哪个方法
6.手势操作ActionCancel后怎么取消
7.怎么优化xml inflate的时间,涉及IO与反射。了解compose吗?
8.算法题:二叉树的每一层最左边节点
9.RecyclerView 缓存结构,RecyclerView预取,RecyclerView局部刷新
11.setOnTouchListener,onClickeListener和onTouchEvent的关系
尾声
最后我朋友拿到了字节Offer,也算是情场失意,事业得意吧!我觉得吧,程序员还是靠得住的,至少出轨的概率要低很多,他总不可能和电脑吧。工资高、专一、口才好的男人不是没有,但能碰到的概率也低呀,其实程序员就不错。我希望大家也能多看看我们这个群体!真的很缺女朋友呀!
看懂点赞!
附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)
本文在开源项目:【GitHub 】中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
网友评论