任何一种移动开发生态系统其技术人员都是呈现金字塔式分布的。我借此也说说Developer和Programmer的区别:

Programmer是真正意义上的程序员,写程序的。灵魂级

Developer是码农,搬砖的,砌代码,体力活。肉体级

做Developer的感觉就仿佛行尸走肉,被工作绑架,被代码绑架,而不是驾驭代码。如果每天,你感觉自己仿佛就是一坨肉,每天把自己运到公司, 灵魂出窍式,条件反射式地CODING,然后下班又运回家,回到家你才真正解脱,真正找到自我。富士康的小弟小妹们也有同样感觉。那恭喜你,你就是一名 “Developer”。应该说,广义程序员范围内,99%都是Developer,只有1%才能称之为真正意义上的狭义的Programmer。软件行 业也越来越变成,不需要每个人都具备创造力,而只需要大量软件蓝领的行业。而Programmer也正是让软件行业保持持续创造力的灵魂力量。

其实,真正让软件行业不断往前发展,进步的应该是那些或许根本不会编程的计算机科学家,这个暂时不在这篇文章探讨的范畴。

未来软件发展的趋势,就是“Programmer驾驭Developer
普遍意义上现在中国软件行业的工程师分为以下几种

1)地板级,NULL级别

同事驱动型,这种纯粹是“鸟笼型”公司用来凑人头的,“坐台型选手”。

2)菜鸟级

Google驱动型,类库王子,API王子,浮躁型选手,一般没有网络就无法工作,极度容易陷入比较模式,喜欢在论坛和QQ聊天群里面装自己的B扯别个的蛋,又极度敏感,工作中擅长CPM模式(copy+paste+modify)。忽悠型技术人才,运气好的时候,能混到一份不错的工作。地板级和菜鸟级形成了中国程序员的主流人群,其他级别的在中国都可以称之为“非主流程序员”。

3)大哥级

官方文档驱动型,开始有独立思考抽象问题的习惯,感慨虚度了大学时光,开始喜欢写博客,有一定的归纳概括能力,能独立写程序,身边有一定数量的技术小弟。英语方面已经能初步有能力实现无障碍阅读。

4)大侠级

理论驱动型,开始对理论书籍有独特的钟爱,什么都喜欢上升到理论高度。能无障碍阅读大型开源项目的源代码,并理解其设计理念。

5)大牛级

论文驱动型,喜欢阅读论文,并随时关注前沿动态,能很容易地开发一些大型项目原型。

6)大师级

直接写出对别人有实际意义的论文,
在大陆属“稀有濒危物种”。

Android系统也是一样,在庞大的Android开发人员群体中,我认为可以由低到高分为以下四个层次:

1)应用层开发

使用java语言,基于android的框架和类库,进行应用层程序的开发。这类开发一般依赖于短期记忆,也就是我们所说的类库王子、API王子。
这类人员,只要会UI布局,熟悉常用的widget,写几个消息回调函数,鼓捣一下网络类,简单的数据库操作,会读写保存点配置信息,调用一下播放器,发
一下短消息。再用一哈比如Gallery这样外行看起来表面上比较炫的类。

这类开发人员一般自我感觉良好,比较自大,认为android开发也不过如此。这类技术门槛很低,这类开发人员中的真正的熟手和高手,是充分熟悉官方文档的,已经过了什么都去Google的阶段,达到了查什么都直接去查

http://developer.android.com/reference/packages.html  的地步。
而且在大脑中已经形成了一个官方文档的索引,查什么都能达到时间复杂度为常数的地步。充分利用好官方文档,全部类库在大脑中有比较有条路的记忆,告别了杂乱无章的短期记忆。成为了一个高级的“类库王子”。

虽然依然知其然不知其所以然,但是已经从“码农”升级为一个“高级码农”。所有的框架和高级语言技术,其实都是为了实现软件的工程化,为广大蓝领工
人准备的。这些工程技术,降低了软件开发的难度,使一些比较难的,抽象的晦涩的高级技术和概念完全对应用层开发人员透明,但是这是以牺牲一定的软件效率为
代价的。

