Android初學者的疑惑與“死板”的Android初學之路

許佳佳233發表於2016-06-12

今天11點多的時候重新整理了一下自己的部落格,發現已經被CSDN授予了“部落格專家”稱號。作為一個自學的一年多的大二學生來講,這對我真是莫大的鼓勵,真是感謝CSDN!在此,也是分享一下自己的經歷,希望能夠給初學者以及後輩們一些幫助。

(右圖為讀者目前知識樹)

   


個人經歷:

專業:

普通本一電腦科學與技術專業(沒有開設Android課,自學)

大一上:

學校ACM OJ刷300+道題(僅認為演算法重要,並沒有參加學校ACM打比賽),同時也開始瞭解考研與工作的區別等,完成大學四年大致規劃。

大一下:

加入學校技術組織,開始學習Android,並且確定Android為自己將來要走的路。

大二上至今:

進入學院實驗室,跟著導師做專案(專案都有關物聯網,軟硬結合)。獨自負責兩個專案的Android客戶端,另外也學習了寫文件,團隊交流等等。

 

在開發群交流的時候,經常會有一些初學者問我這樣一個問題“為什麼你大一下就開始自學Android了,基礎夠嗎,沒有java基礎怎麼學”。

1、筆者大一下的時候就開設了C++專業課,並且學的不錯,瞭解了OOP思想後,其實入門Android並不難。當然也是碰到了許多JAVA上的問題,比如java與c之間socket通訊,java的split(),java串的處理等。這些知識其實都是實際專案中經常涉及的,只是可能每門語言上處理都不太一樣,碰到一點學一點基本是沒有問題的。

如果讀者和筆者經歷一樣(C#,JAVA,C++等都是OOP思想),並且已經確定了Android的興趣,不要猶豫,直接開始學吧。你的畏懼只會把你的熱情磨損殆盡。

當然,如果是完全程式設計零基礎的讀者,筆者還是推薦先學習一下JAVA。直接學習、跨度太大會讓自己有很大的挫敗感。

2、技術的學習,我認為沒有學歷、年齡的界限。在技術界真的不乏一些年少的天才(筆者和他們相差甚遠),他們開始學習的時候難道去思考“自己沒有XX基礎,學習會不會遇到瓶頸”之類的問題嗎?

有興趣即可,遇到問題就去解決啊。


下面就是一些乾貨了。

網上其實已經有一些比較厲害的前輩些的Android學習的路線了。在此推薦兩篇。

Stormzhang Android學習之路

任玉剛 Android學習路線指南


為何再寫“Android學習之路”?

雖然對於有經驗的讀者來講,技術學習已有自己的“套路”,但是對於新手,部落格中巨多的知識點往往會讓其產生畏懼,新手更偏愛於“死板”的學習路線,即“非野路子”,可效仿的學習之路


筆者僅以自身經歷總結,讀者選擇借鑑。

一、刷書,至少學完一本書。(理解書上每一個知識點,而不是僅僅看過)

推薦《第一行程式碼》、《Android瘋狂講義》、《Android程式設計權威指南》。

《第一行程式碼》是最適合新手學習Android的書籍,至少此時看來沒有之一。不過《第一行程式碼》是基於Android4的,第一版出版時間為2014年8月,第二版還沒出。由於官方API的改動,書中的一些知識點現在看來不乏有錯誤的地方。但是瑕不掩瑜,其通俗易懂和知識點的豐富還是深受讀者好評。

《Android瘋狂講義》和《Android程式設計權威指南》在筆者看來可以作為學完《第一行程式碼》後的深化,這兩本書能夠繼續幫你擴充套件知識面,選其一即可。當然,學習能力強的讀者不學習《第一行程式碼》直接選擇這兩本書也完全是可以的。

二、做專案。

關於做專案的好處,筆者已經在另一篇部落格中講到過了,在此也不復制貼上增加篇幅,有興趣的讀者可以自己看一下:

android 第一個專案完成! 階段總結

在學完一本書後就完全可以開始做專案了,不過也是得邊做邊學新的知識點。

科班大學生可以與筆者一樣考慮進入學院實驗室,這個也不多說,基本你願意學,肯努力,去找導師談一下,導師就會收下你。不過,進實驗室也並意味不了什麼,還是要自己學,導師基本只有在覺得你能力夠的時候才會給你專案做。

那麼沒有這樣的資源怎麼辦呢?靠自己也完全沒有問題,可以仿照網上一些APP自己做,遇到不會的知識點就自己去學習。比如新浪微博,知乎日報等都是新手經常仿寫的一些APP。

在做專案的時候讀者一定要時刻記得,這是一個自我提高的方式,千萬不要“為了做專案而做專案”。每遇到一個不會的知識點,都應該值得慶幸,因為這正是你做專案的意義所在,當你一個個克服這些的時候,就是自我提高了。

三、當做完一兩個專案,讀者應該已經有自己自學的一些心得了。這時候的自我提高就會顯得比較靈活了,可以是書籍、也可以是大牛部落格、也可以官方文件。

官方文件:筆者很認同一句話:“官方文件是最好的教科書”,但是並不適合新手直接學,筆者建議有能力的讀者一定要學習一遍官方training。很多大牛部落格中為了將某些知識點容易讓人理解,可能會產生讓讀者誤解的情況。但是官方文件不會,其中都是規範的解釋,而且不會錯。另外,看官方文件往往也會讓讀者有一些驚喜,官方詳細的解釋會解釋讀者心中的很多疑問。

中文官方training:http://hukai.me/android-training-course-in-chinese/basics/index.html

 

書籍推薦:《Android群英傳》、《Android開發藝術探索》、《APP研發錄》。

要點:這時候大家學習,就不需要和入門時一樣了搞懂所有的知識點了。(不過程式間通訊,圖片快取,訊息處理,執行緒之類,事物分發機制等等,這些還是需要都懂的,屬於基礎。但是可以根據需要決定學習先後。)

一方面,Android如此龐大的一個作業系統,你要去學會所有的東西談何容易。更何況谷歌公司也是在不斷更新Android,不斷推出新的版本,廢棄舊的用法,如果僅僅學習一些表面的東西,那麼不僅自己疲於奔命,更是故步自封。學習可以更偏向於原理方面的。

另一方面,每個人的工作需求和個人方向不同。有的開發者偏向於動畫製作,有的偏向於快取處理,有的偏向於View的繪製等。個人的精力是有限的,所有的都要學會基本是不可能的,但是在學習中培養出的學習能力和學習經驗是不會變的。一些表面的或者簡單的框架,採用“用到什麼就去學什麼”的方法完全是可以的。

 

最後,也是推薦新手都可以寫一下部落格,這點也是筆者受益匪淺的。一方面,能在前進的過程中通過寫部落格獲得一定的成就感,另一方面,寫部落格本身也是對自我的知識樹的一個整理。

筆者對寫部落格的一些看法:對系統學習與寫部落格的看法——學完《第一行程式碼》有感

 

相關文章