1. 程式人生 > 實用技巧 >8年Android:從普通大專到阿里只用了5個月,我是如何在迷茫期後拿到Offer,定級阿里P7?

8年Android:從普通大專到阿里只用了5個月,我是如何在迷茫期後拿到Offer,定級阿里P7?

前言

要說程式設計師最想要進入的大廠,阿里,騰訊,百度必定是首當其衝,而網際網路大廠必定是阿里巴巴首當其衝,今天就來分享一下我面試阿里的一些經歷與心得。

不想進大廠的程式設計師不是好程式設計師!

80%的oer掌握在20%的人手中”這句話也不是不無道理的。決定你面試能否成功的因素中實力固然佔有很大一部 分比例,但是如果你的心態或者說運氣不好的話,依然無法拿到滿意的 offer。運氣暫且不談,就拿心態來說,千萬不要因為面試失敗而氣餒或者說懷疑自己的能力,面試失敗之後多總結一下失敗的原因,後面你就會發現自己會越來越強大。

本人也是經歷了大半年的準備才拿到了阿里的offer


個人經歷

普通專科畢業,12年轉行進入軟體開發行業。在杭州工作兩年,14年來到深圳,從事Android開發一晃8年。

總的來說,工作8年,做過一些嘗試和努力,但可能沒有遇到好的機會或者選擇的方向錯了,導致至今混得不盡如人意。


人生轉折

出於對現狀的不滿,我決定要努力奮鬥了!

因為覺得這樣確實是在浪費自己時間,(看著同期的同學都在茁壯成長) 與其坐以待斃,不如我自己先出去試試水,去一家能夠迅速成長的公司。提完離職申請,我開始有意識看些面試問題,重拾培訓時的筆記,背題目,看些基本的知識問題……

人生的路,一步慢,步步慢。如果在一開始就落後的話,只會與那些早有準備的人越離越遠。

這段時間看過的書

《Android從入門到精通》
《第一行程式碼2 Android(第二版)》
《Android開發進階 從小工到專家 》

《Android進階之光 》
《Android開發藝術探索》
《Android群英傳》
《瘋狂Android講義 》

這些書也只是看了一部分,並沒有全部看完,有時會經常帶著問題就進入了夢鄉,所以這段時期我的進展並沒有太大明顯。

分享下這段時期面試總結的一些經驗

1、面試一定要帶簡歷,這是態度問題,不然容易第一印象就不好。

2、簡歷上最核心的2點,

  • 自己掌握的技術棧說明,讓面試官清楚知道你掌握技術棧;
  • 專案中使用了哪些技術棧,體現自己對這些技術棧的實際專案的運用情況。
  • 另外簡歷不要超過3頁。很多早期的專案經驗和大篇幅的專案功能介紹,並沒有什麼意義。

3、準時,實在有突發情況,要提前打電話商量修改面試時間。

4、至少提前幾周準備面試,因為Android知識體系真的很龐大,不復習下直接面試,就像送人頭一樣,很容易錯失難得的面試機會。

5、Android基礎一定要掌握好,不然丟分非常嚴重。之前面試一個高階Android,竟然回答不出年輕代的垃圾回收機制,一下子我都不想繼續聊下去了。

6、框架的核心特性要熟悉,並對其實現原理有一定的瞭解。

7、聽清楚面試問題再回答,不要答非所問,太過自由發揮。你和麵試官聊得越有共鳴,你通過的機率越高。不知道可以直接說不知道,然後再闡述下自己的認知和了解,以探討的方式讓面試官和你互動,這樣也能偷師點東西。

8、瞭解不深的技術棧名詞和機制,儘量迴避,不然只要你提到,面試官就可能展開深入的問下去。

9、多積累一些技術圈的人脈,很多時候內推進入會容易很多。

10、多積累一些可展示的技術成就和作品,比如參與了某某著名網站或者APP的核心模組開發,在GitHub上開源了什麼框架或者參與了什麼開源框架的開發,著名部落格網站的一些排名,運營某某技術公眾號。

由於我自己學習的過程過於雜亂無章,所以這段時期面試的效果並不理想


小轉折

經過這段時期面試的失敗我總結了一個道理:學習需要的也不是一腔熱血,需要的是長期的規劃,這裡分享一個思維導圖,大家可以自行進行查漏補缺和規劃:

需要這份引領行業“騰訊65W”年薪Android高階工程師成長曲線高清圖的小夥伴可以點選獲取

經歷了這段時期系統性的學習後,籌備了半年終於又一次得到了去阿里面試的資格。


第一面

1、手寫演算法題。貓撲素數;1到n,求1的個數;單詞反轉;

2、Activity的載入模式。

standard,singleTop,singleTask,singleInstance。

3、什麼時候會用到singleTask?

在MainActivity的時候用到

4、Handler機制?

5、一個執行緒是否只有一個Looper?

6、如何保證一個執行緒只有一個Looper?

7、多執行緒的方式有哪些?

8、ANR異常發生條件

(1)5s內沒有響應使用者輸入事件

(2)10s內廣播接收器沒有處理完畢

(3)20s內服務沒有處理完畢

9、如何分析ANR?

10、自定義View和ViewGroup

11、事件處理:分發,攔截,處理。

12、GC演算法

13、View動畫,屬性動畫,幀動畫。再說下View和屬性動畫區別。


第二面

1、OkHttp原理?

2、Retrofit原理?為何用代理?代理的作用是什麼?

3、ButterKnife原理?用到反射嗎?為什麼?

4、ANR異常如何查詢並分析?

5、JVM記憶體模型?效能調優?

6、垃圾收集演算法有哪些?G1演算法?

7、Http和Https的區別?

(1)Https是ssl加密傳輸,Http是明文傳輸

(2)Https是使用埠443,而Http使用80

(3)HttpsSSL+HTTP協議構建的可進行加密傳輸、身份認證的網路協議要比Http協議安全

(4)Https協議需要到CA申請證書

8、加密演算法有哪些?對稱加密和非對稱加密的區別?

(1)MD5,SHA1,Base64,RSA,AES,DES

(2)對稱:使用相同金鑰,需要在網路傳輸,安全性不高。

(3)非對稱:使用一對金鑰,公鑰和私鑰,私鑰不在網路傳輸,因此安全性高。

9、TCP的三次握手?兩次行不行?為什麼?TCP攻擊知道嗎?如何進行攻擊?

10、記憶體優化如何做?

11、看過哪些原始碼?

12、會對程式碼進行review嗎?何時review?怎麼review?

13、專案中遇到的讓你棘手的問題?多久解決,怎麼解決?

14、平時如何學習?何時學習?怎麼學習?學習渠道?


第三面

1、前幾次面試感覺如何?

2、你現在的APP日活是多少?

3、你現在如何處理崩潰日誌?

4、你覺得小團隊好還是大團隊好? 5 你的優點和缺點說下?

6、你的發展方向說下?是先講究寬度還是講究深度,為什麼?

7、為什麼離職?

8、其他小問題,如哪裡人啊?現在工資怎樣?要求如何,何時到崗啊?有什麼問題要問我的嗎?

最後,你懂的,主要就是HR走流程了,主要問了未來的職業規劃。

歷經半年籌備,終入職阿里巴巴


最後

這半年多時間一直都在針對學習路線找相關的資料,也通過一位大牛朋友要到了一份Android高階架構師整理的Android學習PDF+架構視訊+面試文件+原始碼筆記高階架構技術進階腦圖、Android開發面試專題資料,高階進階架構資料 這幾塊的內容。

每個知識點解析的很深,對大家應該很有幫助,它把大部分的Android知識集結在一起深入的解析出來(非常建議大夥看一看)

這些都是我現在閒暇還會反覆翻閱的精品資料。裡面對近幾年的大廠面試高頻知識點都有詳細的講解。相信可以有效的幫助大家掌握知識、理解原理。

分享給大家,非常適合近期有面試和想在技術道路上繼續精進的朋友。也是希望可以幫助到大家提升進階

相信它會給大家帶來很多收穫。如果你有需要的話,可以點選獲取

喜歡本文的話,不妨順手給我點個贊、評論區留言或者轉發支援一下唄~