今天辦完了在滴滴的離職手續,校招入職也停止了。回過頭去看,有很多想要去表達的東西。
在滴滴發生的一些有趣的事情
我負責的是一個大資料視覺化內部工具產品 iOS 客戶端和前端。其實在滴滴的日子裡我是在一個舒適圈當中,很多人都說在舒適圈裡呆久了會“鹹魚”,但是我個人覺得吧,“鹹魚”久了能夠發覺自己到底適合什麼,現在應該去做什麼。
產品 Swift 化
其實我還挺感謝這段時間的,有時間讓我能夠把一個純 Objective-C
的工程全部遷移到 Swift
上,截止到今天已經前遷移了 85%
,正是因為這個經歷讓我接下來做的所有的東西都在儘可能的使用 Swift
進行。
有趣的人
實習生同學
沒記錯的話,我應該伴隨四波實習生了。有些實習生同學到現在跟我都是很好的朋友,他們後來大部分都去了 BAT 和 TMD,如果大家需要內推的話,我可以幫忙聯絡一波哈哈哈~
我很少去問大家離職的原因,但隱約也能夠看得出來。一部分同學是外地過來實習,然後做了一個跳板。其實這種做法我不排斥,但是這種做法背後帶來的影響真的很難受。曾經有一個後來去了百度的同學,距離正式離職還有兩週的時間,新版本需求來了居然跟我說他不做了,要離職了......甚至還有上午來簽到,中午去面試,下午趕回來簽退,晚上回去寫需求的「奇葩」,然後 PM 各種找不到人。
滴滴是我實習的第三家公司,原本我有萌生回校考研的想法。但是後來見識到了一些研究生同學的「實力」後勸退我了,也慢慢想了很多,如果後續我感到比較累了,應該會去申請讀研究生吧。
淘寶大哥
去年組裡來了一個從淘寶出來的大哥,據說擁有 10 年移動開發經驗。剛開始我特別佩服,但是在接下來的溝通中我發現了他有有一些地方的思考和實踐完全匹配不上 10 年經驗,所以也在慢慢的跟他在心底裡較勁。大哥想在產品裡推 weex
,我學了一遍 weex
,做了一個 todo-list demo,發現並沒有什麼優勢,而且與 RN 同樣是做了一個 DSL 再轉換成 native 程式碼,但是可以基於「精簡版」 vue
進行開發的體驗符合滴滴基礎架構強依賴 vue
的優勢。
後來 flutter
1.0 釋出了,大哥又說要 all in flutter
,其實我到這個時間節點上已經很厭煩了,之前已經在上一個版本中不經過團隊決定擅自引入 weex
,這已經給了後續開發維護和包大小(雖然並沒有多大)挖了坑。現在又要 all in 到 fullter
,這很明顯是一個屁股決定腦子的想法。在組裡當時還聚集了一波前端、客戶端和後端的同學開了個研討會,本以為大哥已經使用 flutter
做了一些 demo,驗證了一些產品差異性問題,但整個會議下來通篇都是引用其它資料,會議結束後我非常惱火。
因此我接下來用了一週的時間完成了 flutter
的調研,產出三篇調研文章,得出了「flutter
現階段不錯,但不能直接拉入使用,沒有意義」,在人員允許的情況下做技術創新可以的決定。很明顯,大哥又直接在下一個版本中上了 flutter
模組,到這裡我已經忍無可忍了。上 weex
和 flutter
都是他一個人的決定,而且還在催著我趕緊上,我說「我不能上」,還給我黑人問號。
還有一些其它的事情,讓我覺得他的 10 年移動開發經驗有種「怪怪的」味道。
前端小哥
在回校寫畢設之前我都在為負責產品寫對外服務的版本,說白了就是把一些核心頁面轉為 H5
,套殼釋出。這段時間其實我還好,基本上學習了 vue
的全套腳手架,也熟悉了一些前端開發中的問題。
這一切都是一個前端小哥在帶著我。剛開始我覺得他很好,對待問題有鑽研的態度,也很願意分享自己的知識。但是直到後來我突然發現他的狀態好像發生了變化,遇到了幾個需求時,跟我說:“如果產品沒催你,你就別管了”。那時我心底裡開始有了不對勁的感覺,感覺大家都是在圍繞 PM 去打轉,而不是圍繞如何做好產品這件事去思考。不過也有可能是因為這個產品並不是核心。
工作環境
我一直都很喜歡滴滴的工作環境,甚至去參觀了一些其它國內外公司後都覺得滴滴的工作環境直接秒殺,而且滴滴是有人文素養的,我覺得應該沒有多少家公司能夠專門安排健身教練們每週三下午去每一個辦公區「拉起」每位同學起立進行工位健身吧?而且滴滴還有「全員運動健身計劃」,每個辦公區都有配了自家健身房,也推薦大家去健身,我從去年八月份開始到今年五一,增重了 10 斤,體形都出來了!
滴滴的食堂我不能說價格有多實惠(其實就是貴),但是應該算我瞭解到的各大公司食堂「好味道」 top2 了吧。
團隊氛圍
團隊氛圍應該是直接勸退我的一大最主要的因素吧。可以很坦誠的說,我沒有感受到團隊需要我的感覺,很多時候我都在思考到底是我的問題還是團隊的問題。
從確定要留在滴滴開始到現在,在遇到一些問題時我給自己開脫的藉口是一直都是「滴滴有讓我足夠自由的時間去做我想做的事情」,確實也讓我有足夠的時間去做了我想做事情,但是這個團隊氛圍讓我一直摸不著頭腦,不過很有可能我在的是一個後端主導的部門,但是我在前端同學裡也不受到看重,感覺我一直處在一種「遊離」的狀態,我看上去屬於這個團隊,但是這個團隊裡卻沒有我的位置。
其實如果後續能夠一直留在這個團隊裡我也無所謂,因為時間很自由,我可以兼顧生活、工作和興趣。在快速完成需求後,剩下的時間都是我的了,不會有說盲目加班的到特定時間的情況出現。但是到了五月份末時,公司層面的 HR 給我打了一個電話,溝通我入職後轉崗的事情,我感覺到了苗頭不對。溝通了一段時間,最終確定我居然要去「國際化支付」後端團隊,一臉懵逼。
其實轉崗到後端我也 OK,甚至也已經做好了準備,但是仔細一下:“我現在做的事情都沒摸透呢,為啥這麼著急轉崗”。轉崗我個人認為是要在目前的領域裡已經相當熟悉了,遇到了一些情況能夠提出很好的解決方案,而且我以後也有轉崗到後端的準備,但是近期沒有這麼快。
後記
現在回過頭去看,有很多個時間節點都已經幫我決定要離開,但是我一直在拿「時間自由」這個藉口來安慰自己,因為「時間」自由這件事讓我得到了很多,可以很坦然的說——不是因為錢。
位元組跳動吶!!!
跟位元組跳動扯上關係應該是去年年初,當時已經有位元組跳動的 HR 通過 github 找到我的聯絡方式,邀請我去面試,但是當時我在滴滴的成長還是比較平穩上升的,不快也不慢,整體氛圍我都很喜歡。甚至後續都位元組跳動的技術 leader 都加了微信邀請我去面試,在最後時刻我都鴿掉了,因為我能夠明確知道我肯定能進位元組跳動,但我還是很捨不得滴滴的氛圍。中間還有快手、天貓的同學也通過 github 聯絡到我,但每次都是在最後的時刻因為滴滴的氛圍全部放棄。
沒記錯的話,位元組跳動總共給我發了七次面試邀請。在最後一次面試邀請時,我接受了,因為我感受到了老天在幫我做一個決定。而且在拿到 WWDC19 Scholarship
,逛一圈矽谷後,我也認為自己應該出去看看了。下面是幾輪面試過程中靠著印象回憶起的一些問題。
一面
一面是個小哥哥,人很 nice,進門後給了一個滿滿的微笑,把我的心理防禦直接擊破,狀態回來了。
-
自我介紹。順著自我介紹說了好久,這點很重要,一個好的自我介紹,突出重點後基本上都在圍繞自我介紹展開了。
-
WWDC Scholarship 做的是什麼。順著這個給自己挖了坑,被面試官認為我很會做 UI。問了一道我之前沒考慮過的問題:當一個
UIButton
使用UIView
動畫從(100, 100)
到(200, 200)
座標的過程中,如果使用者點選此時的UIButton
會不會觸發點選事件。- 剛開始很快的說了“不會”。但是想了一下後,又改口說了“會”。實際上是不會,這涉及到了三種
layer
型別的理解,可見這篇文章。 - 在移動的過程當中,輸出該按鈕的
frame
,結果會是多少?這個我答出來了,是移動結束後的frame
。 解釋同上。
- 剛開始很快的說了“不會”。但是想了一下後,又改口說了“會”。實際上是不會,這涉及到了三種
-
給你一個
A
和B
檢視,如何找到它們的最近父檢視。我一開始直接就套用「二叉樹最近父節點」問題的思路去想,但中途小哥哥一直在給我提示,不用把它想得那麼難,這是一個很實際問題。到最後我才明白,其實只需要遞迴出A
檢視的superview
和B
檢視的superview
,再用Set
搞一搞就行了。 -
無限迴圈輪播圖的實現。常規問題,但是我扯太多了,提出了幾個解決思路,可以只用三個
UIButton
實現。 -
自定義轉場動畫。直接開啟
Vary
app,告訴面試官是怎麼實現的。 -
中間應該有問到一些計算機基礎問題,被我看出來了,然後叫停,再開啟之前基於
Cocos2dx
做的一個遊戲,涉及到了資源爭搶、多執行緒、效能優化、多節點渲染的問題。直接過 -
滴滴帶給你什麼成長
-
......
還有一些問題想不起來了,一個小時多一點。中途我有好幾個問題都還在思考中,面試官就跟我說:“其實你回答不出來也沒關係,這就是個概念問題”,我懵了,還能這樣面試?好吧,那就索性說不了解好了。面試官面帶笑容的出去,我覺得一面評價應該還行。
二面
去了趟洗手間,二面面試官太嚴肅了。跟一面簡直就是天壤之別,面試氛圍尬得我不行,有幾次氛圍太壓抑都想直接跟面試官攤牌:“你是不想面了還是怎麼著?”。
剛開始前兩個問題我沒看出來什麼問題,但是越到後邊我就感覺有點「怪異」,二面面試官應該不是做 iOS 的。到後邊我發現了他開啟了我的PJ 的 iOS 開發日常 repo,每一個問題都是我的 repo 裡記錄的問題,然後讓我在白板上畫圖寫思路寫核心程式碼。總之二面給我感覺就是在驗證你的水平,repo 裡的東西是不是都是你寫的,都是你的個人成果。
- MRC 和 ARC 的不同
- NSString
- 記憶體劃分
- __weak
- 響應鏈
- https
- 你和其他同學有什麼不同
- ......
有些問題也想不起來了,都是 repo 裡的內容,沒啥壓力,唯一的壓力就是我都沒見過二面面試官的牙齒。二面大概四十分鐘不到,結束後大概 12:30。帶我去吃飯,也問了我 WWDC19 Scholarship
做的是什麼,我在滴滴的一些情況,整個飯局也很尷尬,但是位元組跳動的飯菜,比滴滴食堂差遠了。
三面
等了大概有十分鐘左右,leader 來了。我們之前已經在微信上聊過了,所以整場下來就跟朋友聊天似的。告訴我他要問我三個環節,第一個是演算法問題;第二個是設計模式;第三個是個人規劃。我聽到著基本上就斷定穩了。
- 聊了 WWDC。你最喜歡 WWDC 哪個環節之類的問題。
- 給定一個無符號整型 32 位陣列,請把所有 0 後置,請寫出完整程式碼。簡單到懷疑,剛開始以為有坑,問了一些細節問題。
- 題目同上,要求為使用者可以指定後置的數字。封裝了一下。
- 題目同上,要求使用者可以指定後置的判斷條件,比如二進位制下第一位為 0 的數後置或能夠被 2 整除的數後置等規則。其實還好,封裝了一個
Closure
暴露給呼叫方,自己填寫比對規則。 - 儘可能的優化時間、空間複雜度。我只能把時間複雜度優化到 O(1),空間複雜度搞不定。
tableView
多type
優化。就是要設計一個好用的工廠。我用了配置檔案,初步要求達到了。- 遊戲和
Vary
又幫了我,一些強弱引用的問題看到實際的產品中解決了問題就不再追問了。 - 個人意願,聊了很多。
HR 面
HR 在微信上跟我說三面面試官反映都不錯,她就不面了,我:“???”
後記
其實我感覺這次位元組跳動的面試挺玄乎的,感覺就像朋友聊天侃大山似的,有些問題我都還沒怎麼思考就直接攤牌跟我說這些概念問題不懂也沒關係。也沒有遇到上來先“啪”的來一套演算法題的情況。
其實我感覺是 leader 和其它同學都知道「我」,不管是從其它社群或者 github 上都瞭解到了「我」到底有沒有實力,再加上有滴滴這麼長時間的實習加成,其實說白了還是 WWDC19 Scholarship
好使,大中華區被 Apple 選中的優秀學生開發者就 27 個,今年還是最多的一年,都被 Apple 選中了還挑什麼是吧~
我的想法
很多同學都在問我:“你不是不喜歡加班嗎?”
其實這個問題的成立是放在做的事情不討厭的前提下,如果說負責的事情已經提不起什麼興趣了,就算一天只工作兩小時也覺得這兩個小時過得很渾渾噩噩。
還有同學問我是不是頭條給的薪資高。其實說實話,還真不是,頭條的 HR 在溝通入職詳情時直接問了我:“你認為自己是一個什麼樣的水平,SP 還是 SSP?”,我直接說:“我都無所謂,重點要看做的產品是什麼”,你看,像我這樣的人怎麼可能賺大錢 2333。
其實我真不想離開滴滴,今天去辦離職時,感覺進入辦公區就跟回家似的,狀態都回來了。但是這個地方已經不屬於我了呀~整個團隊除了之前帶我的導師,沒有任何一個人起身告別,好吧,那就這樣吧。
其實我也沒什麼其它的想法,存粹就是未來入職滴滴後要做的事情我不喜歡,既然不喜歡那就去一個能夠提起我興趣,看重我的團隊,更何況也可以藉此機會改變一下自己的工作習慣,去感受一下大小周的快感(放屁!