大家好,我是程序员徐公,加上实习,总共有五年中大厂经验了。公众号”程序员徐公“
今天,站在一个过来人的身份,来聊一聊到底该如何自学 Android。今天的文章不会很具体,主要是各个阶段学习的一些注意事项,以及一些坑。因为我认为,授人以鱼不如授人以渔。
目录大概如下
- Java SE 基础
- Android 基础
- Android 进阶
- Android 学习心得
- 如何写好自己的简历
- 小结
Java SE 基础
学些 Android 之前,你必须要有 Java 基础,不然你是学习不下去的。
Java基础
首先我们要掌握 Java 的一些基础概念和语法,比如什么是面向对象,继承,封装,多态分别是什么。
- Java 基本数据类型
- Java 变量类型
- Java 集合
- Java 多线程
- Java IO 流
- Java 网络编程
- Java 反射
- Java 泛型
- Java 注解
这一块中,有三个是非常重要的,也是面试经常问到的,这里简单介绍一下。
- 集合
- 多线程
- 网络
集合
Map:HashMap(最重要)、LinkedHashMap(Lrucache 算法实现最重要的一部分)、ConcurrentHashMap、Hashtable(基本被废弃)、
List:ArrayList(最重要)、LinkedList
Set:HashSet(最重要)、TreeSet
多线程
线程生命周期
创建线程的三种方式:继承 Thread、实现 Runnable;实现 Callable
ThreadPoolExecutor(线程池)
锁:synchronized 和 Lock
Java 学习书籍推荐
这里主要推荐两本数据,
- 《Thinking In Java》:Java经典书籍,不必说;
- 《Effective Java》:Java进阶必备书籍
- Java 编程思想,一本很经典的书籍,初学者可以看,但不建议细看,可以作为工具书来查看
我自己平时整理了一些 Java 常用的数据,想要的话可以在我的公众号 程序员徐公 回复 **”Java 电子书”**,会自动将电子书发给你。
Java 学习视频
小结:
1、刚开始学 Java 的时候
2、看第一遍时会比较慢,第二遍会快一点,已经掌握的知识可以快速带过。
3、有疑问的知识多看几遍,也可以网上看点博文辅助理解,实在看不懂的可以先记下来,后面学到一定程度可能就理解了。
4、对于重点知识,可以做笔记来加深自己的理解,也方便后续自己复习。
5、Java基础、集合、多线程是核心中的核心。
Android 基础
Android 基础大概可以分为一下几个部分
- AndroidStudio 安装和基本使用
- Android 基础 UI 学习
- Android 四大组件学习
- Android 五大布局学习
- 等等,这里就不一一罗列了
基础 UI 学习
1)、Android初级控件的使用:
TextView控件的使用
Button控件的使用方法
EditText控件的使用方法
ImageView的使用方法
RadioButton的使用方法
Checkbox的使用方法
2)、 控件的布局方法:
LinearLayout
FrameLayout
RelativeLayout
ContrainsLayout (约束布局)
3)、Android高级控件的使用:
ListView的使用方法
GridView的使用方法
Adapter的使用方法
ScrollView的使用方法
RecyclerView
基础的东西有很多,建议集合书籍一起学习吧,这里主要推荐郭霖的第一行代码,写得是真不错。
初学者刚学习的时候,可能会碰到一些问题,一时半会无法解决,建议你先百度或者 Google 搜索一下,问一下身边的人。如果还不会的话,可以加一下身边的人多问问。
如果想看视频的话,我这里有一套 Android 黑马教学视频,质量还不错,不过是几年前的,目录如下,有需要的话可以看一下。
获取方式,关注我的微信公众号程序员徐公,回复黑马两字。
Android 进阶
Android 进阶,学习方向有很多,比如 Android 性能优化(启动,卡顿, Crash 治理), JNI C++,gradle 打包,编译速度,音视频等等,这些都是大的方向。
- 性能优化(布局优化,启动优化、内存优化、电量优化、APK 瘦身等)
- 组件化(路由,SPI 等)
- 动态化(热修复,插件化等)
- 跨平台(RN,Flutter,现在会跨平台的还是挺吃香的,尤其是面试阿里系的)
最近写的一些文章,自我感觉还行,有兴趣的可以看看。
Android 启动优化(一) - 有向无环图
Android 启动优化(二) - 拓扑排序的原理以及解题思路
Android 启动优化(三)- AnchorTask 开源了
Android 启动优化(四)- AnchorTask 是怎么实现的
Android 启动优化(五)- AnchorTask 1.0.0 版本正式发布了
Android 启动优化(六)- 深入理解布局优化
Android 学习路上的一些心得
1-3 年
前 3 年,我觉得是我们成长最快的时候。
尤其是刚开始工作的一年,刚开始接触项目,我们会接触到很多新知识,比较网络框架的封装,Android 架构 MVVN,MVC,MVP 等。
这段时期是我们进步最快的时候,因为很多东西我们都不会,我们会逼着自己去学习。
第二到第三年,也是我们成长的关键时期。这时候,在项目中,我们基本会自己独立负责需求。这时候的我们,大多数基本功能都可以自己独立实现。需要注意的是代码风格和代码思维的培养。
代码风格,指的是编码习惯。比如方法命名,方法的合理拆分,适当添加注解,注释。听起来可能会很虚,但是千万别小看这些细节。反正我在组里见过一些工作五六年的,代码一坨一坨的,像 si 一样。
代码思维,有点类似于人的视野和思考方式吧。很多时候,实现某个效果,有很多种方案。我们为了应付需求,可能会随便选择一种,没有去了解其他方案。而这恰恰错过了我们成长的最佳时期。
记住,永远别给自己设限,或许在编程的路上会遇到很多问题,但是总会有解决方法的,而这取决你的态度。
3-5 年
这个时期,不出意外,我们基本都是高级工程师了。这时候大多数人会遇到瓶颈,不知道学些什么好。好像什么都会,但是不够深入。我也遇到这样的情况,现在正在深挖。
这方面我暂时也给不了太多意见,只能说,选择一个方向,静下心来,去学习,相信能收获到我们想要的。
学习方向有很多,比如 Android 性能优化(启动,卡顿, Crash 治理), JNI C++,gradle 打包,编译速度,音视频等等,这些都是大的方向。
最近写的一些文章,自我感觉还行,有兴趣的可以看看。
Android 启动优化(一) - 有向无环图
Android 启动优化(二) - 拓扑排序的原理以及解题思路
Android 启动优化(三)- AnchorTask 开源了
Android 启动优化(四)- AnchorTask 是怎么实现的
Android 启动优化(五)- AnchorTask 1.0.0 版本正式发布了
Android 启动优化(六)- 深入理解布局优化
5 年之后
技术人的四大出路,你适合哪一个
大多数技术人,一般会有以下方向。
- 第一:成为技术大神,比如架构师,及技术专家等。
- 第二:技术管理,比如技术总监等。
- 第三:技术转型,如转项目管理,产品等,你牛逼的话,说不定下一个张小龙就是你(哥们,想多了,那有这么容易)。
- 第四:自主创业,做自媒体等
程序员改如何写好自己的简历
一位5年中大厂程序员,从他自身经历出发,总结了一些经验,写得非常不错。
本文送四个纬度出发,优化你的简历- 突出你的亮点
- 展现自己的个人技能,
- 已项目为主题,展现自己的技术能力和项目贡献
- 量化你的项目,给出数字化结果
最后,文中还贴心贴出了简历模板,想进大厂的球友们可以看看。
https://mp.weixin.qq.com/s/cqVo6UQqnWZtKdZ6mJt93w
小结
最后,如果选择编程,一定要耐得住寂寞。学习编程的路上,有时候很枯燥,切忌三天打渔。两天晒网。黑马 Android 52 期学习视频,不加密的,免费分享给大家最后,如果选择编程,一定要耐得住寂寞。学习编程的路上,有时候很枯燥,切忌三天打渔。两天晒网。
我的 5 年 Android 学习之路,那些年一起踩过的坑
如果觉得对你有所帮助的话,可以关注我的微信公众号程序员徐公,5 年中大厂工作经验。
- 公众号程序员徐公回复黑马,获取 Android 学习视频
- 公众号程序员徐公回复徐公666,获取简历模板,教你如何优化简历,走近大厂
- 公众号程序员徐公回复面试,可以获得面试常见算法,剑指 offer 题解
- 公众号程序员徐公回复马士兵,可以获得马士兵学习视频一份