我的安卓学习之路

我的安卓之路主要有四个阶段:

  1. 入门

  2. 实践

  3. 准备面试

  4. 工作

1.入门

2014 年,学习 MFC 中途放弃的我,偶然间看到 Mars 前辈的安卓视频,看了几天写了个简单的应用,觉得安卓开发挺有趣,同时学校的俱乐部认识了学长,得知一个学长去了阿里做安卓,让我很心动,便决定开始学安卓。

开始的时候我没有重视 Java 基础,直接就看 Mars 的视频和《Android 从入门到精通》的书,照着书一章一节地学、敲,一开始是死记硬背,写的久了,逐渐熟练了,但还是靠背的居多。

现在大家可能看不上这种《XX从入门到精通》的书,但我当时用一个暑假整个读完、敲完,感觉收获还是很多的。它的内容可能很简单、网上都可以搜得到,但对于当时完全没有体系的我来说,这本书的好处是非常的系统,我在没有网络的情况下也可以阅读。

这个阶段的问题是没有主动去网络或者学长那里请教学习路线,直接看书、看视频,基础都不扎实,导致浪费了很多时间。

从初始到勉强可以说是“入门”,大概花了小半年。水平大概就是:可以写一些简单的布局和页面跳转,知道四大组件但基本只用 activity。

2.小实践

2014 年底,书和视频看完了,我跟着书写出了第一个项目,一个简单的记事本,稍微复杂点的就是 SQLite 操作。界面很丑,但装在自己手机上跑起来、给朋友展示、完成学校作业,让我觉得很有成就感,觉得没白学。

后来又找到“X马”的一个项目视频,跟着学了一个手机卫士的项目,这个过程中熟悉了 Eclipse 和 Git,掌握了稍微复杂点的布局。

这个阶段的问题是只是跟着书、视频一句一句写,没有思考为什么要这么做,导致收获不够多。

这两次小实践让我对书上的知识有了更进一步的理解,阅读时有些章节嫌麻烦直接跳过、有些细节匆匆略过,在项目中用到了,书籍结合着实战,才理解了一些开始觉得晦涩的概念。

3.准备面试

做了两个小项目后,我又做了些简单的项目,包括本地播放的音乐播放器、一个加密解密的软件等,参加了一些小比赛,拿了二三名,就觉得自己“挺优秀”了。

2015 年,在接连面试了腾讯去哪儿还有些其他公司,均未果。

腾讯倒在一面,被一个问题难倒“Vector 和 ArrayList 区别?”;去哪儿倒在二面,手写单例模式写不出来。

这一连串的失败让我意识到自己的基础很差,光会画 UI 填布局,稍微深一点的问题就难倒了,不论 Java 还是 Android,都浮在表面。

于是我开始搜集网上的面试问题,“面向面试学习”。

4.工作

在“面向面试学习”了一段时间后,我掌握了一些“常考点”:启动模式、生命周期、Service 创建的两种方式、Handler 机制、垃圾回收等等,现在烂大街的内容,当时掌握了的确让我很快就找到了工作。

2015 年先后去两家公司实习,第一家西安的公司呆时间比较短,那段时间我在博客记录了很多工作总结,现在看看主要是熟悉工作的流程、心态的调整,这个过程中用的主要是 eclipse,熟悉了一些开源框架的使用,也没有意识去了解自己负责部分以外的内容。

换第二家来到了上海,开始用 android studio,在同事推荐下去看官方文档,逛 github,学习一些常见库的使用。

2016年,在饿了么电话面试未果、前辈点拨以及看框架什么也不懂的多重打击下,我意识到自己还有很多很多的不足,其中最关键的是 Java 基础不足。

前面提到的准备面试过程中,我看了很多安卓基础的东西,Java 反而忽视了,于是开始补基础。你们可以看到我博客的很多 Java 基础内容,都是 16 年开始写的。

2017年,博客访问量增加、开始运营公众号,网上结识了很多朋友,关注了高质量公众号,坚持交流分享学习,一直到九月份换了新的工作。

值得复用的经验

从我的学习之路可以看出,学习安卓的过程中,几个关键点是:

  1. 看书

  2. 练手

  3. 以考带学

  4. 商业项目

  5. 开阔视野

1.看书

看书是第一个阶段必不可少的,这个阶段找入门大众书看几本就好,目的是掌握通用知识,不必太纠结于细节,否则坚持不下去。

这个阶段最好是别看博客,像“安卓进化论的安卓进阶指南”这样可以成体系的博客太少了,东看一点西看一点,建立体系的速度太慢。

至于选什么书籍,根本不是你迟疑的理由,X乎上一搜答案太多了。

官方文档有能力的可以刷一刷,质量有保证。

2.练手

看了一两本书后就可以练手,实践出真知,跟着书或者视频或者开源项目,从头做一两个项目,了解这个领域开发需要用到的知识、工具,不必纠结于具体细节,先丰富认知体系。

不知道做什么项目?

如果你买书的时候仔细看看后几章,其实都有项目实践的。若是喜欢看视频,各种在线学习网站视频教程也不少。

3.以考带学

了解了一些技术的使用后,想要深入学习一下又不知道该学到什么程度?

