程序员之路:以Android证道

大道三千,何以证道?前端

最近有私信、邮件给我咨询一些职业生涯规划的同窗,我在这里以过来人的身份给你们一些建议。程序员

任何行业,任何职位,不管高低,不管大小,均可以分为广博、精深两个方向。数据库

精深天然指的是在某一领域造诣深厚,固然也不会是对别的技术一无所知,不然就成了独腿人,岂能走得远?
广博天然指的是涉及面广,知识丰富,对各类技术都有所涉猎,固然不会是浅尝辄止的接触,所谓的全栈程序员天然属于这一类型,我自己也是这一类型的。编程

精深

首先说一下精深,做为Android程序员,所必需掌握的基础知识:
0. Java核心编程
Android的开发语言是Java,因此Java是做为一名Android程序员所必须掌握的。
我这里推荐几本书,Think in Java(Java编程思想)、Core Java(Java核心技术)、Effective Java,看过这三本书,你的Java技术就至关有保障了。性能优化

1. Android基础知识
Android四大组件及生命周期
Layout布局方式
各类控件的使用方式
Activity间传值、Activity与Fragment间传值
不一样分辨率的界面适配
事件及回调机制
本地数据存储
HTTP访问网络
Widget的使用
针对各个Android版本的适配前端框架

2. 进阶
adb命令的使用
Activity、Service、Broadcaster互相调用
通知栏Notification的使用
Alarm的使用
SMS的使用
线程的使用
Handler消息机制
AsyncTask异步调用机制
Intent、Intent-filter的使用
使用自定义style、theme、drawable等方式美化界面
动画效果的使用
硬件调用,摄像头、录音、录像、地理位置
APP版本升级、本地数据库版本升级
音频、视频处理
自定义布局、界面
WebView的使用以及WebView和本地代码间通信
各类第三方类库的使用
各类第三方平台的使用网络

3. 高阶
2D/3D图形应用
传感器的使用
蓝牙、NFC等的使用
性能优化
NDK的使用
Framework层修改
自定义ROM
适配Android系统到不一样的硬件设备前端工程师

我我的认为,
基础阶段能够制做出能用的功能简单的APP、这是一个普通开发人员所必须掌握的;
进阶阶段能够制做出好用的能吸引人的APP、这是一个技术负责人所必须掌握的;
高阶阶段则能够制做出MIUI这样的系统级别的框架了;更能够进军眼下火热的智能家居、智能眼镜行业了。这是一个技术总监所应具备的素质。框架

 

广博

若是你要是想走广博这条路,那么会有不少新奇的、好玩的技术等着你。异步

可是首先,你要达到Android进阶水准,不然就不要自称是Android程序员了。
当你达到了进阶水准后,你的兴趣可能就不只仅止于Android,可能你对iOS有兴趣,对服务端开发有兴趣,对Web开发有兴趣,对HTML5开发有兴趣,对设计有兴趣,对游戏开发有兴趣,等等等等,我这里对每个方面都作一些简单介绍吧。

iOS:
iOS和Android就是一对儿双胞胎,不少人在作了一段时间的Android开发后,或者作了一段时间的iOS开发后,都想学学对方的技术。
我的认为iOS的学习曲线较Android要高,学习成本也较大,苹果三件套是必备的,不过iOS开发真的很火呀,并且开发出来的APP美观度比Android不知道高到哪里去了。

服务端:
Android APP是客户端,那么对于大多数的APP来讲,是须要服务端提供服务、数据之类的,那么现今流行的服务端有哪些语言呢?
首推Java,Java的框架多呀,开发快呀,资料多呀,像SSH、Spring MVC、Jfinal、ofBiz呀,这些都是很流行的框架,我这里推荐Jfinal,典型的快速开发框架。
其余像Python的Django、Ruby on Rails、ThinkPhp等都是动态语言Web框架的经典,能够根据各自兴趣着重学习一种。
最不推荐的就是.Net,虽然VS很强大,WebService也很不错,可是我的认为不像Java那么规范,也不像动态语言那么快速,最不喜欢.Net框架,我的偏好而已。

前端:
我把前端技术定义为HTML(5)、CSS(3)、JS等这些技术的合并体,网页所最终呈现出来的效果都是由咱们的前端工程师完成的。
并且如今有很是多的前端框架,像Bootstrap、JQuery UI、Semantic UI、NEJ、Pure UI、Amaze UI等等,都是如今很流行的框架,你们能够学习学习。

设计:
我认为的设计分为交互设计、视觉设计,
视觉设计确定要掌握Photoshop之类的设计工具,而且有必定的美感(这个就仁者见仁了),
交互设计是如今设计中很须要强调的一部分,不少网站、APP外观看起来也不错,可是实际使用就感受有些别扭,不尽如人意,那就是交互设计有缺陷。
一个经典问题:弹出框的[肯定][取消]按钮,iOS默认肯定在右,Android默认肯定在左,那么若是你是一个交互设计师,你的APP须要同时在两个平台发布,这个按钮你应该如何设计呢?

游戏:
如今游戏也是多种多样,页游、端游、手游一波一波的,我这里只对手游有过了解,因此只说说这一部分。
手游如今国内最火的框架就是cocos2d了,支持多种平台,并且有不少的资源能够参考;
另外像Unity、OGEngine、AndEngine、LGame、也都是不错框架。

等你掌握了以上这些技术以后,你就是一个典型的全栈工程师了,从设计到开发到运营你均可以胜任,这个时候,你就能够跟老板说:我能够干五我的的活,只要三我的的工资了。
更能够在家Soho了,做为自由职业者,或者创业也都是不错的选择的。

看到这里,你确定已经有了本身的选择了。

我我的的见解是,走本身的路,让别人说去吧。

本文章系本人原创,如需转载,请注明出处 www.liuzhibang.cn

相关文章
相关标签/搜索