菜鸟到大牛的Android开发学习效率到底是差在哪里?私藏秘籍学习手册全公开!

如何成为一个高段位的学习者?

在技术学习的路上,对于我们程序员来说最重要的莫过于学习方法了。那我们应该如何释放自己的内在潜力去像海绵一样地吸收知识呢?接下来从八个问题点出发来看看该如何像高级工程师进阶。

1、怎样由浅入深地学习一个技术点?

建议大家先选定一个自己最感兴趣的方向,后面一段时间就专攻这一个方向,拿 Flutter 做例子,可以先将所有 Flutter 相关的专业文档、优秀书籍、视频教程、文章等搜集起来,将其中涉及的知识大纲列出来,对其中涉及到的每一个知识点(如今天或这几天要学的是布局类组件)需要的对应资料列出来。然后去学习、实践它的基本用法,接着可以再深入一层看这个知识点涉及到的内部原理(如 Flutter 中常用布局的实现原理),最后总结出对应的学习笔记(供以后复习)。

这样学习起来就比较有效果,而且刚开始可以根据自身的状态去调节计划时间的长短,建议开始计划定松一点,确保每天都能完成。养成习惯并完全适应后,可以加大学习量。这就跟健身的原理一样,刚开始锻炼的人一般都体质比较差,所以需要从最基础的动作开始练,等将基础打好了,体质提升上来了,才能去适当地做一些力量训练,增加肌肉。

2、怎样才能很好地把Android零碎的知识点串起来?

这可能说明学习的时候没有注重体系化地学习与思考,而是东学一点西学一点,那这些知识自然而然地会零散地遍布在我们脑海的各处。为了解决这个问题,我们需要首先需要把目前所学的知识列出来,然后可尽可能地找到这些知识点的联系,把它做成思维导图。

由于可能有很多联系点我们之前学习的疏漏而没有把它纳入我们的脑海中,但是,这并无大碍,后面我们可以围绕这张 1.0版本的安卓知识思维导图 不断迭代,最终,它就会日渐完善,发挥出想象不到的威力~

3、对未来很迷茫,天天都在学习但是技术就是提升不上去?

其实,对于大家来说,最重要的事情就是 如何去从最本质、最底层的层面去打磨自己? 如何培养兴趣、深入钻研某一个领域从而成为专家?如何具备快速、高效、不断深挖某一技术的核心能力(即一通百通的能力)?这些问题的答案很难在短时间让大家去明白、理解。

其实,我今年的整个文章路线就是围绕这些内容而定制的,其共分为几个核心路线:软技能、高效构建算法知识地图、性能优化领域专家、NDK 高手之路(偏向于 Native 层的性能优化、Hook 实现)、Flutter(从最重要的核心点 自上而下打通 Flutter 的整个架构体系),明年上半年的路线:架构师成长之路(从易到难具备强大的架构设计能力) 。

可能有的同学认为我学的好像很杂,其实不然,我一直都专注于一条路线,就是基础架构研发,它涉及的主要工作内容就是架构设计、性能优化、前沿新技术预研(Flutter、JetPack)。建议大家选定一条路线,也不一定要是上面的路线,专注于音视频、图形处理 或 AI 移动、大前端 的路线都可以,今年大家一起加油,希望年底能给自己一份满意的答卷~

4、如何更高效地学习技术视频?

学习视频的时候建议开 2 倍速看,对于 不熟悉/偏难 的知识,每看一个小的技术点之后,就实践一遍,然后把实践的成果写入 笔记/你的初稿博客 中,对于 比较熟悉/简单 的知识,一般是看一小节/两三个技术点之后再实践、写入 笔记/你的初稿博客

5、如何选择第三方库?

1)、确定这个库是否是必需的。
2)、这个库能否带来开发效率的提升,降低代码的维护成本。
3)、这个库的学习成本如何 比如 rxjava 其实学习成本会相对高一些。
4)、这个库的质量如何,不要仅仅看 star,更要看 issue 的处理情况。

6、怎样练习算法题?

1)、每道算法题都先自己去实现,理清思路后自己去实现一遍。(超过5分钟没思路跳下一步)
2)、然后再看看答案,记住答案的思路,手写一遍。
3)、第二天再重新按照答案的思路再手写一遍。
4)、等到要面试的时候再系统地将所有的题型按类别进行手写即可。

7、如何阅读源码?

1)、准备

1、Java设计模式(模板方法,单例,观察者,工厂方法,代理,策略,装饰者)。
2、Java高级相关(泛型、反射、IO)。
3、在官方文档上了解软件的整体架构设计、主要功能。
4、熟练掌握这个库。
5、搭建系统,把源码跑起来。

