大佬你咋学的Android,为啥我们不一样?

又是新的一周,之前很多人都问我如何学习的,那今天就给大家分享一些大佬的学习思路以及我自己总结,我觉得轻松又有一定价值的内容。

1. 提问:大佬咋学的Android?为啥我们不一样?

上下班的路上坐地铁的时候,多看一些电子书,充分利用空余时间。

还有就是,帮别人解决问题,也能学习到不少东西。可能某个知识点你平时没有注意到,但是在帮忙解决问题的过程中,刚好碰到了。

剩下的就是多看代码,多思考,多练习。

学完一个知识点之后,最好自己写代码验证一下,这样能加深理解,还有增强记忆。

看SDK的代码,也能学到很多东西。比如平时在写代码的时候,调用了一个SDK的方法,那么可以随手Ctrl点击进去,看看它里面是怎么实现的,还有看看它的文档注释,有没有值得注意到地方,这样能加深自己对这个类的理解。养成了这个习惯之后,进步很会很快的。

2. 提问:我是一名工作多年Android,很想进大厂。做了很多项目,也是全部死掉的,本人也是个普通全日制的二本。如果想进大厂,面试的着重点和方向该从哪些出发?

1. 时机

想进大厂,最佳的时间就是3年左右工作经验的时候,3年以上,甚至5年以上,难度会大很多,为什么呢?因为有横向对比。

当然也不是没有机会,就是看能力。

2. 面试

面试,大多数情况下大厂面试官对一般的app没太大兴趣,所以很少会让你演示,这一点你不用太过于担心,遇到也别怪我呀,确实很少。

3. 再说面试准备

a. 算法要准备,几乎所有大厂都有考察算法,当然了,并不需要准备太难的,看看leetcode初中级即可。

b. 基本android上的原理要充分理解,事件分发,handler,自定义view,属性动画,刷新机制等等,这些答对了不加分,答错了凉的比较快。

c. 所有你简历上写到的第三方库的原理,定制,如何优化扩展。要么你不要写,写了就做好充分的准备。

例如你写了tinker,你不能只说我用过,挺好用的,打patch传到bugly就行。

你要做好准备,问你各种固化资源,activity占坑,dex diff,dexclassloader,以及为何要选择全量合成,N上兼容性问题…

d. 业务上的亮点,比如你做启动优化,做的比较极致,可以拿出来吹一波,一定要“极致”,百度都能搜到的,那可能不算。 可以参考我最近推送的启动优化文章,有说支付宝,头条相关方案的;也可以参考邵文之前的专栏内容。

类似的业务优化有很多:

h5页面打开速度,稳定性,包体积等等,还是要说一句,得说极致的方案,不是随便找个博客看看。

这些极致方案,自己如果没有操作过,可以参考一些大厂开源项目,例如稳定性滴滴booster。

e. 关于新技术,不会就直接明说暂时没有接触就好了,只要不是岗位要求,一般不至于因为这个因素淘汰。

f. 最后运气也很重要,提前确定投递的岗位严重缺人,缺人程度一定和招聘难度成反比,不管他承不承认。

3. 提问:近期打算换坑,无奈不知道现在简历该怎么写,比如好的模板,布局,内容等等,有哪位大佬能分享一下简历的书写格式规范之类的。

简历相关,分享两篇文章,这两篇完全可以满足了。

4. 分享:回答问题可以正向思考,如何低成本实现,以属性动画为例。

我非常喜欢问一个关于属性动画的问题,以下是模拟对话。

面试官: 网上有很多文章,说属性动画跟以前的动画的区别就是,属性动画把View移动到别的位置,依然能响应用户事件。

面试者: 对对对。

面试官:那你能说说为什么吗?

面试者: 因为它真的位置改变了。

面试官:这个位置改变指的是真的layout发生变化了么。

面试者: 嗯……是的(有些犹豫)。

面试官:那我们很多布局都是RelativeLayout,布局间相互有依赖,那岂不是属性动画移动一个控件,其他依赖布局都得跟着动。

面试者: 嗯…是这样的(很犹豫)

面试官:那这样性能好差呀,谁敢随便做动画。

面试者: 沉默

面试官: 好吧,我们换个思路,假设view没有真的layout发生变化。我们想“能够在view移动后能响应用户事件,你会怎么做?”

面试者: 没思路。

面试官:想想参数,我们有:

1. 用户点击时的x,y坐标。
2. view的自己所在的区域。
3. 相对变化的属性值,比如想左移动了100。

这个结合起来做不到吗?

面试者: 明白了,有这些参数完全可以。把用户触摸的x,y与view所在区域与变化属性值一起比较,肯定知道触摸在不在目标位置。

面试官: 对,所以想要能够目标位置响应用户事件,并不用动layout,成本太高。我们在事件分发那里加个判断就算出来了。

属性动画也是类似的原理。

面试者: 学到了,多谢~

关于面试的文章大家可以看看这几篇:

面试字节跳动Android研发岗,已拿到offer,这些知识点该放出来了
九月份参加OPPO和腾讯Android面试:技术一面+二面+三面+HR四面,我的面经总结!
掌握这个提升路径,你的Android进阶之路至少缩短5年

最后,我一个肯定「努力会有回报」的人,所以我平常给大家推荐的作者或者项目,都是实打实做了非常多分享的,能认识他们,我倍感荣幸。

这里推荐一个前辈分享的系统学习路线以及一些相关的学习资源,给大家之后的学习做一个参考,跟着大佬学习,走大佬走过的路,学大佬学过的技能。O(∩_∩)O哈哈~

Android进阶路线分析

Java语言进阶

  • 泛型与注解在Retrofit中的应用
  • 多线程与Java File IO操作应用实战
  • Rxjava原理分析
  • JVM与内存泄漏原理解析
  • ClassLioader与反射在Hook中应用
  • 动态代理机制在源码中的应用

高级UI与FrameWork

  • UI绘制原理
  • 动画原理
  • 事件响应机制
  • 屏幕适配
  • FrameWork源码解析
  • 相机适配

360°性能优化

  • 从事件
  • 从内存
  • 卡顿调优
  • APP保活
  • 内存优化
  • 高性能编程实战
  • OOM原理解析

NDK开发专题

  • C/C++基础
  • JINI编程基础
  • 图像处理与热修复应用
  • 音视频开发
  • OpenCV人工智能
  • OpenCL 图像绘制

前沿技术专题

  • 热修复/热更新
  • 组件化/插件化
  • RxJava深入研究
  • 图片与网络架构
  • Google I/O大会技术
  • Kotlin项目实操

微信小程序

  • 小程序架构介绍
  • UI界面开发
  • 高级API实操
  • 微信对接实战
  • 任务清单项目
  • 电影榜单项目

Flutter Hybrid开发

  • Dart语法
  • Flutter线程运行模型
  • Flutter与Native通信架构
  • Flutter内存调优
  • Flutter项目实战

对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!

这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司19年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

最后这里是关于我自己的Android 学习,面试文档,视频收集大整理,有兴趣的伙伴们可以看看~

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

  • 无论你现在水平怎么样一定要 持续学习 没有鸡汤,别人看起来的毫不费力,其实费了很大力,这四个字就是我的建议!!!!!!!!!
  • 我希望每一个努力生活的IT工程师,都会得到自己想要的,因为我们很辛苦,我们应得的。
发布了189 篇原创文章 · 获赞 741 · 访问量 10万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览