找工作第三十三天,我拿到了一份Offer

一篇關于我春招的記錄

歷經 33 天,我終于找到了工作。這一個月對我來說可能是一次至關重要的一段時期,所以我有必要好好的記錄一下。當然,這里也有很多干貨,有關 Android 面試的一些細節問題我也將努力的通過回憶陳述出來。可能篇幅很大,廢話較多,但同樣細節也會很多,如果看這篇文章的人是最近要找工作的程序員,那么我覺得這篇文章有你想知道的東西,特別是工作經驗不是很多的 Android 程序員。

因為我這一次是一次自作主張的裸辭,所以這一個月壓力還是非常大的。不過經過努力還是找到了自己比較滿意的工作,還有 3 個月的試用期,希望能再接再厲,通過自己的努力能在公司立足下去。具體我離職的前因后果和自己的想法請參考我之前的一篇博文:

「一次不妥協的離職決定」

一次特別的面試經歷

不過,在說到 3 月份這段找工作的經歷之前,我想先用這篇文章回顧一下另一件極其重要和有意義的事。

實際上在 12 月的時候,我已經接到過一次面試了,而且是一次很不一般的面試,一來是因為算上最后的終面,一共有 4 輪技術面試,難度非常大,技術范圍特別廣,我雖然被千虐萬虐,但更多的是收獲。但導致這次面試非常不一般的原因還有一個:

面試我的公司是 「小米」,面試我的人是我關注很久的一個大牛 「Gityuan」

當時在無錫項目組,項目已經上線,事情也不是很多,所以我就把 「某聘」 下載下來,把自己的簡歷和一些信息上傳了上去,但也沒有投簡歷,因為是我第一次用這個軟件,而且當時也沒有下定決心要換工作,所以填好信息后就沒有管過了。

令人驚訝的是,過了兩天,小米那邊主動打電話了,希望能做一下進一步的溝通。我當時驚呆了,后來我才知道是因為那些互聯網招聘軟件是一個雙向選擇的軟件,如果有企業通過搜索覺得你符合要求,也會主動聯系你的。

不過怎么說,當時知道消息的我非常驚喜,但更多的是緊張,因為這完全出乎我的計劃,當初實際上我給自己定了一個比較具體的復習計劃,準備等自己準備好后再主動投遞簡歷,這下好了,人找上門了,而且是個大戶,自己卻一點準備都沒有,但也不能隨便就鴿了別人,畢竟這么好的機會在臉上怎么說都得嘗試下,而且打電話在周四,第一輪電話面試在下周一,臨時抱抱佛腳也不是不可以,所以后面幾天我就找了一些 Android 的常規面試題看了看,順便看了一些「數據結構」和「Java」相關的知識。

同時,我也具體的看了下這次「小米」招聘崗位的具體要求,發現崗位是做 「MIUI系統」的相關開發的,并且「算法」和「數據結構」有比較高的要求。看來,有可能會問到一些「Framework」相關的知識,我不禁有點失落,老實說,那時候我對這方面完全沒有深入過,每天在趕項目,就算是學習也是學習了很多應用層的一些用法方面的知識。對于源碼,一來我的能力還沒有達到;二來我的確是沒時間研究這些和項目關系不是很大的知識點了,試想當時每天加班到那么晚,項目時間實在太緊,不允許我抽時間去學這些東西,一般只會在做項目過程中遇到問題才去現學現用。

一面

就這樣稀里糊涂復習了幾天到了周一,因為約好了在下午 2 點的電話面試,我特意和經理請了假,然后中午吃完飯后就在寢室等待。為了讓自己保持專注,我特意帶了個耳機插在手機上,然后就這樣坐著等,那時候感覺每一秒都是那么煎熬,因為那即將是我第一次技術面試

2 點整,電話來了,一個擁有很成熟聲音的人打來的,一聽就是一個做了多年技術的老手,他先讓我自我介紹了下,然后問了下我現在在做的項目的業務,針對這個項目的一些具體功能提出了一些問題,比如框架怎么搭建的,因為我說了用 MVP 模式,所以又問我了一下具體的搭建思路,我就把我對 MVP 的理解,和搭建過程中各種層之間的綁定操作說了下。總體來說感覺第一輪電話面試技術上具體的問的不是特別多,大多是針對當前項目的,或者是了解下你在項目中扮演的角色。

問完了技術上的,他又問了一些關于離職原因的問題,我大概說就是我比較希望能在南京穩定發展,外包公司沒有歸宿感,我不是很適應,隨后又隨便聊了一些有的沒的,總體的氛圍比較輕松自然,然后他就讓我等通知了。

看了下手機,通話時間 50 分鐘左右。

