我的學習之路
# 我的學習之路
今天不談技術,來跟大家聊一聊這幾年的開發之路,希望以自身的經歷,向各位開發者拋磚引玉,少走彎路。首先自我介紹下,我是徐宜生,《Android群英傳》和《Android群英傳:神兵利器》的作者,慕課網Android講師,CSDN博客專家,樂於分享,熱愛技術。下面是我的微信公眾號,歡迎大家關注。
http://weixin.qq.com/r/uUhCWgLESF83rUY59x2r (二維碼自動識別)
## 初學
當我在讀大三的時候,Android才剛剛嶄露頭角,那時候我還在學習J2EE,而且算是比較努力,J2EE學的挺賣力,以至於做了幾個小網站、小系統,後來逐漸接觸到了Android,記得當時是導師準備做一個學院的信息推送系統,類似於現在的極光、個推一樣。還記得當時借用了國外比較成熟的Androidpn框架,也就是基於XMPP的Android Push Notification,一上來就搞這麼高級的東西,我也一下子就蒙逼了,但實際上還好,這是一個比較成熟的框架,從服務端到客戶端,都有比較完整的實現,我們也是在此基礎上進行一些定製和修改。
也不知道是不是因為這個原因,我現在還和推送有著不解之緣,維護著公司的PushSDK。正是當年的這個項目,讓我第一次了解了Android,從最開始在模擬器上運行Androidpn的Demo,到後來修改Demo定製一些簡單的頁面,我越來越覺得Android確實是一個非常好的學習方向,甚至一度想放棄J2EE來專攻Android,然後,我最終還是在大學與Android擦肩而過,原因竟然是因為我經過一段時間的學習,將Android的基礎知識全部看了一遍,感覺並沒有什麼太高深的東西,不像J2EE,各種框架,各種概念,實在太沒有挑戰了,於是,我就選擇了將畢業設計作為Android的謝幕演出,花了兩個禮拜,邊實習,邊開發,完成了我的第一個獨立的Android項目——一個簡單的圖像處理App。這個App可以調整圖像的色彩參數,甚至添加一些特效、拼接等等功能,簡直就是一個簡陋版的美圖秀秀,以至於我後面在慕課網錄了兩節課,專門就講圖像處理!至此,我的Android生涯差點結束,並在畢業後跳入了J2EE的火坑。
>甚至因此錯過了與stormzhang共事的機會,因為那個時候薄荷在我們學校招聘,只因為我看不起Android,而沒有去薄荷工作,如果上天再給我一次選擇的機會,我還是會選擇放棄薄荷的Android機會,因為這樣我就遇不到我老婆了!!!
## 轉行
說J2EE是火坑是有點過分,實際上,是指對日的J2EE,跟我大學時想像的完全不一樣,何止是沒有挑戰,簡直是毫無挑戰,比Android還不如,小日本把所有的功能都封裝起來了,做成了一個龐大的SDK,我們只需要簡單的按照式樣書進行調用即可,甚至你都不能對小日本寫的代碼進行優化,必須完完整整的Copy,對我這樣的人來說,簡直是對智商的侮辱,這樣的日子,簡直是無聊透頂,以至於經過一年多的煎熬後,我毅然決然的跳出了這個火坑,不過,現在我倒是很感激這段時光,因為在這段時間裡,我有了充分的時間來學習自己想學的東西,對,也就是我曾經一度拋棄的Android!!!我又把它撿了回來,因為自從我拋棄他以來,他就飛速的發展,估計是想重新引起我的注意吧,不過,他很成功的引起了我的注意,經過一段時間的思考,我毅然決然的放棄了J2EE的學習,而是轉向Android開發的學習。另外,時間多了閑著蛋疼,多出了很多健身的機會,從而可以在現在同事各種背不好,腿不好的情況下,還能笑看雲淡風輕,雖然現在不鍛煉了,導致體重不斷飆升,但至少這段時間打下的底子,至少讓我能夠多干20年。而且,這段時間還學了日語,偶爾還能在小電影前面會心一笑,そうですね~不管如何,也算是多點了一個技能點吧,當然,最重要的,還是遇到了我的女朋友,也是現在的老婆,是真的老婆,不是充氣的,也不是二進位的。所以,幹了這碗雞湯,生活中的每一段時光都是獨一無二的。
>總結下乾貨,在這段時間裡,雖然我沒有從事專職的Android開發,但是,在業餘時間,我通過自學掌握了大部分的Android基礎知識,我的CSDN博客也是在自學過程中對知識的積累、記錄而產生的。總的說,自學Android,並不是什麼難事,找一本講Android基礎比較全面的書,一本就夠了,其它的東西,在網上都可以找到各種知識來完善,所以,先學基礎知識點,再通過網路知識來進行完善,就是我的學習方法,另外,跟所有人說的一樣,敲代碼才是檢驗知識的唯一標準!!!
真羨慕你們現在的人,有多少Android開發的書可以選擇,特別是我的《Android群英傳》,要知道,我那個時候,壓根就沒有很多Android開發的書籍,特別是大學那會,要學一個東西,除了看英文文檔,就是看源碼,完全就是兩眼一抹黑,現在是學習技術的好時代,真的。在這本書中,我總結了學習的方法和Android進階的必知必會的知識點,我的初衷是想通過這些知識點的學習,教會大家如何去學習、如何去歸納、整理知識點,從而建立自己的學習體系,幫助開發者建立這個體系,才是這本書最大的願景。讀者可以通過這本書的學習,快速掌握Android開發進階的技巧,在最短的時間內,突破學習的瓶頸期。
http://item.jd.com/11758334.html (二維碼自動識別)
## 進階
在我決定離開J2EE這個火坑後,就準備求職Android開發了,可事實確實很殘酷,因為我確實沒有實際的Android開發經驗,很多公司都不肯要我,即使我筆試、面試的題目都答出來了,但最後總會告訴你,由於沒有Android實際的工作經驗,我們不能錄取你,特別是某個賣酒店、機票、旅遊的公司,我想跟你說,你現在來求我,我都不會去了,辣雞。最後,在TCL碰到了一位伯樂,毅然接受了我這個沒有任何Android開發經驗的人,事實證明,他的選擇是正確的,至少證明了他看人是準確的。到了TCL,被安排在了Framework Team,我想說,這是我當時工作以來,最好的Team,以至於現在跟他們都還保持著比較密切的聯繫,甚至在離職時,真的有種說不出的難受。雖然現在他們很多人都去了不同的地方,但那段時間,是我技術成長最快的階段。這段時間,也真的是陰差陽錯,有種令狐沖困在西湖底,莫名其妙學會了吸星大法,張無忌掉下懸崖卻撿了九陽神功的感覺,我本來是做App開發的,基礎已經打的比較紮實了,對原理卻並不是非常了解,結果來了Framework Team,天天和底層打交道,而且還有一些比較牛逼的同事,能夠隨時解答你的疑惑,簡直比Google還快0.5秒,也正是這段時間,我突破了自己的第一個小宇宙,真正的了解了Android的主要實現機制和底層實現,最重要的是,掌握了分析、解決問題的方法,這也是我在《Android群英傳》一書中一直強調的一點。知識是學不完的,掌握學習知識的方法,才是最重要的。
>再總結下,初學者真的沒有必要過度的掌握源碼,先了解使用的方法,才能在後面進階的時候遊刃有餘,基礎不打好,一味的通過看源碼,只會適得其反。當然,當你基礎打到一定程度,一定要去了解實現的原理,不然一樣是之後原地踏步,而不能站著高級層面來看問題,就好像三體中的降維攻擊——二向箔,再低的三維也比你最牛逼的二維叼!
## 繼續提高
如果不是傳統行業的低迷,我或許也不會離開TCL,迫於生活的壓力,只能尋求互聯網行業。經過一番風雨,這時候的我,已經像進化了的超級賽亞人,不再像以前那樣沒有自信了,畢竟Android基礎紮實,有業餘實現的小項目,有了一本著作,是慕課網Android講師,還是CSDN的博客專家,這些光環,確實在我面試的時候帶來了一些便利,最終進入了滬江,注意是滬江不是盧江,也不是長江!進入滬江後,同樣遇到了一群非常贊的同事,很感謝他們對我成長的幫助,在這裡,我了解了很多實際項目中的架構和技術,這些是我一直以來最欠缺的,同時,我也希望分享自己的技術,來讓各位一起提高,這確實是一個互利互作的時光。好了,進階之路暫時寫到這,後面還可以慢慢聊。
一不小心寫了這麼多,確實是自己的感悟,現在的時代,真是學習的好時代,有前人的經驗,少走多少彎路,看看現在94年的朋友、高二的朋友都已經Android玩的飛起了,自己都這麼大歲數了,唉,好好學習吧。另外,最近我的第二本新書《Android群英傳:神兵利器》已經上市了,寫這本書的原因是,由於第一本書的篇幅限制和主題限制,有一些原本想寫在第一本書裡面的內容,在主編的建議下,放到了新書《Android群英傳:神兵利器》中,如果說第一本書是幫助開發者建立知識體系架構,那麼第二本書,就是幫助開發者通過工具來快速提高自己的開發能力,甚至說不僅僅是開發者,整個IT從業人員,例如測試工程師,也能從中獲得很多東西,特別是對於性能測試的內容,已經平時的一些開發、測試工具。我希望通過這本書,讓讀者能夠利用工具,快速完成平時的工作,從而有更多的時間來學習、總結,甚至,希望讀者能夠開發自己的工具來提高開發效率。
http://item.jd.com/11948837.html (二維碼自動識別)
推薦閱讀:
※Android主流框架面試要點(一)
※Android學習筆記之StudyJams篇——一、 Building Layouts
TAG:Android學習 |