程序員之路:以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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM