我的移动开发春季历程,已整理成文档

Java相关

无论什么级别的Android从业者,Java作为Android开发基础语言。不管是工作还是面试中,Java都是必考题。如果不懂Java的话,薪酬会非常吃亏(美团尤为重视Java基础)

详细介绍了Java泛型、注解、并发编程、数据传输与序列化、高效IO、容器集合、反射与类加载以及JVM重点知识线程、内存模型、JVM运行时内存、垃圾回收与算法、Java中四种引用类型、GC 分代收集算法 VS 分区收集算法、GC 垃圾收集器、JAVA IO/NIO 、JVM 类加载机制的各大知识点。

Java基础

详细知识点太多,文案过长可见《Android核心知识体系》

入门学习阶段

首先,官方文档肯定是最好的教科书,网上一些大神分享的案例也可以多看看,一边学习一边练手。假设英语还不错,而且还有Java和XML的基础,那照着官方的Training慢慢学习下来其实就算是入门了。如果英语不太好,也要把基本功打扎实,把编程语言练熟。也要多找资料多做练习,至少要掌握基本的Android开发知识,比如四大组件的使用、创建Service、进行布局、简单的自定义View等等是最基本的要求。

也许前期看什么都觉得很吃力,但是不必急躁,慢慢来,下层基础决定上层建筑。初期学得稳,后期才能走得远。这里给大家推荐几本新手入门的必备书籍,《第一行代码》、《android开发艺术探索》、《android编程权威指南》。

学习方法

  • 多练多思考

对于刚刚踏入这个行业的新人,我觉得最好的学习方法就是多练习、多思考,在学习中突破自己,积累经验。对于新手来说,Android开发的前期阶段就是不断地在踩坑,所以最快速的成长方式就是去和各式各样的bug展开殊死搏斗,不断打磨自己的技术。理论和实践的融合技巧是需要你自己去摸索的。

  • 写日志

前期学习的犯错次数肯定很多,记录、总结有助于我们快速地解决问题。写日志是我们日常学习的一种记录方式,写日志其实是对知识体系的回顾与总结。与其说写日志有助于我们学习,不如说记录问题有助于我们学习。

总的来说,初级Android开发者需要学习的东西还是比较多,所以大家要保持良好的心态,做好长期作战的准备,一步一步地去充实自己。

中阶学习阶段

这个时候的Android开发者已经具备了一些从技术看本质的能力,对学习Android开发也有了一定的理解。这个时候就可以把眼光放向其他尖钻、热门的技术,扩充自己的知识面。想要尝试但是又不熟悉的领域也可以接触起来。

在中阶学习阶段,没有必要再去重复过于简单的工作,我们更需要提升的是解决问题的能力。形成一个自己的思维方法和知识体系是当前最重要的任务,这也是我们成为Android高阶工程师的必要条件。

学习方法

  • 参与开源项目

开启开源项目或者贡献开源项目能极大地提升我们的技术水平。很多人都有这样的感受,那就是关键的脑洞往往是一种启发,想通它的那一瞬间就像打通了任督二脉,一下子就练成了九阳神功。这种灵感的获得在Android开发学习中是很难得的。我自己也在开源社区参与过不少项目,得到过不少好用的组件,是开源项目的获益者,所以我推荐大家多去开源社区活动,相信你们也会有不少收获。比如GitHub就是一个不错的开源社区,在项目中GitHub聚集了全球各个领域的程序员,可以直接阅读Google、Facebook顶级公司的开源项目,不管是阅读别人的源码还是自己贡献代码都很方便。

  • 阅读Android源码

Android源码的理解可以帮助我们进一步地学习,给我们以后能力的提升打下坚实的基础。多看优秀的源码,有可能的话重复造一遍也挺好的。不能一直停留在基本api的使用上,应该往更深层次的方向去研究,例如activity、view的内部运行机制、Android的内存优化、JNI等,除了能灵活运用,更应该能通过阅读源码而理解其实现原理。

高阶学习阶段

高阶学习阶段的最重要内容是“更好”。某种程度上来说,一个项目不论完成得有多优秀,它总是会有更优质的设计方案。到了高阶学习的阶段,无论这个项目完成得多好,我们都可以再问一句,还有没有更加完美的设计思路。虽然有着丰富开发经验的工程师在项目开始之前,就已经知道瓶颈在哪里,需要注意哪些地方,但创造更优的解决方案一直都是高阶工程师追逐的目标。

学习方式

  • 系统学习

理解系统,学会用系统思维才更有利于解决问题。比如FB的Buck构建,国内多少技术团队基于此做了构建优化(也得到了晋升)。学习技术需要结合项目进行训练,在Android里面最常用的架构无外乎 MVC,MVP,MVVM,但是这些思想如果和模块化,层次化,组件化混和在一起,就不是一件这么简单的事情了,我们需要学习更多的Android开发知识才能知道其中蕴含的深理。

最后

简历首选内推方式,速度快,效率高啊!然后可以在拉钩,boss,脉脉,大街上看看。简历上写道熟悉什么技术就一定要去熟悉它,不然被问到不会很尴尬!做过什么项目,即使项目体量不大,但也一定要熟悉实现原理!不是你负责的部分,也可以看看同事是怎么实现的,换你来做你会怎么做?做过什么,会什么是广度问题,取决于项目内容。但做过什么,达到怎样一个境界,这是深度问题,和个人学习能力和解决问题的态度有关了。大公司看深度,小公司看广度。大公司面试你会的,小公司面试他们用到的你会不会,也就是岗位匹配度。

面试过程一定要有礼貌!即使你觉得面试官不尊重你,经常打断你的讲解,或者你觉得他不如你,问的问题缺乏专业水平,你也一定要尊重他,谁叫现在是他选择你,等你拿到offer后就是你选择他了。

另外,描述问题一定要慢!不要一下子讲一大堆,慢显得你沉稳、自信,而且你还有时间反应思路接下来怎么讲更好。现在开发过多依赖ide,所以会有个弊端,当我们在面试讲解很容易不知道某个方法怎么读,这是一个硬伤…所以一定要对常见的关键性的类名、方法名、关键字读准,有些面试官不耐烦会说“你到底说的是哪个?”这时我们会容易乱了阵脚。正确的发音+沉稳的描述+好听的嗓音决对是一个加分项!

最重要的是心态!心态!心态!重要事情说三遍!面试时间很短,在短时间内对方要摸清你的底子还是比较不现实的,所以,有时也是看眼缘,这还是个看脸的时代。

希望大家都能找到合适自己满意的工作!
如果需要PDF版本可以在腾讯文档中自行领取!

进阶学习视频

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题 (含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

[外链图片转存中…(img-0DCZu1b7-1622095202361)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值