Android开发经验谈

情场失意,事业得意——致曾经哪个看不起我的女孩!逆袭字节跳动月薪

2020-10-19  本文已影响0人  进阶程序员007

前言

最近我兄弟王硕很苦恼,他的女朋友和他分手了。他工作了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 】中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

自行下载直达领取链接:【https://links.jianshu.com/go?to=https%3A%2F%2Fjq.qq.com%2F%3F_wv%3D1027%26k%3DBRZhpPkt
上一篇下一篇

猜你喜欢

热点阅读