掛了電話后,我就去上班了,然后大概到了 4 點,我又接到了電話,電話里說希望我做一份筆試題,筆試題待會發到我郵箱,時長 30 分鐘,做完直接把答案回復到發送郵箱即可。

能讓我做筆試題,至少證明我剛剛的電話面試應該算通過了。不過,這種筆試方式難道不怕做題人上網查資料作弊嗎?

我心中產生了疑問,我決定先看看題目做試試,如果做不出來再查查,可能對方會給出一個非常難的問題,就是想讓你不會,然后考驗一下你的應變能力和解決問題能力也說不定呢。

過了兩分鐘,郵箱收到了題目:

「請寫出代碼計算二叉樹的最大深度,分別用『遞歸』和『非遞歸』的方式實現」

好吧,不是很難,主要就是定義二叉樹類和一些成員變量,遞歸的話比較簡單,非遞歸可以用層次遍歷思想,配合隊列進行循環操作即可。寫了 20 分鐘左右,最后小修小補了下,就把郵件發過去了。

到此,一面算結束了。

二面

筆試題發了后,大概過了 3 天,我才接到二輪面試的電話。當時因為過了好幾天都沒接到通知,我都以為已經沒希望了,所以后來都快淡忘這個事了,所以這次接到電話又是一個措手不及。當時還在工作呢,所以我趕緊跑到一個樓梯口來進行電話面試了。

這個時候大概是下午 1 點 40 左右。

打電話過來的聽起來是個非常有活力的小伙子,聲音非常嘹亮,充滿自信。一開始幾個問題和上次電話面試差不多,自我介紹以及項目上的一些架構問題。問完這些后,他可能也感覺這次問的可能問過了,所以他開始問一些純技術問題了。

首先是一個觸控問題,「如何實現多點觸控」,然后又設定了一個場景,「如果 3 個指頭同時向下滑動,3 個指頭的速度如果有偏差該怎么辦,用什么辦法來確定這個監聽事件」。因為當時我確實沒有接觸過這方面的知識,所以也實話實說我沒有研究過,沒想到的是,他好像反而更希望聽到我沒接觸過,接著問我

「那么,你想想如果說你,可能會用什么辦法來處理呢?」

聽到這個問題,我當時在電話那頭當真是一臉茫然,頭腦飛快的思索著,并說出了自己的想法,他也時不時的「嗯,嗯」兩聲作為回應,然后針對我的想法也提出了一些問題。整個過程非常緊湊,思考時間非常短暫,加上又是自己不熟悉的領域,所以回答的支支吾吾,同時胃部也因為緊張劇烈的翻涌著。

這不是面對面的面試,電話面試如果你一直沒聲音低頭思考,你自己都會覺得非常尷尬。所以這種高強度的電話技術面試考察的是你的解決問題以及應變問題的能力,同時也會考察出你的思維敏捷度。

這個問題結束后,后面還問了幾個非常有質量的問題,列舉下:

  • String 為什么要設計成不可變的?
  • fragment 各種情況下的生命周期
  • Activity 上有 Dialog 的時候按 home 鍵時的生命周期
  • 橫豎屏切換的時候,Activity 各種情況下的生命周期
  • Application 和 Activity 的 context 對象的區別
  • 內存泄漏相關的問題,比如在項目中的一些內存泄漏案例,怎么解決的,然后問了幾種內存泄漏的情況,問了下該怎么預防,還問了平時用什么工具檢測內存泄漏。針對你回答的,他會繼續深入問,直到你實在回答不了為止。比如我說到 Activity 和 弱引用了,他就針對這兩個問題深入了很多。
  • 項目中遇到的重大問題以及當初是怎么解決的。

最后他又問了兩個「數據結構」的算法問題,一個是鏈表逆序,另一個是求二叉樹兩個節點最短路徑。特別是第二個問題,他給了非常多的限定條件,總感覺好像有意給我制造了難度,然后考察一下我的思維方式,這個問題上也探討了非常久。

通話總共用時 1 小時 30 分鐘,自我感覺回答的不是特別滿意。

第二輪感覺面試官更偏向于考察你解決問題的能力,以及一些思維活躍度和應變方面的能力。同時,還考察了一些平時開發時候是如何優化應用的,技術上,更偏重基礎,沒有問任何的第三方工具的使用。

后來和幾個同事討論了下,發現的確如此,做移動端的如果基礎好,應用層各方面的知識你將會學的很快,第三方工具或者代碼庫的使用確實沒什么值得問的。

三面

經過了一段緊張刺激的電話面試,我當時的心情是非常復雜的,還沒緩過來,正準備和同事分享一下剛剛的面試經歷,又一個電話來了,第三輪面試就這樣開始了。

