学习Android之路

今天主要是结合自己学习和从事Android工作以来,来谈谈一个从未接触编程开发到能独立开发并且带Android开发团队的进阶过程。

这里主要是针对那些没有一点开发经验的同学来说的,经常听到一些朋友问我怎么进入Android开发的这个行业之中,怎样可以学好Android等等问题。我个人回答都是自学,如果有一个技术比较好的同事或者朋友能稍微从旁指引(这样可能少走很多弯路),那更是一种不错的方式。

我是在2012年4月的时候就接触Android,那时候的学习资料很少,不像现在很多教学视频和各种类型的教材都有,当时就买了一本《Android开发指南》的基础教材,从头至尾讲一个项目的开发,也是从那本书开始对Android有一个初步的认识。毕业后没有及时去找相应的工作,也间断了一段时间去学习Android,直到2013年3月才找到毕业后的第一份工作,也是唯一去面试的第一家公司,也是最幸运的一个工作(在挖财开发记账理财类的App:挖财)。面试的时候真的觉得没有机会进入,当时公司就30人左右,可能介于自己的诚恳获得了技术老大的认可才拿到了offer。后续有两个技术不错的同事指导自己,一个是java方面的,另一个是Android方面的。对于其他人来说是多么羡慕,想想那时候,现在自己都在偷笑,当初的自己多么幸运。也正是结合自己的努力和同事的无私帮助,从技术上的小白到后期单独承担开发任务,在这个过程中也犯了不少的错误,有些还让同事情绪上有波动,在此真的很感谢你们,不断的包容我。这一年是我成长飞速的一年,晚上干到一两点睡觉。

呆了一年挖财之后来到北京,找了一家能提供独立开发Android的岗位,这让我更能全局把握整个项目的设计,怎样处理需求和实现之间的那种关系。

说了那么的陈年旧事,下面主要是说一下每一个阶段学习历程:

(1)Java基础阶段:介于刚开始没有java基础,同事给我推荐的是李刚老师的《疯狂Java讲义》,个人觉得特别适合初学者,里面对知识点的细致讲解,还有实际项目中的一些注意事项。如果对于有一些基础的同学,可以再看下《Java编程思想》,加深理解。我个人对于java基础主要是这两本书,可能每一个人的看法不同,也有更适合自己的书籍。

备注:对于一些自制能力差,或者学习计划不强的同学,在这建议可以下载看看毕向东老师讲解的“java基础视频”,个人觉得比较全而细的一套java入门视频教程。

(2)Android基础阶段:在熟悉了一些java基础知识后,我们开始Android方面的学习了,市面上很多教材,选择其中一本适合自己的就可以(不要看太多的书籍),我推荐的是李刚老师的《疯狂Android讲义》,根据这本的顺序学习,如果需要结合视频的话,可以看看Sunday老师的视频(这个比较适合基础再深入一些的适合看),现在在麦子学院上有完整免费版的。以上只是开始Android的入门学习,关于在学习中遇到问题是怎么去找到解决方法,个人建议是使用谷歌搜索CSDN,以及Github去查找自己所需要的demo等,另外就是要经常去查看Android Developer中东西,官网的东西权威,也提供了很多demo以及开发指南,初学者可以先好好学习一下Training以及API Guide模块花上一定的时间学习一遍,这里建议和Android疯狂讲义同步看,主要是有些同学英语水平偏差来说。另外在我们下载的SDK里面有Android各版本下提供的samples,里面有很多demo,这些都是比较好的学习资料。如果童鞋们可以很好掌握以上说的资料信息并且消化,并且在工作中或者项目实战中不断使用,至少可以达到中级水平,这个过程大概一年。

备注:

这里先不说Android的进阶学习,关于java的一些知识学习补充,这里主要要说说很多人在开始学习编程的时候,写代码都比较随意,“自成一体”,可是在公司工作当中,看到别人写的代码是多么清晰整洁,所以在我们学习编程的时候就要养成一种比较好的习惯,有好的编码规范,我个人的建议是你可以仿照Google提供的Android源代码的编码规范写代码,全局变量、局部变量,方法名,类名,接口是如何定义取名的。所谓爱美之心都有,选择了Android,那么就把自己喜欢的代码装饰的漂亮一点,这样代码可读性也会增强不少,对于后期的项目维护或者迭代开发有很大益处。