不过还好,软件开发不是竞技比赛,不是以难度值为判断标准的,实用、经济、快速适应市场才是最重要的,同时飞速的硬件和底层基础性软件系统的研究进展,和自始至终的软件分层的思想,让一切阻挡软件工程化的障碍都不再存在。

这部分人中的大部分人,一般比较注重经济利益,有一定的经济压力。尚未把编程作为自己的一种爱好和自我实现的途径。多半感兴趣的是怎么找到一份好工
作,怎么得到一份好薪水。但是他们忽视了,从长远来看,中国的软件职场,最终的发展方向肯定不是“五分运气,三分做人,两分技术”。对于一个技术人员来
说,技术才是获得竞争优势的唯一途径。在技术上没有竞争优势,你就失去了一个技术人员的安身立命之本。

他们也推崇所谓的“实用主义”,强调“做出好产品才是王道”,但是真正的好产品,都离不开一个好的技术平台。另外不对自己实用的技术平台,有比较深入的理解,是不可能做出真正的好产品的。

2)中间层开发

中间层是为应用层提供  “Infrastructure”  基础设施。
其需要更加深厚的技术功底。不过我觉得,从应用层开发达到一定技术水平后,转到中间层或者称之为“框架层”开发的人,比一开始就坐框架层开发的人,更容易
深入。做过应用层开发的人,更有所谓的“切肤之疼”,从而更能理解一些策略和为什么的原理性的东西。使用C/C++语言,基于NDK
JNI方式的开发。需要对Android的整体框架机制和Android系统codebase非常熟悉,一般都会自己自己下载Android的系统源代
码,自己编译IMAGE,熟悉Android系统的Custom Building
System。能修改和扩展Android的框架和服务。移植和定制nativelibray 和框架
,如opencore、opengl、webkit定制一套系统的UI,制作点ROM也就是我们国内所谓的自主研发的手机操作系统。

这类开发人员一般属于稍微资深一点的,一般都有强烈的技术饥饿感,觉得自己懂的很少,不停的去提高充实自己。

3)操作系统级别的开发,系统定制

熟悉Linux驱动开发,Linux内核结构;针对特定硬件的移植。这类开发的技术含量其实和中间层开发差不太多,从某种意义上还不如。其实,驱动
开发更主要的要求需要一定的硬件知识。这类开发人员一般是各大手机厂家的开发人员,由于接触的面比较窄,技术饥饿感不如中间层开发人员。

第二,第三层的开发人员通常在国内的厂家任职,比如魅族、小米、HTC。只有这个样的厂家经过一定的技术沉淀,才会向最高层进军,中国软件行业才会做出真正意义上的自主的平台。

4)找出Android的不足,帮助Google持续改进Android
这种人是真正意义上的android程序员,他们会有选择的去阅读Android框架源代码,会认真的去阅读dalvik的源代码。自身知识结构也比较成
熟,知识面比较广。会很多上面三类人都不具有的调试和跟踪技巧。对一些操作系统和平台设计的思想和策略,了如指掌。在问题域和技术域之间左右逢源。

这些人,多半也精通其他移动平台,比如Symbian、Meego、IOS、WP甚至Windows NT, Linux  edition for Server等桌面或者服务器操作系。

转自:http://blog.csdn.net/theorytree/article/details/6649825

向昨天要经验; 向今天要结果; 向明天要动力
http://www.cnblogs.com/shaweng/p/3835325.html

