如何進一步提高Android技術能力?
近日有一些小小的煩惱,覺得自己Android技術的提升到了一個瓶頸,每天很想多做事情,卻不知道做些什麼好,具體在如下幾個方面:
1.近半年為國內某世界500強公司處理問題單,做Android系統某apk的維護工作。兩個星期前開始帶著兩個人做一個小apk的新需求開發(代碼量3KLOC左右),目前項目進展良好。2.之前業餘時間將Android各種基本模塊熟悉了一遍。主要通過看一兩本Android書籍(《瘋狂Android講義》、《精通Android3》),以及學習Android SDK提供的Apidemo3.覺得自己在代碼基本素養方面有一些欠缺,所以開年以來陸續看了《JAVA學習筆記》、《代碼大全》、《重構》、《程序員修鍊之道》(正在看),等書來補充知識。4.業餘投入一些時間來學習各種增強效率的工具,如Vim、TotalCommander、Autohotkey等。目前工作中交付的任務能夠較好完成,但對於自己的個人技能發展,總覺得不甚滿意,這段時間比較迷茫。自認為應該要補充的知識還有:1.演算法能力2.系統架構 3.完整地經歷大型項目的經歷
不知是否能有朋友指點迷津,如何在技術的道路上走得更穩、更踏實,不至於因為方向錯誤耽誤了時間。萬分感謝。
個人覺著,這不是提高Android技術能力的問題,而是你想要成為一個怎樣的程序員。
單純做一些簡單的app維護,界面開發,我想需要的技術不會很多,大半年積累的技巧和知識可能已經夠用。如果你僅僅想停留在這一塊,那麼每天喝著咖啡,寫著代碼,悠然一天,很Easy的說。但是真正的程序員,我認為都是應該從底層開始學習的,這就像函數式編程和面向對象編程的區別(現在的大學,一上來,面向對象,什麼都沒學會,你就面向對象了),沒有體驗編程的本質,而只是照貓畫虎,只能成為二流的碼農。高級語言帶來便利性的同時製造了很多黑箱,一個JVM/DALVIN解決了多少內存管理的噩夢,但是一個java程序員如果要理解所寫的代碼,而不了解代碼運行的容器,可能吧,深入的java程序員都願意去看一下虛擬機的實現,會學到非常多的東西,當然這裡不是硬要讓你探究Dalvin虛擬機的實現,只是想說明底層學習的重要性。
但是Android提高的途徑其實很多,能夠把官方的文檔仔仔細細讀一遍(而非國內的Android開發速成教程),收穫會很大。其次就是了解Android系統架構方面的東西,比如消息機制,內存管理,系統層次。多寫多記錄會是提高編程能力最有效的方法,不如在Github上開一個帳戶,規定自己每周做一個有創意並且能用到自己想學習的技術,上傳,分享,交流代碼,如何?反正開源的力量就是強大,只要你足夠強,讀完源碼,你就是高手/半高手了。
計算機編程不能說什麼該學,什麼不該學,只要有助於對計算機以及編程,甚至對世界理解的東西都值得去學習,貌似這方面你要學習的還很多啊。
希望對你有幫助。提高能力在創造,不在跟隨
看了你的書單,有種煤礦工人一直努力提高挖煤效率企圖當上礦場老闆的感覺...
開發崗真的是計算機這行的底層人員啊!雖然我沒看過你看的書,不過我覺得都是提高效率類的,效率再高又不能提早下班。這是我的發展計劃,僅供參考:1. Android 內核學習(包括但不限於系統架構,系統模塊的設計與實現,代碼細節優化)2. Android 安全 (雖然安全的現在混得很苦逼,總覺得以後會逆襲!)3. 基礎理論補完計劃(再往深處研究,沒有學習響應的理論知識你根本做不下去)個人感覺你目前的編碼量太少了,多寫代碼吧,用心的寫,盡量的少copy代碼,即使同樣的演算法,也換各種不同的實現方式,細細體會其中的差異,什麼時候能寫到數十萬、數百萬行代碼,可能就能蛻變了
想想,達芬奇畫畫是從不停的畫雞蛋開始的......除了技術,也應該學學設計,比如Material Design。架構方面的話,可以參考下面這篇文章,對於如何搭建易維護易擴展的應用項目,會有些幫組的:Android項目重構之路:架構篇
一直是打工心態,不知道咋提高也,還想搞iOS,唉
樓上的是他老婆么?
我就是到這兒來表揚你下--------我真心喜歡Android,你真棒。要加油。
從你過去做過的項目中,尋找擴展,比如 app widget notification 這兩塊的內容等
其它,待定何不看看那些組件是怎麼實現的?從最低層到上層。frameworks如此之多的內容 。
計算機系畢業軟體設計方向,畢業的時候自學了三個月就開始用Android的項目作為畢業設計,跌跌碰碰,總算走了兩年Android程序開發了,這段時間進步感覺還是很明顯的,在這裡我也說說我的經驗吧。
在大學裡一個美女老師啟蒙了c語言之後,就喜歡上了編程,後來在導師的興趣培養下,喜歡上了Java的優雅,開始Android是因為那時候Java可以寫Android,並且市場上面很火爆。首先,我想說的是有了c的基礎,學Java容易多了,有了Java基礎,學Android容易多了。打好基礎十分重要,就像百層的高樓要從地基建起。Android到最後真的需要成為超級高手,最終還是要回歸到底層學習,就像前一段時間流行jni系統開發,這算一個發展方向吧。
其次,及時在應用層的開發,也有很多很多可以學習提高的地方,如果你有機會接觸到很多個不同類型的應用開發的,你會體驗到Android的魅力之所在,很多很好玩的功能,各種新鮮玩法,應驗了那就老話,只有想不到,沒有做不到。我就曾經做過,好多不同類型的APP,有注重業務的,有注重開發速度的,有注重質量的,有注重和硬體交互的,有注重用戶體驗的,有注重設計的等等。說點實在的吧:
1、多想,多想一些創意的作品我們做Android,移動應用的,最貼近市場,最容易獲得靈感,從而更容易創新,多想想,很多靈感,小的可以改變生活,大的可以開變世界,最不濟也能讓你對Android充滿了熱愛,從而提高興趣,從而提高你的Android水平2、多做,用心實現
光想了肯定是遠遠不夠的,當你按捺不住心中的那股熱火的時候,行動起來吧。以上線為目標,用心的把應用做起來,在這個過程中,學到的不止一點點。不但鍛煉了技術,做好了,更加是人生的一個成就,加油。3、多記,用筆記錄
為什麼畢業設計的時候,會要求不單單要把軟體做出來,還要寫出來?因為單單做出軟體是遠遠不夠的,人家不認可你,不懂你。所以需要文字表達,更加方便的溝通和交流。與此同時,這也是一個記錄,一個成長的記錄。就像人走在路上的一步一個腳印,一步一步的成長。我也是Android成長中一個小兵,希望在這裡做個記錄,大家一起勉勵一下,一起進步,加油。如果有需要交流的,也可以聯繫我,QQ:2291858623多關心關心新的技術吧,可以考慮看看framework的東西
從設計模式角度看Android源碼,推薦看看:《android源碼設計模式解析與實戰》
推薦閱讀:
※當 Activity 以全屏模式運行時,如何允許 Android 系統狀態欄在頂層出現,而不迫使 Activity 重新布局讓出空間?
※Android開發中在哪些場合下會需要使用AIDL?
※怎樣才能獲得編程開發的樂趣?
※怎樣著手研究 Android 源代碼?
※安卓培訓公司黑馬程序員怎麼樣?有必要參加安卓培訓嗎?可以自學嗎?
TAG:Android開發 |