我是如何学习安卓开发的
我的安卓学习之路
我的安卓之路主要有四个阶段:
入门
实践
准备面试
工作
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.看书
看书是第一个阶段必不可少的,这个阶段找入门大众书看几本就好,目的是掌握通用知识,不必太纠结于细节,否则坚持不下去。
这个阶段最好是别看博客,像“安卓进化论的安卓进阶指南”这样可以成体系的博客太少了,东看一点西看一点,建立体系的速度太慢。
至于选什么书籍,根本不是你迟疑的理由,X乎上一搜答案太多了。
官方文档有能力的可以刷一刷,质量有保证。
2.练手
看了一两本书后就可以练手,实践出真知,跟着书或者视频或者开源项目,从头做一两个项目,了解这个领域开发需要用到的知识、工具,不必纠结于具体细节,先丰富认知体系。
不知道做什么项目?
如果你买书的时候仔细看看后几章,其实都有项目实践的。若是喜欢看视频,各种在线学习网站视频教程也不少。
3.以考带学
了解了一些技术的使用后,想要深入学习一下又不知道该学到什么程度?
又一个办法就是“以考带学”,什么意思呢?以准备面试题的心态,搜集问题、解决问题,在这个过程中深入学习之前只了解表面的知识点。
最好选大公司的面试题,越大的公司考察的内容越基础越实在,小公司往往考察你对 API 的理解,价值不大。
4.商业项目
知识积累差不多够,就需要在实战项目中磨练、提升了,商业项目里需要考虑效率、性能、架构各个方面,找一份工作,多看看别人是怎么做的,吸收、进步、总结,你就可以从入门到进阶了。
5.开阔视野
到这一步,还不够,还得保持继续学习的心态。时代在不停地变化,我们要想有饭吃,就一定要紧跟潮流。
我是如何学习安卓开发的相关推荐
- 学 android需要什么基础,学习安卓开发需要什么基础?
学习程序开发一般都需要懂一些一定的C语言,现在大学里面和计算机相关的专业甚至理工类专业一般都会开设C语言课程.当然学习安卓程序开发除了懂C语言之外,还需要掌握一定的Java基础知识.Linux基础知识 ...
- 如何零基础学习安卓开发?
安卓手机全球市场份额已经接近85%,成为了无处不在无所不能覆盖面最广的手机操作系统,学习安卓开发一直都很热门,想学习安卓却有点无从下手,本篇教程就是一个从零基础开始学安卓的指导,希望对想学习安卓的新人 ...
- 0基础如何学习安卓开发
文章始发于我的知乎专栏:bird-hu 安卓学习步骤: 学习任何一个东西之前,都要学会思考以下几点,这样任何东西都会学的很好. 1.他是什么? 2.他是干什么的,是怎么干的? 3.他为什么这么干? ...
- 通过安卓逆向来学习安卓开发
记一次逆向学习的过程 起因:最近在做bilibili缓存视频合并工具,适配Android 11时需要获取Android/data目录的读取权限,根据APP"清浊"开发者的帖子: 如 ...
- 学习安卓开发!我凭什么拿到了阿里、腾讯、今日头条3家大厂offer?再不刷题就晚了!
前言 2020年是转折的一年,上半年疫情原因,很多学android开发的小伙伴失业了,虽找到了一份工作,但高不成低不就,下半年金九银十有想法更换一份工作,很多需要大厂面试经验和大厂面试真题的小伙伴,想 ...
- 学习安卓开发第七天【网格视图qq相册页面】【下拉;列表框】【下拉列表框实例】【列表视图】
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
- 安卓开发学习笔记1:简单控件
此文章仅为本人在学习安卓开发时的一些笔记 界面显示逻辑处理 使用XML标记.描绘应用界面,使用Java书写程序逻辑 使用XML描述APP界面 使用XML文件描述APP界面 一个界面布局可以被多处代码复 ...
- C#编写WINNT服务,随便解决安卓开发遇到的5037被众多程序无节操占用的问题
需求分析: 最近重新开始学习安卓开发,好久不用的ADT集成开发环境频繁遇到不能在仿真机和真机上调试的问题,也就是本人另一篇博文描述的ADB(Android Debug Bridge)监控的5037被金 ...
- 安卓开发——拍照、裁剪并保存为头像报错:裁剪图片无法保存的
在做学校大创项目的安卓开发时,需要从相册获取图片或者拍照,然后裁剪保存为头像.由于我是第一次弄安卓开发,也对Android现在越来越多的权限限制不了解,debug过程真的是异常心塞啊. 闲话不说(文末 ...
最新文章
- Android手机开机自动启动
- TextView图文混排,显示添加的图片,三种常用方法,亲测
- 【Python基础】Python初学者必须吃透这69个内置函数!
- oracle不能单步调试,oracle bug之vipca无法执行问题的解决
- boost::histogram模块实现自定义二维轴的测试程序
- 用hundred造句子_关于冬至的问候短句,冬至文案唯美句子
- 基础组件完善的今天,如何通过业务组件提效?
- Python字符串转换为小写字母– str.lower()
- Linux服务器开机自动启动服务或脚本的方法
- Python_随笔笔记_Python基础1
- python3安装及加载gensim
- 16进制转换成rgba方法
- 小游戏策划案例精选_最具创意大型活动策划案例
- 旧电脑再次起飞 分享一次联想Thinkpad X230黑苹果的完整过程
- 服务器显卡直通和GPU问题分析
- 漏洞篇(SQL注入一)
- Shell学习笔记:#*、%*字符串掐头去尾方法
- php 合成微信头像,PHP 图片合成、仿微信群头像的方法示例
- 手机刷机是什么意思?快速了解手机刷机基本概念
- Highcharts去掉右下角URL水印