Android开发该学习哪些东西?
来源:互联网 发布:淘宝分销商品怎么上架 编辑:程序博客网 时间:2024/05/18 01:40
开篇:
入门阶段:快速上手,增加自信
Head First Java不用多说,业界公认的Java入门佳作,如果你的编程底子非常薄,可以通过这本书快速学习Java。而对于这本Java从入门到精通,也许很多人嗤之以鼻,觉得是只教表面,不深挖原理的浅薄书籍,没必要看,但是这本书的好处在于,当你完全没接触过编程,没接触过计算机知识的时候,这本书是可以带你快速上道的,它不仅仅只教如何使用Java语言,它连如何搭建开发环境这种对于出入门的人来说非常头痛的事都有详细教程,因此,它对于刚刚入门的人来说,是非常友好的,如果,你没有任何编程经验,但想从Java入门编程,这本书是非常好的。
2.Android初级入门:
推荐书籍:《第一行代码》
如果要开始这一阶段,请务必把Java初级阶段入门完成后再尝试。那怎样算是完成呢?起码用书中的知识自己写过Demo,并且测试成功,例如,最基本的Java知识,包括:继承,接口,字符串,内部类,匿名类,集合,简单的多线程,Socket网络通讯等等都有过亲自的实践,第一阶段就算是完成了,你说反射,范型,枚举,多线程,注解等知识你没办法理解?没有关系,这些都是第二阶段攻克的主要目标之一。
至于第一行代码这本书,已经无需我废话,这在中国基本已经成了Android入门的标准教材,书中涵盖了Android开发知识的方方面面,例如如何搭建Android开发环境,Android四大组件的使用,Android网络通信的基础,如何使用开源库,如何使用Git,如何进行本地存储等等。只要跟着这本书,把书中的每一个Demo都自己手动实现一遍,并在学习完本书后,自己试着综合所有已学的知识开发一个能自己玩的小app,第一个大阶段——入门,就算彻底结束了。
进阶:持续攀登技术之峰
如果你已经完成了第一阶段,并且已经小有自信来到了这里,那我要说,进阶阶段可能会让你扫兴,因为进阶阶段的学习量可能是入门阶段的数倍,甚至上10倍,但是,既然已经走到这里来了,自然不能放弃。
3.Java进阶,颠覆初学的认识
推荐书籍:《Java编程思想》,《Effective Java》
如果你已经读完了Java的入门书籍,也许会觉得:“Java不就那么回事吗,用起来也挺简单啊,别跟我讲什么理论,我只要会用就行了!”但实际上,这个阶段也许会颠覆你之前对Java的大部分认知,我们将从Java的高级特性以及底层原理来给我们的Java知识树添枝加叶。
《Java编程思想》这本书近乎等于Java的权威教材,它涵盖了Java的方方面面,翻开目录,也许你会觉得许多知识你都学过,但是请相信我,这本书值得一字一句的从头读到尾,读完将让你的Java内功功力大进,上升几个级别。当然,读完这本书是考验人毅力的一大挑战,因为这本书的确有些晦涩难懂,经常看一遍看不明白,需要多看几遍,并且这本书近乎800页的篇幅(实际上这本书的页数更多,只不过最后一张图形用户界面和Android开发关系不大,可以不看)实在是相当挑战读者的耐力。
《Effective Java》是Java使用者必看的书籍(无论你是哪个方向),它以几十条实战经验总结作为索引,让读者从各处细节上掌握Java的使用技巧,从而编写出高效可用的Java代码,当把这些经验了然于胸时,带着这些经验写代码,将会节省你大量的时间和代码量来获取到足够多的编程经验。
4.Android开发进阶,以及设计模式的学习
推荐书籍:《Android开发艺术探索》,《Android源码设计模式解析与实战》
学习完《第一行代码》后,你可能会使用Android SDK中提供的许多类库来开发Android应用了,但是,只会使用是远远不够的,我们必须掌握它们的运行机制和原理,以及我们还应该学习自定义一些类似与系统提供的组件的工具(例如自定义View),学习这些知识,以上两本书再好不过了。它们对于这部分知识的讲解可以说是相辅相成的,这两本书同样是需要花大力气去阅读的,当这两本书被你彻底吃透以后,1到3年经验的Android面试中,你基本已经可以拿下全部和Android有关的问题了。
如果你已经吃透了《Java编程思想》想必你已经和23种设计模式的其中几种见过面了,但也许还不是特别有感觉,这时候就需要系统的学习了,《Android源码设计模式解析与实战》不仅讲了Android源码,更精讲了各种设计模式,学完这本书可以说是一举两得,又能学习源码,又能系统的学习设计模式。
5.实战环节
当你第3阶段完成以后,实际上就可以将这第5阶段和第4阶段并行执行了,这部分的知识绝大部分是书籍中所没有的,因此需要结合网上的博客文章和自己的大量动手实践来学习。首先,你已经在《第一行代码》中见过几种开源库了,现在,为了高效开发Android应用,我们应该学习以下几类主流Android开源库的用法和原理,如下所示:
1.网络请求(Retrofit2)
2.图片加载(Glide/Fresco)
3.事件总线(EventBus/Otto)
4.异步操作(RxJava2)
5.依赖注入(ButterKnife/Dagger2)
括号中列出的是该类开源库中的代表作,有些种类我列出了两个,但是初学的时候只需要挑一个学习就可以了。当然,开源库的种类远不如这些,还有例如数据库操作,图片选择器,大图查看器等许多种类,但是这些库用到的频率并不及以上五种,以上五种开源库几乎可以说是在任何app中都要使用到的,学会它们无论是对你开发应用的效率还是应付公司面试都颇为有用。
学习开源库的方法主要是先在网上找到一篇靠谱的文章简单读读,如果你英文好的话也可以直接去它们的项目主页去读英文文档;然后把它们的简单示例写个demo或者直接用在你正在开发的个人项目中,用上去以后再根据代码,仔细研读解析的文章或文档,然后修改这些代码,尝试些高级用法。等你闭着眼睛都能在脑中默念出这些库的使用流程的时候,就可以再找一些深入分析的文章或者亲自去看它们的源码来学习它们的原理;学习原理是非常重要的,特别是在大公司的面试中,考察你是否理解你使用的库的原理也是相当重要的一个环节。到这里Android开发相关的基础理论知识就已经大致学习完了,这一节既然叫实战环节,那么你大量的编码量是少不了的,作为一个初涉编程的学习者,每天都保证一定的代码量或技术书籍的阅读量是少不了的,只有持之以恒的大量练习,解决实际开发中的大量问题,技术才能真正的快速提高。
6.计算机基础知识补缺
高级:拓展知识面和大量实战
- Android开发该学习哪些东西?
- 该学习的东西
- 2.LifeRay 的哪些东西该注意?
- 学习新东西,该怎么办?
- 学习PHP到底要学习哪些东西?
- 学习PHP到底要学习哪些东西?
- 学习PHP到底要学习哪些东西?
- Android系统提供了哪些东西,供我们可以开发出优秀的应用程序
- 学习Win32汇编要学哪些东西
- 激励一下自己,应该学习哪些东西
- linux网络编程应该学习哪些东西
- web前端需要学习哪些东西?
- 学习java哪些东西必须牢记
- android哪些东西会被回收?
- 一个程序员该学习的东西
- 你该知道的东西 <Android优化>
- 测试人员该学习哪些Linux知识
- web测试入门该学习哪些内容?
- JAVA基于poi实现操作Excel
- MOOC清华《程序设计基础》第4章:筛法求素数
- 算法设计与应用基础系列10
- Angular程序架构
- JQuery 的跨域方法 可跨新浪、腾讯、经网等任意网站
- Android开发该学习哪些东西?
- Android源码目录结构
- 解决apache启动错误"httpd:Could not reliably determine..."
- 理解 Android Build 系统
- XSS挑战赛记录
- Azkaban实战,Command类型单一job示例,任务中执行外部shell脚本,Command类型多job工作flow,HDFS操作任务,MapReduce任务,HIVE任务
- 单链表某一元素的删除
- 卷积神经网络
- Windows下使用xShell向远程Linux上传文件或下载文件