农民工看完都会了!为了跳槽强刷1000道Android真题,年薪超过80万! – 作者:AA欢喜编程

咸鱼翻身不断上演

2018年5月份,北京,在所谓的互联网寒冬里,一个普通二本的学生,在小公司工作一年后,跳槽拿到了百度的offer,月薪从9k变为17k,涨薪幅度接近100%。

2018年底,上海,一个只有高中学历的同学,通过培训加入了IT行业,刚开始他的月薪只有6k,一年后,他的月薪变为了16k,涨幅接近167%。

2019年3月,北京,一个xx科技学院毕业的的普通二本,在小公司跌跌撞撞半年后,今年年初突然开挂,成功拿到了百度、小米、网易和头条的offer,最终他选择了多金的头条,拿到了近30k的月薪。

2020年初,深圳,一个物理专业毕业的研究生,在工作短短两年后,拿到了年薪50万的offer,现在已经是高级工程师了。

像这样的例子还有很多,无法一一列举,可见,没有名校学历和耀眼的光环,照样可以进入大厂拿高薪,只是很多人没有领悟要领而已。

打铁还需自身硬

其实,对于学历普通也没有耀眼光环的人来说,进大厂就靠一条,那就是:技术实力。但是很多人在小厂待习惯了,总是用小厂的标准来衡量大厂的要求,屡次面试受挫,于是得出了一个结论:面试造飞机,入职拧螺丝钉。

但事实上,大厂的平台更大,用户量也更多,自然技术要求也更高,不能完全用拧螺丝钉来形容。就算大厂做的也是普通的事情,但是很多时候,大厂对稳定性、执行效率和崩溃率的极致追求,都是在小厂无法体会的。

我们知道,一件看似简单的事情,如果要做到80分,那轻而易举;如果要做到95分以上,那就非常困难了;而如果要做到99分以上,那就难如登天了。在大厂很多时候都要把事情做到95分甚至更高,这种追求极致的过程很有技术含量,大家好理解吗?

如何进入大厂,我总结下来就是:

  • 脱离小厂思维,按照大厂的技术标准来要求自己

  • 整理核心技能树

  • 潜心修炼一年

了解我的读者都知道,我待过很多大厂,腾讯百度滴滴我都待过,而且我的技术级别还不低,好几年前我就是技术专家了,我很清楚大厂的用人标准和技术要求。

一、图片

1、图片库对比 2、LRUCache原理 3、图片加载原理 4、自己去实现图片库,怎么做? 5、Glide源码解析 6、Glide使用什么缓存? 7、Glide内存缓存如何控制大小?

二、网络和安全机制

1.网络框架对比和源码分析 2.自己去设计网络请求框架,怎么做? 3.网络请求缓存处理,okhttp如何处理网络缓存的 4.从网络加载一个10M的图片,说下注意事项 5.TCP的3次握手和四次挥手 6.TCP与UDP的区别 7.TCP与UDP的应用 8.HTTP协议 9.HTTP1.0与2.0的区别 10.HTTP报文结构 11.HTTP与HTTPS的区别以及如何实现安全性 12.如何验证证书的合法性? 13.https中哪里用了对称加密,哪里用了非对称加密,对加密算法(如RSA)等是否有了解? 14.client如何确定自己发送的消息被server收到? 15.谈谈你对WebSocket的理解 16.WebSocket与socket的区别 17.谈谈你对安卓签名的理解。 18.请解释安卓为啥要加签名机制? 19.视频加密传输 20.App 是如何沙箱化,为什么要这么做? 21.权限管理系统(底层的权限是如何进行 grant 的)?

三、数据库

1.Sqlite升级,增加字段的语句 2.数据库框架对比和源码分析 3.数据库的优化 4.数据库数据迁移问题

四、插件化、模块化、组件化、热修复、增量更新、Gradle

1.对热修复和插件化的理解 2.插件化原理分析 3.模块化实现(好处,原因) 4.热修复、插件化 5.项目组件化的理解 6.描述清点击 Android Studio 的 build 按钮后发生了什么

五、架构设计和设计模式

1.谈谈你对Android设计模式的理解 2.MVC MVP MVVM原理和区别 3.你所知道的设计模式有哪些? 4.项目中常用的设计模式 5.手写生产者/消费者模式 6.写出观察者模式的代码 7.适配器模式,装饰者模式,外观模式的异同? 8.用到的一些开源框架,介绍一个看过源码的,内部实现过程。 9.谈谈对RxJava的理解 10.Rxjava发送事件步骤 11.RxJava的作用,与平时使用的异步操作来比的优缺点 12.说说EventBus作用,实现方式,代替EventBus的方式 13.从0设计一款App整体架构,如何去做? 14.说一款你认为当前比较火的应用并设计(比如:直播APP,P2P金融,小视频等) 15.谈谈对java状态机理解 16.Fragment如果在Adapter中使用应该如何解耦? 17.Binder机制及底层实现 18.对于应用更新这块是如何做的?(解答:灰度,强制更新,分区域更新)? 19.实现一个Json解析器(可以通过正则提高速度) 20.统计启动时长,标准

最后

作为一个有进取心的 Android 开发者,应该拥有自己的技术栈和规划非常重要,技术栈确保你有足够的市场竞争力,从而形成护城河;技术规划则可以给你一个明确的学习目标。卸载抖音、微博、斗鱼、游戏吧,做好规划,共勉!

如果你苦于没有好的时间管理方法,可以点击我的GitHub。这个是我熟悉的一个大佬的工作学习方法实践,推荐给大家

来源:freebuf.com 2020-12-10 16:12:35 by: AA欢喜编程

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论