Android开发的技术层次的更多相关文章

  1. Android开发之技术文章索引

    Activity: 1.PreferenceActivity Fragment: 1.fragment中套用PagerSlidingTabStrip,切换底部时viewpager消失的解决 Widge ...

  2. Android 开发 技术大纲

    大家好,  下面 是  Android 开发 的 技术大纲,  觉得 画的很好,  所以 转载过来, 这个 技术大纲 出自 “享学课堂” .

  3. 移动应用产品开发-android开发(一)

    最近公司希望增添移动开发业务,进行移动互联网开发的调研及产品需求调研. 我主要负责技术解决方案的研究,从android开发开始学习.同时跟经理一起与其他部门同事沟通了解移动开发方面的需求. 在了解an ...

  4. Android开发:为什么你的学习效率如此低,为什么你很迷茫?

    一天一天的过的真的是太快了,常常感到时间在前进,而我们还在停滞不前,看似每天努力的工作学习着,仔细想想其实又会发现,一天下来我们好像还真的什么都没干,看似忙碌的一天,我们把时间都用在哪了?学习!可是为 ...

  5. Android开发技术周报183学习记录

    Android开发技术周报183学习记录 教程 Android性能优化来龙去脉总结 记录 一.性能问题常见 内存泄漏.频繁GC.耗电问题.OOM问题. 二.导致性能问题的原因 1.人为在ui线程中做了 ...

  6. 【Bugly 技术干货】Android开发必备知识:为什么说Kotlin值得一试

    1.Hello, Kotlin Bugly 技术干货系列内容主要涉及移动开发方向,是由 Bugly邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 1. ...

  7. Android开发60条技术经验总结

    Android开发60条技术经验总结,以下是全文: 1. 全部Activity可继承自BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整体变动,一处修改到处有 ...

  8. Android 开发中的屏幕适配技术详解

    本文主要介绍Android开发中比较头疼繁琐的一个问题-屏幕适配问题.主要从适配原因.基本核心概念.适配方法等方面介详细 介绍从而是的深入或者进一步对Android屏幕适配技术的掌握和理解. 真题园网 ...

  9. Android 开发60条技术经验总结(转)

    Android 开发60条技术经验总结: 1. 全部Activity可继承自BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整体变动,一处修改到处有效. 2. ...

随机推荐

  1. 苹果会在明后年推出13寸屏iPad吗?

    摘要:苹果推大屏iPad的传闻由来已久,近日有国外媒体再次撰文称,这种大屏iPad不仅是苹果Mac继任者,同时也是Surface的有利竞争者……这真的可能吗?这只是分析师的捕风捉影,还是真有这种可能? ...

  2. freeCodeCamp:Confirm the Ending

    检查一个字符串(str)是否以指定的字符串(target)结尾. 如果是,返回true;如果不是,返回false. /*思路 字符串长度str.length等于字符串位置str.indexOf() + ...

  3. jsp页面不能使用EL表达式

    在页面中添加 <%@ page isELIgnored = "flase" %>

  4. node四大优势 转

    1. Nodejs基于Javascript语言,不用再单独新学一门陌生的语言,从而减低了学习的门槛.同时,Javascript语言在Web前端开发中至关重要,特别HTML5的应用必须要使用,所以前后台 ...

  5. Excel VBA自动添加证书(二)

    继续上次没有写完的随笔,本来是很想一次性写完的,但是到中午一点了还没有吃东西,其实饿的不行了,还好写博客时会自动保存,中间电脑实然蓝屏,花了二个多小时写的没有点击保存,吓我一下,以为会全没了. 前面讲 ...

  6. 【原创】-- tftp安装配置及使用

    环境:Ubuntu 14.04  OK6410 环境搭建: (1) $ sudo apt-get install tftp tftpd openbsd-inetd 或者安装tftp的增强版本tftp- ...

  7. (原创)defparam的应用(Verilog,CPLD/FPGA)

    1.Abstract     在同一个模块被多次例化的时候,改变参数构建不同的硬件实体是一个很好的选择.特别是今天帮一个朋友调试一个比较复杂的逻辑,深有体会.这个也是一个小技巧,回来也查了许多资料,强 ...

  8. (原创)基于MCU的频率可调,占空比可调的PWM实现(MCU,MCS-51/MSP430)

    1.Abstract     做这个是受朋友之邀,用在控制电机转动的方面.他刚好在一家好的单位实习,手头工作比较多,无暇分身,所以找我帮忙做个模型.要求很明晰,PWM的频率在0~1KHz范围内,占空比 ...

  9. 数据库知识整理<四>

    使用DML语句更改数据: 所谓DML语句是指数据库操作语句,其中包括的是对数据库数据的修改.删除.插入. 4.1添加新数据: 插入单行的记录:基本的SQL语句为-insert into <表明& ...

  10. 创建一个简单的HTTP服务(自动查找未使用的端口)

    var t = new Thread(new ThreadStart(() => { HttpListener listener = new HttpListener(); var prefix ...