Android開發學習應該先學什麼?
04-01
1.應該先學知識點嗎?2.不看書那應該先寫代碼?3.書是幹什麼用的?4.不看書也不先寫代碼難道要去山東找藍翔嗎?5.讀別人的代碼應該怎麼讀?
6.讀別人的Android代碼應該怎麼讀?
7.為毛要讀別人的代碼?8.讀到什麼時候能學會?9.java設計模式應該學好么?----------------------------1.應該先學知識點嗎?個人經驗表明,學編程,最開始拿一個月先學知識點或者只學知識點,基本就等於沒學。於是你發現你很努力的看了一個月的書,還是什麼都不會寫,或者寫出來了一坨bug都不知道怎麼改,終於你放棄治療了。當然,骨骼清奇的可能21天精通C++,然後媽媽再也不用擔心他的編程了。人跟人的情況不一樣,所以這裡不是絕對的,但是我覺得對樓主的情況還是比較符合的。2.不看書那應該先寫代碼?你發現,你不看書,完了直接寫代碼又什麼都不會,於是你表示要先學代碼,完了你又懵了,先學代碼怎麼學?很多人又跑去看書了。。額,接下來發生了什麼,這裡參見第一條。3.書是幹什麼用的?我覺得書更多的時候就是參考文檔,就Android來說,誰最懂Android?當然是谷歌,那麼問題來了,參考文檔哪家強?不找官方文檔你還要去找藍翔么?https://developer.android.com/guide/index.html
至於其他的中文書,我覺得很多都夾雜了個人的見解,初學者慎入,不然很容易接觸不到原汁原味的理念和思想。如果覺得英文的官方文檔很蛋疼,看看翻譯過來的中文版也可以。4.不看書也不先寫代碼難道要去山東找藍翔嗎?如果你發現你學了一個月,看了一個月的書,還是什麼都不會,那接下來你要麼放棄治療,要麼吃口葯開始從別人的代碼讀起來啊。那麼問題來了?別人的代碼哪家強?不找官方的demo你還要去山東找藍翔么?android.com 的頁面當然以上我提到的所有界面你如果不翻牆,可能都打不開,看著一坨無法連接可能你還會有一種要去山東找藍翔的趕腳,不過不用怕, GitHub · Build software better, together.你值得擁有。其實這裡說的就是題主說的,在應用中學習,但是在應用中學習的方式也是有區別的。5.讀別人的代碼應該怎麼讀?如何讀別人的代碼我寫過一篇自我體會的博客,如何閱讀別人的代碼,自知水平一般,大神就不用點了。6.讀別人的Android代碼應該怎麼讀?注意千萬別上來就一個一個文件地通讀,相信我,其實不用相信我你也會發現根本讀不明白的。什麼?讀當然要讀明白才有用啊?廢話,你丫直接通讀就能讀明白了還讀他幹啥。其實讀什麼代碼都先得搞明白數據的走向,具體到Android身上,他是有MVC層的。
View層在Android里其實就是傳說中讓無數開發人員蛋疼菊緊,聞風色變的UI適配,具體講就是res/layout/.xml那堆東西。Model跟Controller層就是.java了。這個分的不是很清楚,你可以自己作區分。說通俗點你要懂得:前端的一個數據用戶輸入進去,你要在後台如何獲取到。你後台的一個數據,如果反饋給前端。做到這你會了點毛?你發現你毛都不會,但是這個時候其實你已經知道部分Android的文件夾之間是幹什麼的,之間是如何協作的。什麼?你說你還是沒看懂啊,在心裡問自己bin文件夾里是啥?res/layout以外的文件夾是啥?大聲的對自己吼一句:勞資怎麼知道,我又沒用到那呢。不要再問搞不明白怎麼往下學了?你剛開始的時候知道res/layout是幹什麼的嗎?那現在呢?7.為毛要讀別人的代碼?
寫代碼的最終目的是執行,所以你從一個能執行的程序開始,能很快的驗證自己的學習到底對不對。什麼?你問我怎麼驗證?你改了以後他成功跑出了結果就說明你學的是對的啊。跑錯了顯然就是錯的。別人的代碼好處就在於他都寫好了,雖然你毛都看不懂。但是他能順暢地跑起來。當然,除了用了你的電腦編譯器編譯了下,再用了你的手機安裝呈現了以下,現在這事跟你半毛錢關係都沒有。但是你可以輸出啊親,這時候你必須給自己壯壯士氣:「尼瑪勞資雖然還不會Android,但是改個String值還是會的。」 所以你成功的將前台textView里的「A」改成了「B」。雖然你完全不知道發生了什麼。但其實你已經知道數據輸出到前台的最後一步是什麼了。搞到這,你可以裝逼點說自己已經入門了。雖然你還是不懂別人的那坨代碼。但是你已經潛意識地把代碼細化到了某個點上開始逐個突破了。8.讀到什麼時候能學會?讀啊,接著讀,再接下來呢?接下來就是按需學習了啊。比如你想加個按鈕,你就可以搜一下Android button的東西看一看,然後發現了xml里的<button />和java里的findViewById,setOnclickListener().比如你想向用戶顯示一些幫助/提示.於是你發現了Toast這個玩意。什麼?別人問你什麼是Service,告訴他:「勞資不是不會Android,勞資壓根沒用到過那東西,要學的東西這麼多,我現在還用不著先學他幹啥。」
比如你....若干個比如以後你發現,我湊,勞資當年改String值的時候怎麼會覺得findViewById這個鬼函數這麼難。再若干個比如以後你發現,尼瑪,勞資什麼時候學會的Android?9.java設計模式應該學好么?有人問,java設計模式應該學好么。稍微聊聊我的感受吧。首先,我也是個入坑不久的新手,純屬個人感受,歡迎參考交流指教,大神勿噴。我最開始寫代碼的時候,聽說過一個詞叫做代碼風格。後來又聽到了一個詞叫設計模式。我當時的感受你造嗎?!設計模式,雖然不知道是啥,但是好高大上的趕腳!就好像一個不懂但想學代碼的傢伙突然聽到身邊的人淡定地說了句,
「你printf出來看看結果」一樣,恨不得跪下來求他收我為徒吧思密達!於是跑去看了看書,於是還有模有樣的學了幾個設計模式,但是後來我突然有了一種感覺:這什麼時候用?尼瑪這又什麼時候用?誒我湊這到底該什麼時候用?看到最後產生了一種程序猿不適合我,要去山東藍翔學挖掘機謀生的衝動。最終放棄了。後來?後來我開始寫一些代碼。後來我越來越覺得不順手,越來越覺得自己的代碼寫的像一坨翔。
於是我頭疼如何能更好的組織代碼結構的時候,我發現,尼瑪MVC模式還有點意思啊。於是我頭疼如何在不同的地方調用同一個類卻執行不同的方法內容時,我發現,尼瑪回調原來這麼好用。於是我突然發現,原來設計模式還有點意思啊,勞資看來不用去山東找藍翔了23333333.其實,我認為,沒有用到的時候你是無法確認他是不是好的,就算大家都說他很好,你沒用到也體會不到,既然體會不到,那你就無法確定學了它該如何正確的使用,用了有什麼好處,不用會有什麼後果,所以我覺得,當你發現你的代碼再寫下去就要成一坨翔的時候,才是該反思去學的時候。當然,這樣的試錯成本也是很高的。我當然也因此肉痛過。至於如何低成本的學習,額,多寫代碼吧。以上。
推薦閱讀: