前言:

今天在这里我也是斗胆写写这几年自己在android方面的一点感受,也是为了刚进入android大门的学弟们一点点建议,有个大体方向吧。先说智能手机吧,有谁知道最早的智能手机是什么时候,可能答案不一,这个也无从定论。有的说93年,有的说03年。。。等等,这个不是重点,那android手机最早是啥呢,想必大家都知道,算是里程碑的日子应该在08年。最早有google开发,后边其实是交给手持设备联盟开发。这将近10年了。android也在不断的更新版本,这10年带动了移动客户端方面的大批程序员涌现。都是一步步走过来的,从菜鸟到所谓的高级程序员。我就自身简单说说我的android学习历程吧。

工作经验:

其实啊,谁都不敢说我看了两天就拍着胸脯说我会android了。我看了三天ios,就说我会做ios了,那样的人大有人在,搞个webview,信誓旦旦的说android不过如此,我搞后台的都能做,凭什么android工资待遇比我高,等等。这个待遇高不高暂且不论,有的是烧钱,有的确实是实力在那。我们从菜鸟到熟悉到基本精通,记住是基本精通,等等,都会有这么个历程,android如此,ios如此,php,python亦如此。我从事android5年,经历了android的很多提升。也遇到过一些“闲言蜚语”:比如h5替代android和ios啦,小程序要断了android和ios饭碗啦等等,其实你觉得真能替代吗,现在android已经深入各行各业了,处处都有android的存在。我也参加过android的许多讲座,确实也见过很多大牛,我们只有不断的提升自身实力,才能在当今大环境下占有一席之地。如果你觉得你有算法天赋,逻辑思维强,又偏爱游戏,建议你们考虑考虑游戏方向,我在畅游时,天龙八部团队据说奖金1亿,前段时间看新闻,王者荣耀奖金也很丰厚。移动应用,工具类,游戏类,领域很多很多,找到适合自己的,坚持做下去,时间会给你回报的。下面就我自身的成长历程,说说android的学习路线,给初学者一个参考吧。

Android初级:

我面试考生时,基本都会问些基础,即使你简历写的三年五年我也会问,相信大部分面试官都是如此。可能有人说现在培训班这么多,我简单学几个月就可以面试高级程序员,的确,填鸭式教学在当今急躁的互联网行业很普遍,但随着移动互联网的高烧退去,会有一大批这样的人无所适从。因为成为一名高级程序员,不是简单几个月培训就搞定的。还是那句话一定要提升自身实力。我个人认为,选择android,对java要有一定功底吧,所以java是基础,java的基础不仅仅是能用,还要理解原理,比如map的底层实现,链表,动态代理,反射等等,你自己想想你号称高级程序员,是否真的理解透了,数据结构是否了解,算法是否有所优化,C/C++是否还会写,如果不会写,用到JNI时是否还要现学呢。再说android,布局,四大组件,fragment等是否熟练掌握,如果这些都需要百度,google一大堆,那跟不懂android有啥区别呢。当然长时间不写,偶尔查查资料,文档很正常,但不要有啥问题都去查百度。建议大家多写写博客,我开始就觉得没必要写,但对我这种记忆力一般的人来说,多写写还是有好处的。啥时候写都不晚,有人推荐看书,比如李刚的《android疯狂讲义》,以及博客大牛的《第一行代码 android》。这都是不错的android基础书,当然我建议看官方文档,有人说看英文好,这个确实是,原汁原味,但入门嘛,看看翻译版的也可以,因为你看着费劲,还怎么入门。我是习惯先demo,在深入研究,可能跟好多人思想相反,还有动画啦,布局工具查看,开发工具都是必备的,工欲善其事必先利其器嘛。当初我心气也傲,我就不适用一些工具,后来发现身边众多大牛都是善于利用工具的,有时候要善假于物。基本的掌握了初级的,开发是没有问题的。能正常开发app了。

