今天不談技術,來跟你們聊一聊這幾年的開發之路,但願以自身的經歷,向各位開發者拋磚引玉,少走彎路。首先自我介紹下,我是徐宜生,《Android羣英傳》和《Android羣英傳:神兵利器》的做者,慕課網Android講師,CSDN博客專家,樂於分享,熱愛技術。下面是個人微信公衆號,歡迎你們關注。面試
當我在讀大三的時候,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開發進階的技巧,在最短的時間內,突破學習的瓶頸期。性能
在我決定離開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從業人員,例如測試工程師,也能從中得到不少東西,特別是對於性能測試的內容,已經平時的一些開發、測試工具。我但願經過這本書,讓讀者可以利用工具,快速完成平時的工做,從而有更多的時間來學習、總結,甚至,但願讀者可以開發本身的工具來提升開發效率。