(3)Java知识进阶:这里先不说怎么Android的进阶学习,之前我们说的Java知识都是一些基础的,以便利于Android学习入门没有很大障碍。这个阶段还需要补充一些技能。通过之前的一段时间的学习,对Android开发有一定的认识了,有时候比较一下自己和大牛写的代码,差距很大,下面推荐几本书:

《重构_改善既有代码的设计》

《疯狂Java程序员的基本修养》

《编写高质量的代码-java159问》

《数据结构与算法分析(Java语言描述中文第二版)》

《Head+First设计模式(中文版)》

《设计模式之禅(第2版)》

《敏捷开发-敏捷软件开发:原则、模式与实践》

《Java多线程编程核心技术》

《Java 并发编程实战》

《JAVA网络编程》

《Java加密与解密的艺术》

《重构_改善既有代码的设计》一书给出很多前辈们总结的一些编码规范,对于提升代码编写质量有很大益处,是程序员必读之书。《疯狂Java程序员的基本素养》是讲之前基础学习阶段没有注意的一些细节做了深入的说明,看完此书可能会发现之前有些没有理解和注意之处在此书都能找到答案。《编写高质量的代码-java159问》也是对提升代码质量的良心之作。可能我们在需求好的发展,查看大公司的JD的时候总是能看到那么一条,熟悉数据结构和设计模式,因此可以看出之重要性。这里推荐学习的设计模式的书,建议先学习《Head First设计模式》一书,这边书将设计模式一书讲解的不那么枯燥无味,是设计模式学习的入门之选,也不会因为晦涩难懂而怯步不前。后面再看看《设计模式之禅》以及《敏捷开发-敏捷软件开发:原则、模式与实践》。App的使用绝大部分离不开网络,网络编程极其重要,可能有些童鞋说网上有对应的框架,拿来就可以用了,为什么还要掌握这一块内容,其实不然,商业app一般都会使用自己写的网络框架,那么就需要很好的掌握相应的知识。那么在这一部分,我们选择先了解TCP/IP,Http/Https的相关知识,另外就是推荐的这本《Java网络编程》,如果有童鞋想对网络更深入了解,建议看《TCP/IP详解》一书,有三册,里面有C语言层的代码实现讲解。多线程、并发是在java编程中涉及到比较多的一部分,在《疯狂java讲义》后的进阶学习,可以多看看《Java多线程编程核心技术》一书,书中都是作者自己写的demo,讲解细致,学习起来不太费劲,相关总结也比较到位。并发编程一书可以选择比较权威的《Java并发编程实战》。随着App数量的与日俱增,网络安全提上日程,而加密这一块显得也尤为重要,个人推荐《Java加密与解密的艺术》,介绍全面,对加密有一定的了解。

这个阶段需要静下心来,切记浮躁,因为很多东西都需要很好的理解和不断实践,切记要动手实践。

(4)Android进阶 前期的基础扎实,下面这一阶段就相对比较轻松一些。

之前去考核一些来面试的童鞋,很多对数据库这一块比较薄弱,在此推荐一本书《数据库系统概念》,以及几个网站:sqlite的官网Runoob

下面来大概分析一下Android基本有几大重要内容:

(一)UI界面设计

(二)View和ViewGroup的事件分发机制以及工作原理

(三)数据存储(Sqlite数据库编程等)

(四)四大组件(Activity、Service、Content Provider、Broadcast Receive)

(五)网络编程

(六)动画

(七)消息机制

(八)多线程编程

(九)Bitmap的加载和缓存

(十)地图开发(谷歌地图、百度地图、高德地图、ArcGis地图开发等)

(十一)蓝牙开发

(十二)Wifi编程开发

(十三)JNI和NDK开发

(十四)多媒体开发

(十五)Android与Web开发



  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jkYishon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值