好吧,還沒坐下來又去了小走廊,打來電話的是個女的,聲音聽起來比較嚴肅,問的問題沒有像剛剛第二輪那樣范圍那么廣,探討的地方也很少,大多數是那種讀文檔式的出題。不過感覺對方還是非常有氣場的,總是一而再的問我「是這樣嗎?」,「你確定?」,搞得我有時候自己本來確定后來都拿不定主意了。

幾個印象比較深的問題有:

  • 序列化的作用,以及 Android 兩種序列化的區別。
  • List 和 Map 的實現方式以及存儲方式。
  • 靜態內部類的設計意圖。
  • 線程如何關閉,以及如何防止線程的內存泄漏
  • Linux 的一些常用指令

這輪面試雖然來的很突然,但節奏還是比較快的,你問我答,會的會,不會的就不會,心態可能因為經過了這么多輪了,倒也比較平靜。

通話時間 40 分鐘左右,然后晚上吃飯的時候,給我打電話說下周會給我做終面。一切好像還算比較順利。

終面

終于,終面來了。依然是電話面試,但我這次做了準備,提前在一個沒人的小會議室等著了。

這次是兩個人同時面試,一個聲音有點像二輪那樣很自信的那種,一個比較沉穩,感覺是個非常厲害的人。

開始跟我聊的是那個很自信的那個人,聊了一些技術問題,但不是很多,可能是因為前面技術面試經過了 3 輪,差不多我啥水平也了解了,他主要問了一些我離職原因,然后職業規劃和技術上的發展規劃。

然后就到了第二個人,后來我才知道,他是 「Gityuan」,不過當時我沒想到,后來看了他博客才發現他問的都是他最近研究的一些技術。

他問了幾個很深的技術問題,都是跟 Framework 相關的,比如問我對 ANR 有多少了解,畢竟他就是研究這方面的真正大牛。然后就問了我幾個常規問題,但這幾個問題對當時的我來說并不常規:

  • 你對能加入「小米」這樣的一個機會,你是怎么看待的
  • 你自我推薦下自己,講一下我們如果要你,你能給企業帶來什么樣的價值,你有什么樣的優勢
  • 你的職業規劃是什么
  • 你對「小米」公司是怎么看的
  • 你有什么問題需要問我的嗎
  • 你對薪資的要求

這幾個問題質量非常之高,當時我就感覺到,到終面了,這幾個問題可能直接影響到我的成敗。

事實也證明了,我的失敗可能和這幾個問題有著極大的關系,正是我在其中問題答得非常不好。

自我價值那個問題,我就說的有點語無倫次,把自己一些性格上的優點列舉了下就草草了事,對方肯定不想聽到你這樣的回答的,這種話誰都可以說,但不一定就是你的價值。這樣的互聯網公司,更多看中的可能是「發展潛力」、「事業心」以及「態度」。

提問那個問題,我問了很多一些和自己切身利益有關的問題。后來我仔細的想了下,這些問題問了沒問題,但如果不問一些類似技術提升,技術發展這樣的有關自身提升有關的問題,可能不太好。要讓企業感受到你來這上班不一定是為了那點工資的。

然后,薪資問題我覺得我過于失敗了,我直接說了一個他招聘信息上工資范圍的最低數額,但實際上他這個職位給的是工作經驗 3 年左右的人的,我卻天真的以為他這樣開,我就應該這樣報。后來我才越來越感覺到,我能通過那么多輪,甚至最后有一些機會成功很大的原因正是因為我經驗不多,但幾次面試下來面試官感受到了我的學習能力,覺得我對技術有追求,有激情有沖勁,這才不斷的賦予我機會。

但我當時沒有察覺,自以為是自己能力強理所應當得到的待遇。的確,我當時沒有正確的認清自己。

小米面試結果與總結

后來,我收到了面試未通過的通知。說不失落肯定是假的,面對這樣的一個企業,面對這樣的一個機會,我甚至已經快要達到了,卻在臨門一腳被踢回來,這種感覺著實不好受,當然,這次面試的難度和嚴格是最高的,甚至算上之后 3 月份的所有面試,這次「小米」的面試依然是質量最高的。

這次「小米」的面試經歷非常寶貴,讓我全方位的審視了自己,我認清了自己現在處于什么階段,并了解到了自己技術上的不足也明確了自己以后努力的方向,也第一次的近距離接觸了大公司的面試,知道了大公司對于人才具體有哪些能力上的要求。


小米面試結束后,工作了兩周左右就放假了,2 月 2 號回無錫上班。

整個 2 月份過的還是很舒服的,因為幾個小伙伴全住在公司提供的宿舍里,項目又不太忙,所以每天下班回來和周末的時候,所有小伙伴都會聚集在一個屋子的客廳里一起 LOL 。