2)、开始阅读

1、根据你对系统的理解,设计几个主要的测试案例,定义好输入,输出。(Debug一遍肯定是不行的,需要Debug很多遍)
2、第一篇抛弃细节,抓住主要流程,第二篇,第三篇,再去看各个部分的细节。
3、阅读的时候同时使用 UML 画出系统的类图。主要的测试案例明白了,丰富测试案例,考虑一些分支。
4、这一步会非常非常地花费时间,但是你做完了,对系统的理解绝对有质的飞跃。

3)、流程小结

1、准备。
2、网上搜索针对该开源项目进行分析的优秀文章。
3、对开源项目提出自己的疑问,并带着疑问阅读源码。
4、阅读源码过程中多添加注释、笔记.
5、做阅读总结/写文章,吸收和再创造

8、新技术频繁出现,我们应该采取有效的针对性措施?

一项新技术的出现,我们应该先去了解它,看它是否对自身的技术成长有比较大的帮助,有的话按优先级加入学习计划表,而不是立马去学习或否定它。

五、总结

对于大多数人来说,可能关键不在于学习方式的优劣,而在于如何不痛苦地坚持下去。而要解决这个问题,最大的利器便是兴趣。只有真正深入到一个领域,才能培养出对其的真正兴趣。如果对一件事的了解不深、不透,总是浅尝辄止,那自然体会不到这件事的妙处,也自然不会产生持久的兴趣。这让人容易滑入一个死循环:了解不够导致兴趣不足,而兴趣不足又无法加深对它的了解。

如果我能长期地坚持去做一件事,一定是这件事带给我的丰盈感和满足感超过了我的所有付出,一定是这件事日日夜夜萦绕在我的心头让我欲罢不能,一定是这件事唤起了我内心深处最强烈的兴趣。也就是说,赐予我力量的,是激情的驱动,而不是意志力的鞭策。但是,热情很难一直存在,因此,在热情黯淡的时期,需要我们有一定的自控力去做支撑过渡。因此,如何练就强大的自控力也是需要我们去不断深入探索的一个问题。

本文可能可以适用到其他端,不过由于自己是一名 Android 开发工程师,所以就姑且从一名普通的 Android 开发工程师的角度来分享一下Android的一个系统学习路线吧。(有需要的人或者不知道怎么学习的人可以参考一下)

1、看视频进行系统学习

前几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,唯一的缺点就是免费的容易过时。

另外,我自己也珍藏了好几套视频,有需要的我也可以分享给你。

2、进行系统梳理知识,提升储备

客户端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

  • 架构师筑基必备技能:深入Java泛型+注解深入浅出+并发编程+数据传输与序列化+Java虚拟机原理+反射与类加载+动态代理+高效IO
  • Android高级UI与FrameWork源码:高级UI晋升+Framework内核解析+Android组件内核+数据持久化
  • 360°全方面性能调优:设计思想与代码质量优化+程序性能优化+开发效率优化
  • 解读开源框架设计思想:热修复设计+插件化框架解读+组件化框架设计+图片加载框架+网络访问框架设计+RXJava响应式编程框架设计+IOC架构设计+Android架构组件Jetpack
  • NDK模块开发:NDK基础知识体系+底层图片处理+音视频开发
  • 微信小程序:小程序介绍+UI开发+API操作+微信对接
  • Hybrid 开发与Flutter:Html5项目实战+Flutter进阶

知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结。

主要内容:

Java 基础(★★)

  • 面向对象思想
  • 多态
  • 异常处理
  • 数据类型
  • Java 的 IO
  • 集合
  • Java 多线程

Java 高级(★★)

  • Java 中的反射
  • Java 中的动态代理
  • Java 中的设计模式&回收机制
  • Java 的类加载器

Android 基础(★★★)

  • Android 基本常识
  • Activity
  • Service
  • BroadCastReceiver
  • ContentProvider&数据库
  • Android 中的布局
  • ListView
  • JNI & NDK
  • Android 中的网络访问
  • Intent
  • Fragment

Android 高级(★★★)

  • Android 性能优化
  • Android 屏幕适配
  • AIDL
  • 自定义控件
  • Android 中的事件处理
  • Android 签名
  • Android 中的动画
  • 网络协议
  • 其他

3、读源码,看实战笔记,学习大神思路

“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。

主要内含微信 MMKV 源码、AsyncTask 源码、Volley 源码、Retrofit源码、OkHttp 源码等等。

4、面试前夕,刷题冲刺

面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。

关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三:

以上内容均免费分享给大家,需要完整版的朋友,点这里可以看到全部内容。或者关注主页扫描加 微信 获取。

当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章