又一个办法就是“以考带学”,什么意思呢?以准备面试题的心态,搜集问题、解决问题,在这个过程中深入学习之前只了解表面的知识点。

最好选大公司的面试题,越大的公司考察的内容越基础越实在,小公司往往考察你对 API 的理解,价值不大。

4.商业项目

知识积累差不多够,就需要在实战项目中磨练、提升了,商业项目里需要考虑效率、性能、架构各个方面,找一份工作,多看看别人是怎么做的,吸收、进步、总结,你就可以从入门到进阶了。

5.开阔视野

到这一步,还不够,还得保持继续学习的心态。时代在不停地变化,我们要想有饭吃,就一定要紧跟潮流。

我是如何学习安卓开发的相关推荐

  1. 学 android需要什么基础,学习安卓开发需要什么基础?

    学习程序开发一般都需要懂一些一定的C语言,现在大学里面和计算机相关的专业甚至理工类专业一般都会开设C语言课程.当然学习安卓程序开发除了懂C语言之外,还需要掌握一定的Java基础知识.Linux基础知识 ...

  2. 如何零基础学习安卓开发?

    安卓手机全球市场份额已经接近85%,成为了无处不在无所不能覆盖面最广的手机操作系统,学习安卓开发一直都很热门,想学习安卓却有点无从下手,本篇教程就是一个从零基础开始学安卓的指导,希望对想学习安卓的新人 ...

  3. 0基础如何学习安卓开发

    文章始发于我的知乎专栏:bird-hu  安卓学习步骤: 学习任何一个东西之前,都要学会思考以下几点,这样任何东西都会学的很好. 1.他是什么? 2.他是干什么的,是怎么干的? 3.他为什么这么干? ...

  4. 通过安卓逆向来学习安卓开发

    记一次逆向学习的过程 起因:最近在做bilibili缓存视频合并工具,适配Android 11时需要获取Android/data目录的读取权限,根据APP"清浊"开发者的帖子: 如 ...

  5. 学习安卓开发!我凭什么拿到了阿里、腾讯、今日头条3家大厂offer?再不刷题就晚了!

    前言 2020年是转折的一年,上半年疫情原因,很多学android开发的小伙伴失业了,虽找到了一份工作,但高不成低不就,下半年金九银十有想法更换一份工作,很多需要大厂面试经验和大厂面试真题的小伙伴,想 ...

  6. 学习安卓开发第七天【网格视图qq相册页面】【下拉;列表框】【下拉列表框实例】【列表视图】

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  7. 安卓开发学习笔记1:简单控件

    此文章仅为本人在学习安卓开发时的一些笔记 界面显示逻辑处理 使用XML标记.描绘应用界面,使用Java书写程序逻辑 使用XML描述APP界面 使用XML文件描述APP界面 一个界面布局可以被多处代码复 ...

  8. C#编写WINNT服务,随便解决安卓开发遇到的5037被众多程序无节操占用的问题

    需求分析: 最近重新开始学习安卓开发,好久不用的ADT集成开发环境频繁遇到不能在仿真机和真机上调试的问题,也就是本人另一篇博文描述的ADB(Android Debug Bridge)监控的5037被金 ...

  9. 安卓开发——拍照、裁剪并保存为头像报错:裁剪图片无法保存的

    在做学校大创项目的安卓开发时,需要从相册获取图片或者拍照,然后裁剪保存为头像.由于我是第一次弄安卓开发,也对Android现在越来越多的权限限制不了解,debug过程真的是异常心塞啊. 闲话不说(文末 ...

最新文章

  1. Android手机开机自动启动
  2. TextView图文混排,显示添加的图片,三种常用方法,亲测
  3. 【Python基础】Python初学者必须吃透这69个内置函数!
  4. oracle不能单步调试,oracle bug之vipca无法执行问题的解决
  5. boost::histogram模块实现自定义二维轴的测试程序
  6. 用hundred造句子_关于冬至的问候短句,冬至文案唯美句子
  7. 基础组件完善的今天,如何通过业务组件提效?
  8. Python字符串转换为小写字母– str.lower()
  9. Linux服务器开机自动启动服务或脚本的方法
  10. Python_随笔笔记_Python基础1
  11. python3安装及加载gensim
  12. 16进制转换成rgba方法
  13. 小游戏策划案例精选_最具创意大型活动策划案例
  14. 旧电脑再次起飞 分享一次联想Thinkpad X230黑苹果的完整过程
  15. 服务器显卡直通和GPU问题分析
  16. 漏洞篇(SQL注入一)
  17. Shell学习笔记:#*、%*字符串掐头去尾方法
  18. php 合成微信头像,PHP 图片合成、仿微信群头像的方法示例
  19. 手机刷机是什么意思?快速了解手机刷机基本概念
  20. Highcharts去掉右下角URL水印

热门文章

  1. 项目成功关键要素和项目成功关键要素
  2. 纯OC实现iOS DLNA投屏功能了解一下
  3. Linux磁盘存储和文件系统
  4. 关于如何在word中使用EndNote引用知网的文献
  5. 适合女生学的技术有哪些?
  6. 福特FORD EDI流程指南
  7. 智能重卡产品研发的三种逻辑博弈
  8. WebBrowser打开Word文档的一些注意事项
  9. 综合Synthesis
  10. 男人不愿被打扰的五个时刻