我那會有時候陪他們玩游戲,有時候躺床上看書。整個 2 月份我讀了 4 本「東野圭吾」的書,看了一本「唐史」,還有一本闡述生活理念的書「斷舍離」。

老實說,工作空閑能看書是我最大的奢望,所以當時在無錫可以看這么多書,講真還是真的不錯的,實際上我對項目組本身還是非常滿意的。

但在外包公司,你永遠是被動的。月底,銀行轉變了對項目的購買模式,轉變為人月項目,原來十幾個人的項目只買了 5 個人,甚至 iOS 開發一個都不留,他們找了一個銀行內部技術人員完全接手了 iOS 代碼。最后,我們幾個沒被買進去的人,就要各奔東西,去往別的城市的項目組了。

來無錫之前,領導承諾 12 月可以調回南京,最后拖到 2 月底,這次調整,又決定把我送往蘇州。所以,各種原因下,我就離職了。更多離職詳細信息可以參考博客「一次不妥協的離職決定」。

回到家,我列了一下計劃,復習兩周,然后找工作。考慮到 3 月是找工作的高峰期,所以計劃 3 月底前盡量能找到工作。前兩個月實際上進行的也不算太順利,心理上,執行力上都有一些波動,這也在博客里了,參考「還算充實的一周」,這里就不多說了。

3 月 15號開始,我開始投簡歷,首先我把各大投簡歷平臺的 App 都下到手機里了:「某直聘」、「某鉤」、「某無憂」、「某聯」、「某聘網」... 好像下載了有 6 ,7 個,不過最后感覺比較靠譜的是前三個。有幾個你投了簡歷,要不就沒回復,要不就回復的都是培訓機構,甚至還把你的個人資料泄漏了然后每天會有一大堆招聘廣告發到你手機上,不厭其煩。

簡歷上我寫的比較常規,自己懂什么技術寫什么技術,用過什么寫什么,項目經驗從什么時間到什么時間。沒有任何的夸張成分。這里需要特別強調下,對某一項技術,描繪你的掌握程度一定要用詞妥當,仔細思考你真實掌握情況。比如,如果你平時只是用過「Retrofit」、「RxJava」,那你就別寫「精通」這類字眼,面試官會針對你的技能棧進行深入。我剛開始寫精通,后來一位面試官直接問我源碼上的問題,我就直接懵逼了,后來才針對自己的掌握情況修改了描述方式。

3 月15 日 周五

我記得 15 號是周三,我的投遞模式是海投,就是把軟件上符合我搜索條件的職位全部投遞。大概到周五的時候,只有一家通知我去面試,其他回復無一例外,全是說我年限太低,不符合要求,所以不給面試機會,當時的壓力有點大,我高估了現在的大環境,實際上現在 Android 程序員的確有些飽和了,初級崗位魚龍混雜,企業就算需要人,可能也會把年限卡死,所以面對我這樣年限這么短的人,能給面試機會的公司自然少之又少。但這就更需要我把握每一次珍貴的面試機會,盡量準備好,不留遺憾。

剛剛說到了周五有家公司通知我去面試,那家是國內某大型外包公司,過去后,發現會議室大概坐了有 30 來人,HR 給了我一份 Android 考卷,就讓我進去做題了,題目不是很難,不過考察的范圍挺廣的,有些我接觸的比較少的也的確不會,比如好像考到了「SurfaceView」、「OpenGL」,其他就是一些比較基礎的 Java 和 Android 問題,比如生命周期那些,四大組件那些。

交完卷子就在會議室等了,過了一會一個 HR 帶我去一個小會議室聊聊,她大概說,試卷做的不錯,你學歷也不錯,是 211 ,他們幫我看看公司有沒有項目需要 Android ,還給我說有沒有興趣轉 Java 開發,因為最近 Android 不是很火了。然后隨便聊了聊就讓我回去了。

本身也不可能去外包公司,只是需要面試一次看看狀態試試水,沒想到從頭到尾也沒技術面試,就連 HR 也知道 Android 最近環境不好,我內心真是急躁的不行,那段時間的壓力可想而知,甚至都有點后悔這么草率就裸辭了。

3 月 18 日 周六

周末的話,企業休息,所以周六周日兩天都沒有消息,實際上對于當時的我來說,雖然明白是這個道理,但這種毫無消息,投遞無果卻只能白白干等的感覺著實惡心,我記得那個周六,我學習的時候,每次看完一個博客或者看完一段視頻,都會去用手機去一個個打開招聘軟件,確定下有沒有公司回復我,那時候心態的狀況可想而知,我的自我調整那幾天也非常不好,甚至睡覺都不太安穩。不過那段時間,我爸爸因為每隔兩天就來一趟南京辦事,晚上會住我那,她看我心態有點不穩重,那幾天一直在開導我,給我心理上帶來了很大幫助。他認為「每個人總有一段這樣的挫折需要你去克服,找工作不需要太急,只要你手上有本事,總會碰上伯樂的。」總而言之,如果不是萬不得已,在你上班的城市找工作的話,現在還是盡量不要裸辭。如果裸辭的話,也千萬不要急躁,急躁沒有任何用。

