我眼中的面試

NO IMAGE
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

       最近在給公司招Android開發人員,面向兩個方向,Framework和App,近一個月的時間以來,總體特點是Framework方向近乎無人問津,而App方向則簡歷“氾濫”,想招個靠譜的夥伴真的不容易。最近的工作時常被頻繁的面試安排打斷,面試之餘,想總結一下這段時間的感受。儘量從面試流程的各個環節都有一些涉及,當作回憶也好,經驗也罷。當作給自己的沉澱吧。

1. 簡歷的投遞

  • Framework方向

           基本沒有“正規軍”出現,這也在我的意料之中,這個方向的人材稀缺,基本都待在大廠裡不出來,因為對於系統級別的定製化改造真的是“搞事情”,資源的投入是巨大的,大廠都不一定搞得好的東西,何況對於一個像我們這樣的小作坊呢。因為也不是緊急的需要,所以和領導確定的方案是花多一點的時間,放長線,廣撒網,另外,利用人脈關係從大廠爭取撈人。

  • App方向

           不得不先提一個小插曲,根據業務的進展,先放出的是Framework方向的崗位招聘,每天收到的簡歷寥寥無幾,領導(領導不是很懂Android)問我,Android就這點人?我笑而不語,領導你等著。App崗位一開放,每天數倍的簡歷壓過來,領導沒再說什麼了,之前和我一起審簡歷的工作也不參與了。

       兩個印象,一個是現在是90後的世界了,另一個是女生們多了,這算是廣大男同胞們的福音嗎?

2. 簡歷的篩選

       大部分的簡歷還是那個老生常談的問題,太千篇一律了,讓人看了提不起興趣的那種,順帶的水分也就不提了,各種精通~可能大家心裡都有數。

  • 太“簡明”的簡歷會被刷

           簡明到只有各種榮譽證書各種精通,卻沒有具體的專案介紹,想簡明可以貼個作品連結啊,那些證書、精通的我們真的不太在乎,我們只希望能多瞭解一些你的工作經歷,當然我們真的希望你能精通。

  • 太“高明”的簡歷會被刷

           21歲5年Android開發經驗,Sorry,我是遇上神童了嗎?我hold不住啊!10年Android開發經驗的,Sorry,我是遇上Rubin級別大神了嗎?我只能膜拜,豈敢讓您屈尊。

  • 太low的簡歷會被刷

           簡歷毫無排版可言或排版混亂,讓我有閱讀困難的,Sorry,太出眾了。不要求炫,但至少能達到平均大眾水準吧,找個模板也行啊,都是出來找工作的,這幾乎就是第一印象,你怎麼就忍心讓自己輸在起跑線上?

3. 面試安排及迴應

       團隊目前比較小,於是領導幹起了HR的活,因為還有後端前端的招聘,所以面試安排統一由領導來統籌,親自給篩選出來的簡歷人員打電話邀請面試,贊一波領導。然而,那些沒來參加面試而又沒有通知我們的朋友們,不知道你們是怎麼想的,答應的好好的,就算不來,也許你的臨時日程和我們的安排衝突了,也許你有了更好的選擇了,都沒關係,來個電話或發個訊息稍加說明,我們都能理解,我會給你安排新的時間或祝你新工作愉快,未來有機會再合作。信譽在哪?換位思考一下,我不知道,朋友,你還會不會這麼做。與人方便即是與己方便。

