自學Android開發掌握基礎之後如何快速進階,需要哪些能力才能拿到大公司的offer?
本人杭州某985學校研一,之前做過底層的嵌入式開發、IOS開發,現自學Android開發近半年,java基礎一般,畢業之後希望可以進阿里、網易、滴滴等,但因為起步晚,自覺能力還很欠缺。因此,想在接下來的半年快速提高能力。
目前的情況:(1)Android的基礎知識基本掌握。寫過一個類似於「在行」的app,基本包括了app的常用功能。自定義view、view滑動衝突處理、簡單的網路請求庫的封裝、資料庫、簡單動畫、常用開源框架的使用等都有用過,了解常見的設計模式和架構。(2)Java基礎一般,java編程思想基本過了一遍,對多態、泛型、容器類、異常處理等有基本認識;(3)演算法方面,看過一點Algorithms(java)這本書,只會一般的排序演算法。
下半年的計劃:(1)Android方面:多研究底層機制,學習IPC機制、JNI和NDK編程、多進程、性能優化等。(2)Java方面:準備多補一下java基礎,熟練java編程思想和Effective Java這兩本書。(3)演算法方面:結合Algorithms(java)刷一刷leetcode。(4)其他:包括資料庫、網路編程等等學習一下。困惑:(1)我看過阿里、網易這些公司的招聘要求,覺得對知識的深度和廣度都要求的比較高:要了解android的底層機制,又最好熟悉操作系統、framework開發等,另外還有一些我不熟悉的概念,比如H5容器、網路中間件開發、Native容器開發等等。不知道有沒有工作過的Android開發的前輩可以講一講公司最注重我們畢業生的哪些能力?或者面試官最希望看到我們哪些方面的優勢?另外,對這種學習的廣度和深度問題又如何取捨呢?(2)現在好多app都採用的h5網頁的形式,作為一個android開發者,是否也需了解h5的設計?看過各種招聘要求,也在各技術論壇看到過各路大神,深覺自己的渺小,不知道各位前輩對我以上的學習計劃有什麼批評和建議?
(3)以後傾向於留在杭州,Android開發這一塊,除了阿里、網易、滴滴這些,還有哪些比較好的公司可以推薦嗎?(4)明年希望拿到阿里或者網易的實習offer,現在該做哪些準備呢?開源項目?發行的APP?以上。最近處於迷茫期,可能語言邏輯比較亂,見諒。————————2017-10-24更新——————嗯,拿到了很滿意的offer,更新給自己看,謹留念。感謝各位答主的建議,很有啟發。感謝過去一年一直努力的自己,給自己一個擁抱!
謝邀,問題逐個回答。
1. 深度和廣度:
校招很少考察深度,學生時代做的項目和知識積累,絕大部分都沒有深度,基礎紮實點就行,這裡的基礎大於你在問題里提到的所有東西。2.面試官希望看到的優勢:直接引用之前的回答:
- 實習經歷(主流互聯網公司);
- 專業成績排名(最好TOP 10%以內);
- 專業競賽成績 (ACM等);
- 高水平科研成果 (SCI, EI);
- 校內技術團隊/互聯網企業俱樂部核心成員;
- 國家級重點實驗室核心項目成員。
除此之外名校和CS強校的學生會有天然的優勢。
3. H5
如果在工程中沒有使用,沒有必要刻意去學習,你需要補齊的有很多,這個優先順序不高。4. 學習計劃
沒必要自慚形穢,論壇上大神不少,水貨更多,更多NB的人根本不上論壇。我認為你對自己技術能力的認知和規劃都很清晰,能做到這樣不易,學習計劃沒有問題,如能堅持下去明年肯定會有好結果。5. 杭州互聯網公司
畢業生還是建議去大公司,除了這幾家,去搜一下杭州的獨角獸吧。6. 如何準備
按照你的學習計劃準備就行。項目經歷有就可以,其實不是特別NB的項目,做和沒做也沒什麼差別,除此之外可以參考我在第二點中提到的方向去努力。PS: 歡迎關注我司最近的招聘,包括校招內推和社招產品經理:騰訊校招內推社招產品經理 - MAGI的專欄 - 知乎專欄底子和能力都還不錯,目前是研一,時間上也夠。
不敢替你制定計劃以免誤人子弟,就大概說說可能對你有幫助的一點建議。
在你已經是985研究生的前提下,可以考慮這兩塊再充實一下:1,項目經驗;2,實習經驗。
校招的話,基本上認認真真做過項目而不是demo(一般面試官會深挖你做項目的收穫,比如講解項目架構,碰到什麼困難之類的),對常規的開發流程能快速上手,也有程序員應該具備的學習能力和對技術的好奇心,性格和情商不要太極端,底子好一點,起碼計算機網路、常見的技術、常見的數據結構要熟練應用——基本上就是一個合格的校招水平。當然如果你要拿special乃至阿里星,那「牛」才是關鍵詞。
實習經驗也是一個挺大的加分點,一方面證明你通過了對應公司的篩選,一方面也是讓面試官知道你有過實戰。
對面試這塊,刷刷面經查漏補缺,你刷leetcode是一個很好選擇,可以堅持。Android基礎這塊,考察的都會比較常見,了解內部實現是亮點,這塊可以看看老羅的系列博客。把官網的traning過一遍,會有幫助。
差不多是這樣,留給其他人補充。個人拙見:
1. 官網training過了一遍的情況下, 可以嘗試Udacity上的網課, G家自己的工程師聯合開的, 能幫你把知識點串聯梳理一遍2. 大公司面試對基礎看的很重, 沒面過國內, 不過聽說國內演算法反而沒那麼高大上,不要走比賽路子..Android開發瓶頸很多時候並不在演算法上面, 刷刷就好了, Android的底層實現, 常見面試知識點, 一些常見的架構, 要吃的透一點, 然後要與時俱進...前兩年的經驗現在可能就不好使了3. Github看開源代碼, 拆輪子造輪子總是一件讓自己很有成就感的事情, 多看看沒壞處, 能學很多https://android-arsenal.com/ http://gank.io4. 從個人目前經歷過面試過來看..沒有所謂的準備充分一說..永遠會有各種各樣的坑, 相信自己, 邊學邊面, 看看面經, 面試者水平如何面試官能看得出來, 表現出你的培養潛力和工作能力即可, 面試如相親, 知識水平只是其中的一個方面而已GitHub - ZQiang94/Andriod-collect-blogs: 收集Android相關blog
我是去年剛校招進來的,今年七月剛入職。校招感覺對知識結構要求挺高,主要是網路(tcp,http),常見演算法(劍指offer必看,有時間刷刷leetcodr),和Android。Android這塊主要看三個方面吧,原理的把握,應用層的實踐和前沿技術的了解。原理深入的比如binder不一定強求(c++層面)但是Android啟動流程要熟悉吧,經典的源碼分析,如老生常談的handler,asynctask內部線程池,串列並行等等,應用層要熟悉自定義view,動畫等,再加上簡單的性能優化(強推胡凱的性能優化系列)基本應付校招是夠了,時間夠的話看看前沿技術如很火的插件化技術方案和大概原理,還有自己項目使用到的輪子一定要弄清楚內部實現;面試官往往喜歡針對你的回答一路深挖,盡量引導面試官去問自己懂的問題,你懂的
謝邀~
為何邀請我這個三本本科渣渣其實在讀時可以多參加很多大公司的實習機會,學習很多東西,實習時不要在意薪資,主要是學習東西導師有人脈的話你可以走走夜路,多去幾次導師家裡,師兄師姐有進BAT的,可以試著要個內推最主要的還是提升自己的技術深度以及知識面廣度,能成「全棧」最好,盡量多了解,多參與項目以上,一個渣渣三本本科的見解安卓小菜鳥來一答。
作為安卓自學者,走了很多彎路,買了很多書,去年七月買了第一本安卓瘋狂??,是垃圾中的戰鬥機,還號稱各個平台銷量第一,不知道怎麼好意思說的,我看到了第十一張,11月買了第二本,深入理解安卓,我是一次性買了三本,期間自學了下c++,這本書看的是暈暈乎乎的.第一次接觸源碼,是囫圇吞棗走馬觀花的看了一編,其間很多東西都不是很理解,只是死記硬背看了七八章.過完年聽說第一行代碼不錯,一個月看完了,然後看老羅的源碼情景分析電子書,難度有點大,這本書很厚裡面講解的很細,以置於我根本看不到我想看到的,看一章磨掉我的耐心,看到LOG日誌那張我實在看不下去了開始反思應該應該找點簡單的看看,然後去看安卓編程權威指南,看了一大半多,聽說安卓藝術開發探索不錯,大致看了六七章.
正當我一籌莫展,找不到學習framework方向的時候,無意中我看到了安卓框架揭秘,韓國人寫的(這本書真的不錯,強烈推薦).發現裡面有關於Camera的分析,才拿起來看的。但我又有強迫症,然後我就從頭開始看了起來,還下好並編譯了源碼,看著看著發現以前在看深入理解安卓1那些不懂的概念和代碼都大概能看懂了。裡面講解binder的章節佔了很大一步分,從linux內核到驅動,到linux應用(也就是系統運行庫層),再到上層講解的都非透徹,讓我對rpc層的動作,ipc的通信協議,和驅動還有內核的調度有了清晰的認識。雖然給的例子都很簡單,但知道了原理,以後去分析問題就有了方向。
下面說下自己的看法,看了很多公司都要求ams,wms,pms很多系統服務,做系統的公司應該多一點。我一直想學會這些系統服務,但是不知道該如何下手,看大神的博客又看不下去.又不想看,看不懂是一,還有不能全面的學習,因為畢竟不是一個層次的,他們的積累當然比我們多的多,怎麼能通過一篇博客學會呢.
在碎片化的現在,知識的學習太散了,所以我就一直想通過看書來系統的學習,要學會上面的服務,binder是重中之中,知道了這個你才能知道跨進程調用方法是怎麼調用的,要知道服務駐留的是system_server進程,而system_server又是由zygote進程fork出的第一個java進程.而服務的管理是由servicemanager,服務的註冊查詢都要經過它.jni是走向系統的基礎,所以我向你推薦這本書,裡面有詳細的解釋.
我現在只是剛剛準備去搞懂這些服務,雖然我還不懂,但有了以上知識的鋪墊,我感覺下一本應該不會太艱難,準備下一本看安卓內核剖析.
鑒於自身水平有限,如果有說錯的地方,深感抱歉.
為什麼要做碼農
研一就想著找工作的事情了,這也太著急了。先按照你的計劃好好執行吧,明年這個時候應該有很大的提高。
推薦閱讀:
※能否實現一種中間件將 iOS、Android、Windows Phone 7 上任意平台開發的軟體在其他平台也能運行?
※鬥魚,熊貓APP 這類APP用到了哪些視頻,音頻方面的框架和技術?
※簡訊驗證碼API哪家比較好?
※自學 Android 什麼程度可以找工作?
TAG:Android開發 |