這個周末我作了一些針對性的復習,主要是「網絡編程」方面的,之前 stormzhang 在小密圈回答一個圈友問題談到了網絡這塊需要掌握的一些知識點,所以針對這些知識點,通過博客和一些視頻(我全是用1.5倍速放,節省時間)來復習。又把 Android 端一些常用網絡框架的基本使用用法和原理大概看了下,比如「OkHttp」、「HttpURLConnection」這些知識點。

這里重點說一下復習相關的,我寫過一篇「短期復習計劃」,有具體我的復習思路和方向,當然每個人不同,不過我當時非常重視把平時學習過程中的總結、代碼盡量的上傳到 CSDN 博客和 GitHub 上,我總感覺技術面試應該最單純粗暴了,你如果平時天天寫技術博客,GitHub 上的提交時間圖被填的滿滿的,面試的時候你把你的這些鏈接一貼,面試官進去看一看就大概知道你的學習能力、學習態度、技術棧范圍以及針對每種技術的深入程度,大概就把你啥情況搞清楚了。不僅如此,本身你經常寫博客,玩 GitHub 本身就是一種優勢,不僅是一個好的 Coder 所必須有的習慣,而且也是對自己最好的能力展示,是公開的簡歷。

3月 20 日 周一 至 3月 23 日 周四

周一開始,我的手機就開始有聲音了,陸陸續續有非常多的電話打了過來,這里面不乏有一些被我過濾掉的,比如一些培訓公司、外包公司,還有一些公司信息都不是很全的那些,到后來,面試太多了,每個半天就得跑兩家,我甚至可能會因為有些公司離得太遠就鴿了。

實際上 18,19號兩天周末我還參加了兩個學校的校招,事實證明校招對于我這樣的非應屆生作用不是很大,有的公司對我特別滿意,但最后都沒通知我,最后參加了一個公司的筆試和一個公司的面試,但都考慮到我不是應屆生,也就沒聲音了。

我下面只把這周我印象比較深的幾次面試列舉下。

周一參加了剛剛說的兩個校招時候面試的公司,其中一個公司做的筆試,筆試內容范圍非常廣,不過如果你是計算機專業學生,這些倒是都學過,但可能會因為時間長記得不清了,或者像我這樣大學就知道玩從來不學的,總之做的不是特別好,涉及到 Java 基礎,數據結構,操作系統,計算機網絡,Android 上考的不多,好像就兩道題,不過有一道題我看了我就一口老血噴出來了:「Android 系統的啟動過程」,老實說如果你平時沒有特別研究過,那這道題還是老老實實找個網上描述的比較清楚的背一下吧。

然后那個面試的公司,是個云計算相關的公司,做的最多的是嵌入式,當時面試 Android 的就我一個,我就被他們公司的一個 Android 開發帶到一邊面試了,面試內容大多是針對我做的應用來問的,說實話,技術含量不是很高,我都感覺對方技術也沒高到我哪去。面試完就是一個男 HR 來面我,特別嚴肅,問了一些很奇怪的問題,比如,問我之前在銀行工作時候銀行的項目主管叫什么名字,他當場打電話過去給銀行問,可能是用來檢測我簡歷的真實性吧。后來他跟我說,其他人都是來面試實習的,你是來找工作的,老板在開會,今天可能面不了你了,回去等消息吧。反正大體意思就是沒戲了。所以后來我也就不考慮校招了。

周二那天一共面試了 4 家,早上有一家外包,大老遠跑過去后,他啥也沒問,扔給我個需求書,說你看看這個項目你能不能做,要多久。然后技術也沒問,估計對方都不是做 Android 的,稍微聊了會就讓我回去等通知了,還說不論過不過都會在軟件上通知我,實際上最后也沒給我說過沒過,哎,不靠譜。

下午去了一家初創的產品公司,這家工作環境很不錯,而且離我住的地方特別近,面試我的人特別厲害,技術水平非常強,氣場也強,聊的過程中也感覺到了他身上壓力也比較大,畢竟初創企業,身上擔子應該不小。這次的技術問題非常有質量,應該能排到我所有面試中僅次于「小米」和最后我去的那家公司的水平。技術上大多圍繞平時開發中最常見的問題,但這方面我了解的也不是很好,只是大致看過,不深入,比如:

  • 圖片緩存策略
  • RxJava如何管理生命周期
  • Okio源碼
  • OkHttp 中和 WebView 中Cookie是怎么處理的
  • Android 上Socket的使用
  • 注解
  • Android 上的進程通信、共享內存問題
  • Webp 格式