4. 面試

       對於面試,想說多一點,特別是技術點

  • Framework方向

           這個方向的內容如果要問深度的那就要多深有多深了,鑑於收到的簡歷和來面試的人很少,我把條件放寬了許多,儘量從靠近app層的知識面入手提問。

    1. ART、Dalvik和JVM的關係及區別是什麼?這是道送分題,並不是真的要說出它們的深度區別,但如果你不知道ART是什麼,我覺得你不夠關注行業發展,靠這個平臺吃飯,不關心它,怎麼都說不過去。

    2. 例舉一下Android系統級服務,在App層一般都用過哪些?如何實現一個自定義的系統級服務?漸進式的問題,後邊的有難度,如果沒有Framework定製經驗或沒有研讀過系統原始碼真的不好回答了。

    3. Binder機制。難,基本個大概的概念也沒有多少個人說的全的。

    4. Launcher的實現。並非只有manifest裡的launcher配置,其實要是能回答PackageManager、ActivityManager對應用包的管理和應用程序的管理,會有加分,因為有了這些,才算是個基本能用的Launcher。

    5. 系統級app和第三方應用級app分別在什麼目錄下?一個第三方的app能否直接放到系統級app目錄下而又能正常執行?純經驗題,如果沒倒騰過ROM,基本回答沒戲了。

    6. 能不能單獨編譯一個系統級應用?ROM編譯環境配置及編譯指令碼題。

    7. JNI,共享庫和靜態庫的區別和使用場景,JNI中C/C 和Java相互呼叫各自使用的機制是什麼?偏app方向的題了。

    8. 如何限制第三方應用安裝?

  • App方向

           Android高速發展了快十年時間,平臺軟體開發現在已經到了各種框架、輪子滿天飛的時代了,給應用軟體的開發帶來了極大的便利,我也在用別人的框架和輪子。但我不太喜歡在面試中聽到“這xxx功能用框架實現就好了啊”。我們的職位需求明確了兩年以上的工作經驗,如果你這兩年了還只會用框架而又對框架說不出個一二三,那是不是不那麼對勁?更別說張口閉口就百度一下了,我還會谷歌呢。相信現在面試的基本也都刷過那麼幾套面試題、幾本xxx寶典,但一些經驗並不能靠刷題能刷出來或者能理解牢靠的,所以,這方向的面試我喜歡問細一點的問題。

    1. Activity建立在哪些視窗元件之上?順帶涉及View的事件傳遞問題。

    2. 什麼情況下,Activity的onNewInstent()方法會執行?Activity的啟動模式相關。

    3. Activity A使用startForResult啟動Activity B,B什麼都不做並返回A,A中的onActivityResult回撥是否會執行?

    4. Fragment能否不依賴於Activity存在?簡析一下Fragment的棧管理。

    5. 能否將一個Activity放到系統的最近任務列表裡,獨立於宿主app任務卡之外?

    6. 對於同一個Service,在被start啟動之後還能不能被bind?

    7. Service有哪些派生類?這些派生類的使用場景是什麼?

    8. Service與其它元件之間的通訊實現方式有哪些?

    9. View的post(Runnable r)方法裡,r會帶來一個新的執行緒嗎?多執行緒相關。

    10. 在非UI執行緒中使用Handler需要注意哪些問題?

    11. 自定義View時有哪些重要的方法,它們的作用及執行順序是怎樣的?

    12. 如何單獨對ListView上的一個item進行更新?

    13. 簡析一下大圖片的載入處理。

    14. 設計師只給了一套1280*800的UI圖示註,如何進行其它解析度尺寸螢幕的適配?

    15. 6.0系統新許可權機制的解決方案。
      你們精通的開源框架,問題來了

    16. EventBus的機制是什麼?和Handler的區別怎樣?

    17. RxJava的機制是什麼?

    18. Butterknife的機制是什麼?

    19. Okhttp是基於HTTP連線還是Socket連線?

    20. 例舉一種ORM框架,說說它的優缺點。

           如果你寫著精通各種框架,而上面的問題又回答不上來或者模稜兩可含糊不清,只一個勁的說這些框架很方便你用的非常遛,那我認為你和我精通的沒什麼區別,我精通Windows, Mac, Linux系統電腦的開關機,還精通C/C , Java, PHP, Python, Ruby等的書寫。
           就算框架橫飛的今天,Android應用開發還是離不開基礎四大元件、執行緒程序間通訊、View處理(UI、各種事件)、資料儲存消費、網路通訊、平臺特性碎片化適配等這些基礎的原理,框架也都圍繞著這些模組來建造,萬變不離其宗,知其然也要知其所以然。
           題目還有很多,比如以上還未列出Java部分的題,都不算什麼太高明的面試題,不能全部例舉了,不同的人根據不同的經驗及具體專案進行提問,一般面試過程前15分鐘即可分辨一個面試人員能否達到符合條件需求,所以,如何在這個時間段內最大限度的表現自己的能力很重要。

5. 面試評估

       評估的因素其實會有很多,臨場發揮因素,抖腿、眼神飄忽、回答聲音低小、遇難題岔開其它話題等,都是不好的臨場表現。技術面的方向及深度因素,術業有專攻,面試題答不上來不代表就什麼都不行,面試官也有自己的業務方向考量。這裡,還想說一點是,有些朋友過來像是純粹為了面試而面試,並不關心公司是做什麼的,我們有官網,招聘啟事上也有相關說明,然而問起時卻一頭霧水,或者完全不知道公司的業務和產品,也是比較尷尬了,沒有用心準備一個面試,明顯會被減分。即便真的不關心以後要做什麼,也總得知道一下想加入的公司大概是怎樣的,要不,這簡歷投遞的意義是什麼?

6. 面試調整

       我們面試基本有兩輪,過了我的技術面,領導會接著再面,兩面都過了才有可能成為以後共同的夥伴,所以,我也會傾聽領導的面試反饋,調整我的面試要求和尺度,畢竟新夥伴是給整個團隊找的,儘量能選到與團隊氣質符合的夥伴,所以,不光是技術面,更是綜合面的考量。傾聽反饋,做好下一次面試,節省領導的時間,也是節省自己的時間。

7. 面試總結

       以上,是這段時間對面試的一些拙見,無所謂乾貨,純個人感想,找一份滿意的工作不容易,找一個對味的夥伴不容易,且面且珍惜。有一個Framework方向的小夥感覺挺可惜的,做Android智慧手錶系統級軟體定製兩年時間,一直有機會接觸Framework層,但上邊的那些基礎題都沒有答到點上,問他為什麼會這樣,他感慨太忙了,基本只是在做老闆給他安排的那些重複性的軟體移植適配工作,Framework有其它同事負責,他就沒什麼關注了,如今出來了可就不一定那麼好的機會再去研究了。小夥子人很謙誠,如果我們現在是大公司,可能我會選他,可以培養,可眼下,只好放棄了,祝願他接下來找到合適的機會。忙是個客觀理由,不是個主觀藉口。眼界的開闊不應該羈絆於躊躇的當下。所以,標榜“太忙了,顧不上學習新東西或其它東西”、“那些東西只有用到的時候才去搜尋找方案”的朋友,好好準備,再出發吧,希望你不只活在搜尋引擎裡。
       我其實也挺浮躁的,為了儘快招到幫手,一天多則可能會參加主持六七場面試,對精力是很大的消耗,會在某一些場次中出現一些毛躁的內心情緒而影響正常的提問評估。面對面的你和我,折射了一個行業的現狀。
       我也有自己的目標,不久的未來,就會離開這個城市,投身於新的環境,可能意味著要從零開始,也將會由面試官變成被面試者,接受別人的考察評判,要懷著敬畏的心。
       這篇文章,獻給我自己,如果你正在找工作趕著面試或者正在面試別人,看到這篇文章,能提不同的意見,也是最好不過。

相關文章

Android 開發 最新文章