简单总结就是:Java基础,android基础,包括四大组件,以及fragment,基础动画,简单自定义view,开发工具,布局等。

Android中级:

现在你已经达到了初级水平,那你不能仅仅只能开发啊,你也得有理想不是,这时候随着你工作经验的增多,遇到的问题也越来越多。也积累了一定的处理问题的能力和方法。这时候你已经可以适当挑大梁,独立完成模块开发了。但平时肯定各种疑难问题很多:比如fragment与activity的正常交互,自定义类的looper的使用,不同进程间的通信,又比如listview嵌套scrollview等等,当你解决掉这些问题,你还要深究其中原理,就比如说的滑动嵌套的,为啥会出现滑动卡顿,其实listview和scrollview都有滑动的原理,到底谁先滑动,你又想让谁先滑动,这些已经涉及滑动事件问题了。滑动事件又是怎么个流程,一层一层的剥开,真正理解了,恍然大悟,大牛与普通程序员的区别就在于,大牛知道根源,普通程序员只知道找资料解决,但下次遇到依然还是不知内因。所以在这个阶段,你要开始逐步探究内在原理。

说几个点吧:view的滑动原理,android的事件传递,aidl通信,Binder机制,自定义View的深入研究等。。这时候有什么捷径吗,我告诉你不要相信什么捷径,多看源码多看源码还是多看源码,书籍我看的是任玉刚大牛的《Android开发艺术探索》。

Android高级:

上边说了,现在是个培训班出来的,或是干过一两年的,都敢说自己是高级程序员,当然这里不乏大牛在,可真正大牛是很低调的,因为他们心里只有程序,我一个同学,曾经两周没和后边同事交流过,就是编程,这种有点夸张,但这样的人的确大有人在,似乎生活了除了代码没别的,在我们掌握了达到了中级水平后,我们可能现在公司职位也有一定变化,比如技术负责人,这时候你不的责任感推动了你学习的劲头,这时候就要开始了解android额内部机制,比如AMS和PMS的工作原理,消息循环模型,System server的启动过程等等。还有就是架构设计层面。其实android里处处体现这设计模式,比如Listview的适配器模式,Dialog的建造者模式等等。架构这个东西其实很抽象,但设计模式很具体,我们要加强设计模式的学习。

至于书籍,建议看看《Android内核剖析》

上边的从初级到高级,一步一步稳步提升,如果不是超级有天赋,不要幻想短时间就达到。有人说什么算是资深程序员,专家级别的程序员,这个各有各的观点,这需要在某个领域有更深入的专研了。这个不仅仅局限在android这一方面了。学无止境吧。


上边只是我这么多年的一点看法,自己一定要对自己有了解,才能去更好的为自己量身定做学习计划,让自己在当前大环境下,找到适合自己的位置。

更多相关文章

  1. 研究一下Android滑屏的功能的原理,及scrollTo和scrollBy两个方法
  2. 设计模式-Handler的机制和原理&责任链模式的最佳实践
  3. 我是如何自学成为程序员的
  4. Android Scroll详解(一):基础知识
  5. Handler的工作原理(一)Handler的使用
  6. **Android** 基础(一)
  7. Android 热修复核心原理,ClassLoader类加载
  8. android基础知识02——线程安全3:Message,MessageQueue,Handler,Loop
  9. Android中实现滑动(上)----基础知识

随机推荐

  1. 布局资源(layout)的简单使用
  2. Android中Style和Theme的使用总结
  3. Android高手进阶教程(二)之----Android(
  4. Chris:怎样成为一名Android应用开发者
  5. Android中几种图像特效处理的集锦!!
  6. Android的图表世界–如何使用MPAndroidCh
  7. Android和H5互调案例基础详解
  8. Android实战技巧:使用原始资源文件
  9. Android(安卓)开发艺术探索笔记之七 -- A
  10. Android(安卓)控件开发之ImageButton