他還給出了一些場景問我怎么解決,我聽著總感覺是他們自己開發的時候遇到的問題,順便問問我的思路,好像的確有的公司面試會把自己平時遇到的難解決問題拿出來問問。

后來收到面試沒通過的消息,的確這次技術面試比較失敗,但他問的方面我的確掌握的不好,所以沒啥覺得遺憾的,回去把他問的知識點補了補也沒多想。

當天晚上去南大參加了一個宣講會,然后面試的時候一直在給我強調,「Android 項目不是很多,而且也不太缺人,你對轉型 Java有沒有興趣?」...

大概有 5,6 家勸我轉 Java,Android 沒崗位... 亞歷山大。

周二周三做了幾個線上筆試,也參加了幾次面試,比較值得說的是一家國企,這家國企做的石油方面的 App,公司離得特別遠,在南師大仙林那邊,我特么坐地鐵倒來倒去都坐了 1 個半小時。過去后,去了個會議室,里面已經來了 4,5 個人正在做題,有一個人在被兩個人面試,然后我去了后領了一份 Android 的題目就做了起來,題目就一張 A4 正反面,第一道題讓你論述你做過的項目,并說說這些項目的優缺點;第二道題是對他們現在做的 App 的一些看法和建議,來之前我已經下過他們 App 并體驗了,老實說不是很復雜,設計的也一般般,亮點不是很多,我也就老實說了。后面幾道題全是給你一個頁面圖或者一些效果問你怎么實現。最后一道題是談談對 Android 的看法,說一下優缺點。

寫完后有個面試官就看起來了,另一個面試官就針對基礎情況問我了一些問題,比如我之前項目中的責任,用的技術,離職原因,期望薪資,我針對他們公司的問題這種。后來那個看我卷子的面試官問我,針對這卷子有沒有什么想問的,我就問了幾個題目說我這種實現思路怎么樣,我很多都是直接繼承 View 和 ViewGroup,然后重寫那些繪制方法,再把算法寫在這些方法里,我感覺這樣寫很突出自己的能力。

但他都說實現太復雜了,Android 原生有某某方法,可以直接調用。我有點無語,這種直接方法或者庫使用上的東西有啥好考察的,知道就知道不知道就去查唄,應用層正是因為有這種特性,所以現在初級工程師才這么多,Android 應用層開發的可替代性才這么強,所以當時我就沒有往那方面去答題。想不到人家還偏偏還就往這方面去考察了。

不過這家工作環境也是特別好,在一個創意園內,樓都設計的非常好,周邊環境也美滋滋的,樓里面的設計也特別棒,這家公司同樓還有一家「騰訊眾創」在這,而且是國企,如果能在這,實際上也是不錯的。面試官說周五給消息,也說,周五之前,不管成功與否,都會告訴我。

當然了,又沒通知我。

3 月 24 日 周五

周五下午 4 點我來到了這家公司,一家產品公司,做金融的,我上家說起來也算是金融互聯網公司。說來也巧,剛開始我在「某鉤」投遞的時候,沒多久就給我標記不合適了,但過了幾小時,又給我打電話了,說感覺簡歷特別匹配,還是希望能來聊聊。所以我仔細的看了下應聘要求:

崗位職責:
1、負責目前業內最火的移動互聯網金融 APP 的設計與研發。
2、持續優化業內最強產品,將您的研發專長,做到極致。
3、研究新技術,參與軟件架構設計。
4、堅持把自己當成產品主人,而不是純粹寫代碼的碼農,對待產品如同初戀。
5、除此之外,做您最愿意做,最爽的事!

職位要求:
1、1年以上 Android 平臺開發經驗,能根據產品設計獨立進行應用開發。
2、有社交、即時交互、UI/UE 等方面的開發能力。
3、對面向對象思想有深入的理解,了解常用的設計模式。
3、對待產品如同初戀,追求細節,追求極致。
4、有金融軟件經驗加分、有開源社區貢獻加分、有技術博客加分、有自己的作品加分。

然后看了下福利:14薪、六險一金、周末雙休、午餐補貼、交通補助、一年不少于兩次旅游、免費零食、下午茶、團隊活動、生日party。

OK,一看就是非常有活力的公司,而且對待產品的態度非常吸引我,感覺很滿意,當時就有一種強烈的預感,很有可能就是它了!

