什麼樣的工程師更受大公司的歡迎?

想念你的Android發表於2019-02-21
本文主要是大家問問題最多的一個作者也是Android 面試指南最資深的一位工程師給大家做的解答集合,本文依舊採取隱去提問者名稱的方式。


一問 2 個比較具體的問題好了:

1.學習 kotlin 開發目前是不是有必要的,在面試時會加分嗎?
2.移動開發與深度學習結合那些東西是可以實踐一下的,求教求教?

1、微信當前在一些頁面也在嘗試使用kotlin,而面試是否會加分取決於你面試的公司以及你自身的工作年限。例如在微信對於工作三年以內的候選人,我們重點考察基本程式設計能力,使用何種語言並不是關鍵。

值得一提的是,在第一屆Kotlin專題會議kotlinConf上宣佈kotlin會同時支援iOS與Web開發,結合JW大神到Google大力推廣kotlin,它的確解決了java開發的一些痛點,提升了開發的效率。所以說盡管目前仍存在一些問題,但是kotlin還是一個非常有前途的語言,可以在一些新的業務或者專案嘗試使用。

2、深度學習AI目前是熱點,應用場景也逐漸豐富起來。例如優圖最近的影象還原專案,騰訊QQ空間超解析度技術TSR:為使用者節省3/4流量,處理效果和速度超谷歌RAISR 。Android 8.1提供了神經網路API,深度學習還是未來比較重要的方向,但是它真正入門與進階的門檻還是比較高的。Rogue可以嘗試使用tensorflow/caffe這些主流框架實現簡單的相簿分類,語義識別等應用。

二 想面個大廠,現在那面試官會更注重問哪方面呢?是演算法還是那些框架原理?還是Android原始碼?還是看你做過的專案經驗?問的那一方面偏多呢?

對於大公司來說,特別是工作3年內候選人,我們關心這個人當前能力的同時,更期待他的可塑性,即未來這個人可能達到什麼樣的高度。當然這不能一概而論,不同的公司面試的側重點不太一樣,跟面試官的個人喜好也有比較大的關係。建議可以找到相關的熟人,瞭解一下具體感興趣的公司、職位的面試流程與側重點。對於微信或者我個人來說,主要考察以下三點:

1、基礎與演算法;候選人是否可以寫出高質量的程式碼,對於常用演算法的熟悉情況與整個思維過程。對於T3以下的候選人基礎與演算法尤為關鍵。

2、專案經驗;這一塊主要挖掘候選人過去的工作情況,主要看這個人在過去專案中考慮是否深入、全面,是否有一些令人眼前一亮的點。一般來說,我們比較期待候選人有非常擅長的一個點,在這個點做過大量的工作與深入研究。

3、主動性;這裡例如開源專案、文章積累還有對社群的一些貢獻等。我們希望候選人在完成自己日常工作之外,可以主動承擔更多的挑戰,去做更多的嘗試。

三.

3.1兩個困惑

1、如果讓我單獨實現一個功能,而不參考別人的程式碼,感覺會無從下手,不知道該從何寫起,該使用哪些元件、哪些API來完成這個功能。這一階段要如何度過呢,很多人給的建議是多些程式碼,可寫些什麼程式碼呢?看視訊教程和基礎書籍這一步我已經做了,都是跟著作者一步步寫,感覺如果單獨讓自己來實現還是困難。

2、第二個問題是關於職業規劃的
我覺得Android開發者在技術上主要有以下幾個方向:其一是在APP開發這個方向上不斷進階,不斷學習應用層開發的各種技術,包括原生開發、ReactNative、前端技術等等,能夠寫出效能較好、UI酷炫的功能程式碼,然後結合某一業務方向,將來可以往產品經理這個方向發展;

其二是往Android底層發展,可以做系統的定製優化相關的工作,這方面對應用層的開發要求就不是特別大,而且可以專注底層,深入下去,不用再去學習前端、Reactnative等一系列新的開發方式,專注深度而不是廣度。而且這一領域也可以結合相關業務,比如手機,或者對效能要求非常高的APP。

3.2答

首先剛畢業的學生來說,核心在於基礎能力的鍛鍊,而且更加無需擔心 Android 系統是否會被顛覆。在微信中,之前負責塞班平臺的同事現在依然活躍於微信的很多核心崗位中。