去了公司,HR 非常熱情,讓我進去會議室做了張筆試,并且把我手機很友好的收了。題目質量還可以,考察了幾個比較不錯的問題,列舉出來其中幾個:

  • 內存泄漏的根本原因
  • 舉出幾種 HashMap 的迭代方式
  • 數據庫 SQLite 的一些操作。
  • 靜態內部類和內部類的區別

后來交了卷,等了一會,來了一位非常帥的帥哥,文質彬彬的,介紹了下,他是公司的 Android 負責人,然后他就開始問我一些問題了,先自我介紹,然后針對我做的項目和剛剛做的題目問了一些問題。然后他又問了幾個質量比較高的問題,比如 Java 中堆內存和棧內存的區別,弱引用軟引用區別,Serializable 和 Parcelable 的區別,ListView 的實現原理,Java 中同步方法。還問我看過什么源碼,我就說了個事件分發和 Handler ,還說了一個在非主線程更新 UI 的可能性的問題,然后他就問了一些系統優化的問題,問了我做過什么系統優化,我就說了一些內存優化還有緩存和流量上面的優化,然后還說用 Freeline 插件提升編譯速度,他說他們現在也在用,感覺還不錯。

技術聊了很久,大概有 3,40 分鐘,然后就開始說一些職業上面的問題了,比如問了我的職業規劃,和技術上有什么樣的追求,問了我一些大學的時候的事情,說到這個地方的時候我還說了我大學那段電競時光,他表現的挺感興趣,這方面問了我很多問題,所以我就把我當時訓練、打比賽、當會長辦活動那些事和他聊了聊,他對我辦過一些活動的具體細節問了一些,并且還非常驚訝我當時竟然能大包大攬的一個人承擔一個協會。

他又問我對團隊有什么要求,或者說我期望什么樣的團隊,我就說我比較喜歡沒有那種明確上下級關系的那種團隊,并且有充分的學習機會,團隊之間各成員能夠經常交流學習,最好還可以多一些能增進下團隊成員之間感情的團隊活動。

我們聊得很開心,后來他還問我對工作有什么要求,我表示我對薪資這些不是很有要求,主要是渴望得到一個工作機會,同時希望能在一個企業文化很棒的公司工作,這對我來說比較重要。

他提問的差不多,就問我有沒有什么問題,我就問了一些作息、福利、晉升以及個人和公司協同發展方面的問題。問完后,他針對我剛剛說的一些期望做了一些解釋,比如他會給我說公司的團隊正是像我期待的那樣,氛圍很棒,并對他們公司情況做了一些概述,告訴我他們是一個產品公司,對待產品態度很認真,對技術也會要求嚴格,現在公司的發展情況也是正處于高速上升期,并闡述了一些企業文化方面的東西。

最后他表示,他做 Android 也有 5,6 年了,在北京這些城市也工作過,他覺得,工作這么多年,走過不少公司,覺得這家公司是他經歷的所有公司中最「酷」的,在南京,也算得上非常「酷」的,在這工作,真的很棒。

我喜歡「酷」這個詞,與我的期待不謀而合。

后來我們談到了一些關于南京的東西,我表達了我對南京的喜愛,之前在南京工作的時候每周都會騎單車在南京到處逛,他說之前很多離職的人都是因為不想在南京,不知道為什么我這么喜歡。我想了一會,回答了一句很裝逼的話:

我感覺,南京有一種憂郁的氣質。

Android 負責人大概和我聊了一個多小時,然后就讓我稍等片刻,因為 CTO 在開會,可能不能立刻過來面試我,所以之前接待我那位特別活潑的 HR姑娘就來先陪我聊了會,她非常興奮的給我講述了在這家公司是多么開心,這里全是 85 后,這里福利多好多好,1 月份的時候還集體去越南旅游,下午茶非常豐盛,蛋糕,面包,咖啡,飲料,披薩每次都不帶重樣的,看她美滋滋的那個樣子,我肯定是信了,至少證明,這家公司的確是非常有活力的,而且非常注重團隊文化的建設,有這樣的保證就夠了。

過了大概 10 分鐘,CTO 來了,非常年輕,大概就 88,89 年這樣,很厲害。拿了紙筆,邊問邊寫。問的節奏很快,總結起來就是考察我有沒有主動解決問題和探索新技術的能力,還問了我的 GitHub 和 CSDN的情況,總之感覺他更關心的是我對待技術的態度。

最后他問了下期望薪資,我說了一個和上家一樣的數字,因為我很渴望能在這工作,所以待遇上反而真的沒有要求了。

他說讓我回去等通知,他和 HR 明天要出差,可能周一才會給我答復,我就先回去了。

回家后,HR 加了我 QQ,跟我說實際上明天應該就會告訴我結果,讓我耐心等待。第二天,我看她在空間發了一個說說,我就有意點了個贊,然后她立馬 QQ 給我消息:「哎呀,忘了跟你說了,恭喜你,面試通過了!」

3 月 29 日

27 日周一我拿到的 Offer 郵件,然后29號正式入職,辦理了一些手續。HR 帶我到各個部門熟悉了下,然后就把我交給了之前面試我的 Android 負責人,我叫他嘉哥。公司給我新配了一整套電腦,處理器是 i5-7500 的,簡直是飛一般的感覺,我把一些基本環境配好后,嘉哥把我和其他 Android 程序員叫到辦公室,讓我們互相認識了下。有兩位實習生和兩位和我一屆的,但感覺他們技術都非常棒,看來以后要多多加油了啊!

嘉哥下午的時候把我帶到會議室,把公司的開發流程和項目的代碼大概的順了一遍,然后讓我自己這段時間先熟悉熟悉,第二天,讓我多看看某個方面的內容,因為現在這個模塊代碼有點耦合,希望我可以研究研究,然后想辦法抽離出來。

這個任務對我來說還是很有挑戰性的,因為項目的代碼體量特別大,我還得熟悉一段時間,抽離模塊的任務實際上就是封裝一個模塊,并且和業務解耦,是代碼優化和框架優化上的工作,比起以前那些寫寫頁面這樣的工作來說,當真非常有挑戰性,我不僅有壓力,而且也很興奮。

然后周三下午茶是披薩,清明放假前一天,舉辦了 3 月的生日會,大家一起唱生日歌分蛋糕的情形甚至讓我想到了大學生活。

新公司感悟

在公司才待了 3 天,但感觸很多,總結下。

因為以前在外包公司,代碼都是自己弄,所以代碼規范很不理想,在產品公司,感覺他們的代碼非常嚴格,文檔非常全面,所有模塊和功能的文檔都寫的很清楚,并且有專門的代碼規范文檔,細節到每個類和方法的命名,某個組件調用的方法,甚至強制規定某些代碼必須怎樣寫。而且,團隊還規定每次代碼提交后需要互相之間 review 代碼,有問題直接 fixme 指出來。并且,很多工作都是代碼優化上的,有時候是模塊抽離,有時候是組件化統一。總而言之,在這工作我的代碼規范和工程能力一定會極大提高。

然后,以前工作上我用的版本管理是 SVN,只在 GitHub 上用 Git,平時提交代碼的時候,主要也用的 AS 自帶的 Git 插件。嘉哥跟我說最好要用指令,我一開始不理解,認為用插件不是更方面嗎,后來才發現,項目中因為模塊分離,很多項目會統一用一個子模塊,所以如果不用指令,項目和子模塊指針管理就會出問題,而且 Git 指令操作更清晰明確,所以這 3 天我也花了不少功夫學習了指令。

我現在還在看代碼,因為還沒正式上手工作,所以還是有一些茫然在里面,希望自己能更加努力,多溝通,盡快融入到這個大家庭中。

3 月找工作過程的感悟

經過這一個月充滿壓力的裸辭找工作這段經歷,我收獲了很多感悟。

  • 如果工作經驗不是很多,盡量還是不要裸辭,老實說環境不好,壓力太大。
  • 「學習能力」、「解決問題的能力」、「激情與沖動」和「對技術的追求」是每個公司非常看重的。能進這家公司我感覺不一定是因為我的技術水平,因為我工作經驗少,當時技術面試也不是說完美發揮,技術肯定高不到哪去,但我給嘉哥展現出來的一些東西,讓他看到了我身上的可能性。有點類似 stormzhang 那位剛剛離職的同事當初入職薄荷的時候的情況吧。不過這只是我自己的想法,我也沒問過嘉哥,等以后有機會一定要問問他。
  • 學歷還是比較重要的。我明顯感覺到我作為一個 211 畢業生的確面試過程中有一定的優勢,能得到的面試機會也多一點。不過這并不是很重要,因為我這只是在南京,南京公司真的不多,如果去上海、杭州、北京這樣的城市,機會特別多,只要有機會面試,歸根究底是看能力。只不過學歷高的人得到面試的機會會多一點,能不能通過,大家的標準都一樣
  • 找工作切不可操之過急,有一些挫折時必然需要經歷的。不如老老實實的好好多看幾行代碼來的實際。
  • 在這種關鍵時刻,每天保持一定的運動量對整個人各方面狀態的保持非常有幫助!
  • 如果找到工作了,也不能大意,后面的試用期,你得花更大的努力才能徹底穩定。
  • 如果可以,技術面可以適當拓寬點,對 Android 來說,還是需要多看看 Framework 的。
  • 最重要的一點,「Read the fucking code」,源碼看起來!!

我最近在維護的一個開源項目,歡迎 star:WeaponApp

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容