對於第一個問題,事實上我也經常會遇到這種情況,寫程式碼的時候也會忘記一些 API 的用法,記不清一些看過程式碼的具體實現方式。但是其實關鍵是我們能掌握學習的方式,即使是暫時忘記了一些細節,遇到類似的問題時解決的速度也會快很多。這裡我的建議是除了多看,更重要的是真正的去實踐,學會去用,去優化(不僅僅是star,更要學習pr)。

對於第二個問題,在微信,我們比較期待候選人是屬於T型人才。即在某一方面鑽研比較深,同時廣度也不錯。對於Android來說,雖然平臺技術發展相對緩慢,但是大前端跟精細化的運營還有許多需要解決的問題。另一方面,Android與音視訊、AR技術、AI的結合未來的想象力更大。但這這一塊無論入門還是深入門檻相對較高,涉及個人的基礎以及所在平臺等因素。

四.對於自己面試的大招 (技術亮點) 或者說作為面試官希望看到的大招,能不能舉2-3個例子並附帶一下實踐的方法?對於面試中說看過 Android 原始碼的話,必須要讀懂哪幾個模組?

 從騰訊或者微信的一些招聘職位來說,移動開發的崗位的確減少了很多,但是有還是有的。薪資這塊工作2.5年,在騰訊職級對應的大約在2.1-2.2之間,具體的數目不同人之間差距較大,不太多對比。

2、社招規模這個不太好說,這個都是根據專案的需要動態調整。面試的流程各個公司都不太一樣,一般都需要筆試、2-4輪面試。如果對於大公司來說,尋找熟人內推的成功率會相對高一些。

3、對於微信的招聘來說,我們主要考察以下三點:

a. 基礎與演算法;候選人是否可以寫出高質量的程式碼,對於常用演算法的熟悉情況與整個思維過程。對於T3以下的候選人基礎與演算法尤為關鍵。

b. 專案經驗;這一塊主要挖掘候選人過去的工作情況,主要看這個人在過去專案中考慮是否深入、全面,是否有一些令人眼前一亮的點。一般來說,我們比較期待候選人有非常擅長的一個點,在這個點做過大量的工作與深入研究。

c. 主動性;這裡例如開源專案、文章積累還有對社群的一些貢獻等。我們希望候選人在完成自己日常工作之外,可以主動承擔更多的挑戰,去做更多的嘗試。


五.從事Android開發,基本處於沒人帶的狀態,自己熟悉專案程式碼,做需求,漸漸的變成專案Android端的負責人,但是自覺技術不夠深入,比如沒寫過開源庫,仍然有很多不明白的東西,目前的專案沒有發展,想去大廠做些確確實實在解決一些實實在在的問題的事情。請問在大公司工作的大牛會怎麼看待這種求職者?

事實上,大廠不是都一定比創業公司強,我們需要看專案組的產品、技術氛圍等比較多的因素。但是以你現在的情況來看,如果個人長期得不到發展,的確需要嘗試為未來做考慮。可以多諮詢,嘗試找一些產品高速發展或是技術氛圍比較不錯的地方。

社招一般不太care學歷與背景,當然在多個候選人水平差距不多的時候,我們還是會優選選擇背景相對較好的。所以這邊我們需要表現的更好,打鐵還需自身硬。個人建議多看,多實踐,多總結,快速提升自身實力才是硬道理。

六.現在的一線大廠面試時掌握哪些知識,掌握到什麼程度才能有把握,還有現在的薪資行情怎麼樣。

薪資這塊不同人差距很大,各個一線大廠都給得起錢,關鍵是候選人可以值多少錢。面試的題目隨機性比較多,以微信來說主要面試的點有以下三個:

1、 基礎與演算法;候選人是否可以寫出高質量的程式碼,對於常用演算法的熟悉情況與整個思維過程。對於T3以下的候選人基礎與演算法尤為關鍵。

2、 專案經驗;這一塊主要挖掘候選人過去的工作情況,主要看這個人在過去專案中考慮是否深入、全面,是否有一些令人眼前一亮的點。一般來說,我們比較期待候選人有非常擅長的一個點,在這個點做過大量的工作與深入研究。

3、主動性;這裡例如開源專案、文章積累還有對社群的一些貢獻等。我們希望候選人在完成自己日常工作之外,可以主動承擔更多的挑戰,去做更多的嘗試。


相關文章