從每一段經歷中學習,在每一件事情中修行。善於從失敗中學習。
引子我今年 36 歲,已有 8 年 JAVA 開發經驗。在阿里雲三年半,有贊四年半,已是標準的大齡程式設計師了。
在多年的讀書、學習和思考中,我的價值觀、人生觀和世界觀也逐步塑造成型。我意識到自己的志趣在於做教育文化方面,因此在半衝動之下,8月份下旬,裸辭去找工作了。有限理性難以阻擋衝動的個性。不建議裸辭,做事應該有規劃、科學合理。
儘管我最初認為自己“有理想有目標有意願有能力”,找一份教育開發的工作應該不難,但事實上我還是過於樂觀了。現實很快給我潑了一瓢瓢冷水。我屢戰屢敗,又屢敗屢戰。驚訝地發現自己還有這個韌性。面試是一項歷煉,如果沒有被失敗擊倒,那麼從中會生長出一份韌性,這種韌效能讓人走得更遠。誰沒有經歷過失敗的歷練呢?失敗是最偉大的導師了,如果你願意跟他學一學的話。
在面試的過程中,我很快發現自己的劣勢:
投入精力做業務,技術深度不夠,對原理的理解侷限於較淺的層次;視野不夠開闊,侷限於自己所做的訂單業務線,對其它關聯業務線(比如商品、營銷、支付等)瞭解不夠;思維不夠開闊,大部分時間投入在開發和測試上,對運維、產品、業務、商業層面思考都思考不多;缺乏管理經驗,年齡偏大;這兩項劣勢我一度低估,但逐漸凸顯出來,甚至讓我一度不自信,但最終我還是走出來了。但我也有自己的優勢。職業競爭的基本法則是稀缺性和差異化。能夠解決大型專案的架構設計和攻克技術難題,精通某個高階技術領域是稀缺性體現;而能夠做事能做到縝密周全精細化,有高併發大流量系統開發經驗,則是差異性體現。稀缺性是上策,差異化是中策,而降格以求就是下策了。
我缺乏稀缺性優勢,但還有一點差異化優勢:
對每一份工作都很踏實,時間均在 3 年 - 5 年之間,有一點大廠光環,能獲得更多面試機會(雖然不一定能面上);堅持寫部落格,孜孜不倦地追求軟體開發的“道”,時常思考記錄開發中遇到的問題及解決方案;做事認真嚴謹,能夠從整體分析和思考問題,也很注重基礎提升;對工程質量、效能最佳化、穩定性建設、業務配置化設計有實踐經驗;大流量微服務系統的長期開發維護經驗。我投出簡歷的公司並不多。在不多的面試中,我逐漸意識到網上的“斬獲幾十家大廠offer”的說法並不可信。理由如下:
如果能真斬獲大量大廠 offer ,面試的級別很大機率是初級工程師。要知道面試 4 年以上的工程師,面試的深度和廣度令人髮指,從基礎的演算法、到各種中介軟體的原理機制到實際運維架構,無所不包,真個是沉浸在“技術的海洋”,除非一個人的背景和實力非常強大,平時也做了非常深且廣的沉澱;一個背景和實力非常強大的人,是不會有興趣去投入這麼多精力去面各種公司,僅僅是為了吹噓自己有多能耐;實力越強的人,他會有自己的選擇邏輯,投的簡歷會更定向精準。話說,他為什麼不花更多精力投入在那些能夠讓他有最大化收益的優秀企業呢?培訓機構做的廣告。因為他們最清楚新手需要的是信心,哪怕是偽裝出來的信心。好了,閒話不多說了。我講講自己在面試中所經受的歷練和思考吧。
準備工作人生或許很長,但面試的時間很短,最長不過一小時或一個半小時。別人如何在短短一小時內能夠更清晰地認識長達三十多年的你呢?這就需要你做大量細緻的準備工作了。在某種程度上,面試與舞蹈有異曲同工之妙:臺上五分鐘,臺下十年功。
準備工作主要包括簡歷準備、個人介紹、公司瞭解、技術探索、表述能力、常見問題、中高階職位、好的心態。準備工作是對自身和對外部世界的一次全面深入的重新認知。
初期,我以為自己準備很充分,簡歷改改就完事了。隨著一次次受挫,才發現自己的準備很不充分。在現在的我看來,準備七分,應變三分。準備,就是要知己知彼,知道對方會問哪些問題(通常是系統/專案/技術的深度和廣度)、自己應當如何作答;應變,就是當自己遇到不會、不懂、不知道的問題時,如何合理地展示自己的解決思路,以及根據面試中答不上來的問題查漏補缺,夯實基礎。
這個過程,實際上也是學習的過程。持續的反思和提煉、學習新的內容、重新認識自己和過往經歷等。
簡歷準備
最開始,我做得比較簡單。把以前的簡歷拿出來,新增上新的工作經歷,略作修改,但整體上模板基本不變。
在基本面上,我做的是較為細緻的,誠實地寫上了自己擅長和熟悉的技能和經驗經歷,排版也盡力做得整潔美觀(學過一些 UI 設計)。不浮誇也不故作謙虛。
在擴充套件面上,我做的還是不夠的。有一天,一位獵頭打電話給我,問:你最大的優勢是什麼?我頓時說不上來。當時也未多加思考。在後續面試屢遭失敗之後,一度有些不自信之後,我開始仔細思考自己的優勢來。然後將“對工程質量、效能最佳化、穩定性建設、業務配置化設計有深入思考和實踐經驗”寫在了“技能素養”欄的第一行,因為這確實是我所做過的、最實在且腳踏實地的且具備概括性的。
有時,簡歷內容的編排順序也很重要。之前,我把掌握的語言及技術寫在前面,而“專案管理能力和團隊影響力”之類的寫在後面。但投年糕媽媽之後,未有面試直接被拉到不合適裡面,受到了刺激,我意識到或許是對方覺得我管理經驗不足。因此,刻意將“專案管理能力和團隊影響力”提到了前面,表示自己是重視管理方面的,不過,投過新的簡歷之後,沒有迴應。我意識到,這樣的編排順序可能會讓人誤解我是管理能力偏重的(事實上有一位 HR 問我是不是還在寫程式碼),但實際上管理方面我是欠缺的,最後,我還是調回了原來的順序,凸出自己“工程師的本色”。後面,我又做了一些語句的編排上的修改。
隨著面試的進展,有時,也會發現自己的簡歷上寫得不夠或者以前做得不夠的地方。比如,在訂單匯出這段經歷裡,我只是寫了大幅提升效能和穩定性,顯得定性描述化,因此,我添加了一些量化的東西(2w阻塞 => 300w+,1w/1min)作為證實;比如,8 月份離職,到 12 月份面試的時候,有一段空檔期,有些企業會問到這個。因此,我索性加了一句話,說明這段時間我在幹些啥;比如,代表性系統和專案,每一個系統和專案的價值和意義(不一定寫在上面,但是心裡要有數)。功夫要下足。
再比如,我很詳細地寫了有讚的工作經歷及經驗,但阿里雲的那段基本沒動。而有些企業對這段經歷更感興趣,我卻覺得沒太多可說的,留在腦海裡的只有少量印象深刻的東西,以及一些部落格文章的記錄,相比這段工作經歷來說顯得太單薄。這裡實質上不是簡歷的問題,而是過往經歷覆盤的問題。建議,在每個專案結束後,都要寫個自我覆盤。避免時間將這些可貴的經歷沖淡。
每個人其實都有很多可說的東西,但記錄下來的又有多少呢?值得談道的有多少呢?過往不努力,面試徒傷悲。
簡歷更新的心得:
簡歷是充分展示自己的濃縮精華,也是重新審視自己和過往經歷的契機;不僅僅是簡要介紹技能和經驗,更要最大程度凸顯自己的優勢領域(差異化);增強工作經歷的表述,凸顯貢獻,贏得別人的認可;覆盤並記錄每一個專案中的收穫,為跳槽和麵試打下好的鋪墊。個人介紹
面試前通常會要求做個簡要的個人介紹。個人介紹通常作為進入面試的前奏曲和緩衝階段,緩和下緊張氣氛。
我最開始的個人介紹,個性啊業餘生活啊工作經歷啊志趣啊等等,似乎不知道該說些什麼。實際上,個人介紹是一個充分展示自己的主頁。主頁應當讓自己最最核心的優勢一目瞭然(需要挖掘自己的經歷並仔細提煉)。我現在的個人介紹一般會包括:個性(比如偏安靜)、做事風格(工作認真嚴謹、注重質量、善於整體思考)、最大優勢(owner意識、執行力、工程把控能力)、工作經歷簡述(在每個公司的工作負責什麼、貢獻了什麼、收穫了什麼)。個人介紹簡明扼要,無需贅言。
個人介紹,是對自己的一個更為清晰、深入和全面的認識契機。
公司瞭解
很多人可能跟我一樣,對公司業務瞭解甚少,就直接投出去了。這樣其實是不合理的。首先,我個人是不贊成海投的,而傾向於定向投。找準方向投,雖然目標更少,但更有效率。這跟租房一樣,我一般在豆瓣上租房,雖然目標源少,但逮著一個就是好運。
投一家公司,是因為這家公司符合意向,值得爭取,而不是因為這是一家公司。就像找物件,不是為了找一個女人。要確定這家公司是否符合意向,就應當多去了解這家公司:主營業務、未來發展及規劃、所在行業及地位、財務狀況、業界及網路評價等。
在面試的過程中適當談到公司的業務及思考,是可加分項。亦可用於“你有什麼想問的?”的提問。
技術探索
技術能力是一個技術人的基本素養。因此,我覺得,無論未來做什麼工作,技術能力過硬,總歸是最不可或缺的不可忽視的。
原理和設計思想是軟體技術中最為精髓的東西。一般軟體技術可以分為兩個方面:
原理:事物如何工作的基本規律和流程;架構:如何組織大規模邏輯的藝術。技術探索,一定要先理解原理。原理不懂,就會浮於表層,不能真正掌握它。技術原理探究要掌握到什麼程度?資料結構與演算法設計、考量因素、技術機制、最佳化思路。要在腦中回放,直到一切細節而清晰可見。如果能夠清晰有條理地表述出來,就更好了。
技術原理探究,一定要看原始碼。看了原始碼與沒看原始碼是有區別的。沒看原始碼,雖然說得出來,但終是隔了一層紙;看了原始碼,才捅破了那層紙,有了自己的理解,也就能說得更加有底氣了。當然,也可能是我缺乏演戲的本領。
我個人不太贊成刷題式面試。雖然刷題確實是進廠的捷徑,但也有缺點:
它依然是別人的知識體系,而不是自己總結的知識體系;技術探究是為了未來的工作準備,而不是為了應對一時之需,否則即使進去了還是會處於麻痺狀態。經過系統的整理,我逐步形成了適合自己的技術體系結構:“網際網路應用服務端的常用技術思想與機制綱要” 。在這個基礎上,再博採眾長,看看面試題進行自測和查漏補缺,是更恰當的方式。我會在這個體系上深耕細作。
表述能力
目前,絕大多數企業的主要面試形式是透過口頭溝通進行的,少部分企業可能有筆試或機試。口頭溝通的形式是有其侷限性的。對錶述能力的要求比較高,而對專業能力的凸顯並不明顯。一個人掌握的專業和經驗的深度和廣度,很難通過幾分鐘的表述呈現出來。往往深度和廣度越大,反而越難表述。而技術人員往往疏於表達。
我平時寫得多說得少,說起來不利索。有時沒講清楚背景,就直接展開,兼之囉嗦、跳躍和迴旋往復(這種方式可能更適合寫小說),讓面試官有時摸不著頭腦。表述的條理性和清晰性也是很重要的。不妨自己測試一下:Dubbo 的架構設計是怎樣的? Redis 的持久化機制是怎樣的?然後自己回答試試看。
表述能力的基本法則:
先總後分,先整體後區域性;先說基本思路,然後說最佳化;體現互動。先綜述,然後向面試官詢問要聽哪方面,再分述。避免自己一腦瓜子傾倒出來,讓面試官猝不及防;系統設計的場景題,多問一些要求,比如時間要求、空間要求、要支援多大資料量或併發量、是否要考慮某些情況等。常見問題
面試是透過溝通來理解雙方的過程。面試中的問題,千變萬化,但有一些問題是需要提前準備好的。
比如“靈魂N問”:
你為什麼從 XXX 離職?你的期望薪資是多少?你有一段空檔期,能解釋下怎麼回事麼?你的職業規劃是怎樣的?高頻技術問題:
基礎:資料結構與演算法、網路;微服務:技術體系、元件、基礎設施等;Dubbo:Dubbo 整體架構、擴充套件機制、服務暴露、引用、呼叫、優雅停機等;MySQL:索引與事務的實現原理、SQL 最佳化、分庫分表;Redis : 資料結構、快取、分散式鎖、持久化機制、複製機制;分散式:分散式事務、一致性問題;訊息中介軟體:原理、對比;架構: 架構設計方法、架構經驗、設計模式;效能最佳化: JVM、GC、應用層面的效能最佳化;併發基礎:ConcurrentHashMap, AQS, CAS,執行緒池等;高併發:IO多路複用;快取問題及方案;穩定性:穩定性的思想及經驗;生產問題:工具及排查方法。中高階職位
說起來,我這人可能有點不太自信。我是懷著“踏實做一個工程師”的思想投簡歷的。
對於大齡程式設計師,企業的期望更高。我的每一份“高階工程師”投遞,自動被轉換為“技術專家”或“架構師”。無力反駁,倍感壓力。面試中高階職位,需要更多準備:
你有帶團隊經歷嗎?在你 X 年的工作經歷中,有多少時間用於架構設計?架構過程是怎樣的?你有哪些架構設計思想或方法論?如果不作準備,就被一下子問懵,亂了陣腳。實際上,我或許還是存著僥倖心理把“技術專家”和“架構師”崗位當做“高工”來面試的,也就無一不遭遇失敗了。顯然,我把次序弄反了:應當以“技術專家”和“架構師”的規格來面試高階工程師。
好吧,那就迎難而上吧!我不是懼怕挑戰的人。
此外,“技術專家”和“架構師”職位應當至少留一天的時間來準備。已經有豐富經驗的技術專家和架構師可以忽略。
好的心態
保持好的心態也尤為重要。我經歷了“樂觀-不自信-重拾信心”的心態變化過程。
很長一段時間,由於“求成心切”,生怕某個技術問題回答不上來搞砸,因此小心謹慎,略顯緊張,結果已經梳理好的往往說不清楚或者說得不夠有條理。衝著“拿 offer ”的心態去面試,真的很難受,會覺得每場面試都很被動那麼難過,甚至有點想要“降格以求”。
有時,我在想:咋就混成這個樣子了呢?按理來說,這個時候我應該有能力去追求自己喜愛的事業了啊!還是平時有點鬆懈了,視野狹窄,積累不夠,導致今天的不利處境。
我是一個守時的人,也希望對方儘可能守時。杭州的面試官中,基本是守時的,即使遲到也在心理接受範圍內,回武漢面試後,節奏就有點被少量企業帶偏了。有一兩次,我甚至不確定面試官什麼時候進入會議。我想,難道這是人才應該受到的“禮待”嗎?我有點被輕微冒犯的感覺了。不過我還是“很有涵養地”表示沒事。但我始終覺得:面試官遲到,是對人才的不尊重。進入不尊重人才的公司,我是懷有疑慮的。良禽擇木而棲,良臣擇主而事。難道我能因為此刻的不利處境,而放棄一些基本的原則底線,而屈從於一份不尊重人才的 offer 嗎?
我意識到:一個人應當用其實力去贏得對方的尊重和賞識,以後的合作才會更順暢。不若,哪怕惜其無緣,亦不可強留。無論別人怎麼存疑,心無旁騖地打磨實力,挖掘自己的才幹和優勢,終會發出自己的光芒。因此,我的心態頓時轉變了:應當專注去溝通,與對方充分認識瞭解,贏得對方心服的認可,而不是拿到一張入門券,成為幹活的工具。
有一個“石頭和玉”的小故事,把自己當做人才,並努力去提升自己,才能獲得“人才的禮遇”;把自己當石頭賤賣,放鬆努力,也就只能得到“石頭的禮遇”。儘管一個人不一定馬上就具備人才的能力,但在自己的內心裡,就應當從人才的視角去觀察待入職的企業,而不僅僅是為了找一份“賺更多錢”的工作。
此外,焦慮也是不必要的。焦慮的實質是現實與目標的差距。一個人總可以評估目標的合理性及如何達成目標。如果目標過高,則適當調整目標級別;目標可行,則作出合理的決策,並透過持續的努力和恰當的出擊來實現目標。決策、努力和出擊能力都是可以持續修煉的。
面試歷煉技術人的面試還是更偏重於技術,因此,技術的深度和廣度還是要好好準備的。面試官和候選人的處境是不一樣的,一個面試官問的只是少量點,但是多個面試官合起來就是一個面。明白這一點,作為面試官的你就不要忘乎所以,以為自己就比候選人厲害。
我所認為的教育事業,並不侷限於現在常談起的線上教育或 K12 教育,而是一個教育體系,任何可以更好滴起到教育效果的事業,包括而不限於教學、閱讀、音樂、設計等。
接力棒科技-高工
面的第一家。暢談一番後,沒音訊了。但我也沒有太在意。面試官問的比較偏交易業務性的東西,較深的就是如何保證應用的資料一致性了。
此時的我,就像在路上扔了一顆探路的小石子,尚未意識到自己的處境。
網易雲音樂-高工
接著是網易雲音樂。大廠就是大廠。一面問的盡是快取、分散式鎖、Dubbo、ZK, MQ 中介軟體相關的機制。很遺憾,由於我平時關於技術原理的沉澱還是很少,基本是“一問兩不知”,掛得很出彩。
此時,我初步意識到自己的技術底子還很薄弱,也就開始了廣闊的技術學習和夯實,自底向上地梳理原理和邏輯,系統地進行整理總結,最終初步形成了自己的網際網路服務端技術知識體系結構。
銘師堂-技術專家
架構師面試的。問的相對多了一些,DB, Redis 等。反饋是技術還行,但缺乏管理經驗。這是我第一次意識到大齡程式設計師缺乏管理經驗的不利。中小企業的技術專家線招聘中,往往附加了管理經驗的需求。應聘時要注意。
缺乏管理經驗,該怎麼辦呢?思考過一段時間後,我的想法是:
改變能改變的,不能改變的,學習它。比如技術原理的學習是我能夠改變的,但管理經驗屬於難以一時改變的,那就多瞭解點管理的基本理論吧。從經歷中挖掘相關經驗。雖然我沒有正式帶團隊的實際經驗,但是有帶專案和帶工程師,管控某個業務線的基本管理經驗。多多挖掘自己的經歷。位元組教育-高工
位元組教育面試,我給自己挖了不少坑往裡跳。
比如面試官問,講一個你比較成就感的專案經歷。我選擇的是近 4 年前的週期購專案。雖然這是我入職有讚的第一個有代表性的專案,但時間太久,又沒有詳細記錄,很多技術細節遺忘不清晰了。我講到當時印象比較深的“一體化”設計思想,卻忘記了當時為什麼會有這種思想(未做仔細記錄)。
再比如,一個上課的場景題,我問是用 CS 架構還是 BS 架構?面試官說用 CS 架構吧。這不是給自己挖坑嗎?明明自己不熟悉 CS 架構,何必問這個選擇呢,不如直接按照 BS 架構來講解。哎!
位元組教育給我的反饋是:業務 Sense 不錯,系統設計能力有待提高。我覺得還是比較中肯的。因此,也開始注重系統設計實戰方面的文章閱讀和思考訓練。
經驗是:
做專案時,要詳細記錄每個專案的技術棧、技術決策及原因、技術細節,為面試做好鋪墊;提前準備好印象最深刻的最代表性的系統和專案,避免選擇距離當前時間較久的缺乏詳細記錄的專案;選擇熟悉的專案和架構,至少有好的第一印象,不然給面試官的印象就是你啥都不會。咪咕數媒-架構師
好傢伙,一下子 3 位面試官群面。可能我以前經歷的太少了吧。似乎國企面試較高階職位,喜歡採取這種形式。兼聽則明偏聽則暗嘛。問的問題也很廣泛,從 ES 的基本原理,到機房的資料遷移。有些技術機制雖然學習過,但不牢固,不清晰,答的也不好。比如 ES 的搜尋原理最佳化,講過倒排索引後,我對 Term Index 和 Trie 樹 講不清楚。這說明,知道並不代表真正理解了。只有能夠清晰有條理地把思路和細節都講清楚,才算是真正理解了。
印象深刻的是,有一個問題:你有哪些架構思想?這是第一次被問到架構設計方面的東西,我頓時有點慌亂。雖然平時多有思考,也有寫過文章,卻沒有形成系統精煉的方法論,結果就是答的比較凌亂。
塗鴉智慧-高工
應聘塗鴉智慧,是因為我覺得這家企業不錯。優秀的企業至少應該多溝通一下,說不準以後有合作機會呢!看問題的思維要開闊一些,不能死守在自己想到的那一個事情上。
塗鴉智慧給我的整體觀感還是不錯的。面試官也很有禮貌有耐心,整體架構、技術和專案都問了很多,問到了我熟悉的地方,答得也還可以。也許我的經驗正好是切中他們的需求吧。
若不是當時想做教育的執念特別強,我很大機率會入職塗鴉智慧。物聯網在我看來應該是很有趣的領域。
跟誰學-技術專家
“跟誰學”基本能答上來。不過反饋是:對於提問抓重點的能力有所欠缺,對於技術的歸納整理也不夠。我當時還有點不服氣,認為自己寫了那麼多文章,也算是有不少思考,怎能算是總結不夠呢?頂多是有技術盲點。技術猶如海洋,誰能沒有盲點?
不過現在反觀,確實距離自己應該有的程度不夠。對技術原理機制和生產問題排查的總結不夠,不夠清晰細緻;對設計實踐的經驗總結也不夠,不夠系統紮實。這個事情還要持續深入地去做。
此外,面得越多,越發現自己的表述能力確實有所欠缺。囉嗦、容易就一點展開說個沒完、脫離背景直接說方案、跳躍、迴旋往復,然後面試官很可能沒耐心了。應該遵循“先總後分”、“基本思路-實現-最佳化”的一些基本邏輯來作答會更好一些。表述能力真的很重要,不可只顧著敲程式碼。還有每次面教育企業就不免緊張,生怕錯過這個機會。
這是第二家直接告訴我年齡與經驗不匹配的企業,加深了我對年齡偏大的憂慮,以致於開始有點不自信了。
那麼我又是怎麼重拾信心的呢?有一句老話:“留得青山在,不怕沒柴燒”。就算我年齡比較大,如果我的技術能力打磨得足夠硬朗,就不信找不到一家能夠認可我的企業。大不了我去做開源專案好了。具備好的技術能力,並不一定就侷限在企業的範圍內去發揮作用,也沒必要侷限於那些被年齡偏見所矇蔽的人的認知裡。外界的認可固然重要,內在的可貴性卻遠勝於外在。
億童文教-架構師
也是採用的 3 人同時面試。主要問的是專案經歷,技術方面問得倒不是深入。個人覺得答得還行。面試官也問了架構設計相關的問題,我答得一般。此時,我仍然沒有意識到自己在以面“高階工程師”的規格來面試“架構師”崗位。
面試官比較溫和,HR 也在積極聯絡和溝通,感覺還不錯。只是,我沒有主動去問反饋意見,也就沒有下文了。
新東方-高工
面試新東方,主要是因為切中我做教育的期望,雖然職位需求是做資訊管理系統,距離我理想中的業務還有一定距離。經過溝通了解,他們更需要的是對運維方面更熟悉的工程師,不過我正好對運維方面不太熟悉,平時關注不多,因此不太符合他們的真實招聘要求。面試官也是很溫和的人,老家在宜昌,是我本科上大學的地方,面試體驗不錯。
以後要花些時間學習一些運維相關的東西。作為一名優秀的工程師和合格的架構師,是要廣泛學習和熟悉系統所採用的各種元件、中介軟體、運維部署等的。要有綜觀能力,不過我醒悟的可能有點遲。Better later than never.
ZOOM-高工
ZOOM 的一位面試官或許是我見過的所有面試官中最差勁的。共有兩位面試官,一位顯得很有耐心,另一位則挺著胖胖的肚子,還打著哈欠,一副不怎麼關心面試和候選人的樣子。我心想,你要不想面,為啥還要來面呢?你以為候選人就低你一等麼?換個位置我可以暴打你。不過我還是很有禮貌的,當做什麼事也沒發生。公司在挑人,候選人也在挑選公司。
想想,ZOOM 還是疫情期間我們公司用過的遠端通訊會議軟體。印象還不錯,有這樣的工程師和麵試官藏於其中,我也是服了。難倒他是傳說中的大大神?據我所知,國外對國內的網際網路軟體技術設施基本呈碾壓態勢,中國大部分企業所用的框架、中介軟體、基礎設施等基本是拿國外的來用或者做定製化,真正有自研的很少,有什麼好自滿的呢?
阿優文化-高工
阿優文化有四輪技術面。其中第一個技術面給我印象比較深刻。看上去,面試官對作業系統的原理機制特別擅長和熟悉。很多問題我都沒答上來。本以為掛了,不過又給了扳回一局的機會。第二位面試問的專案經歷和技術問題是我很熟悉的。第三位面試官問的比較廣泛,有答的上來的,有答不上來的。不過面試官很耐心。第四位是技術總監,也問得很廣泛細緻。
想想,我想問題做決策還是過於簡單的,不會做很複雜的計算和權衡。
小米-專家/架構
應聘小米,主要是因為職位與之前在有贊做的很相似,都是做交易中臺相關。瀏覽小米官網之後,覺得他們做的事情很棒,可是與我想做教育文化事業的初衷不太貼合。
加入小米的意願不太強烈,面試也就失去了大半動力。我這個性子還是要改一改。
視覺中國-高工
圍繞技術、專案和經歷來問。總體來說,技術深度並不是太難,專案方面也涉及到了。人力面前輩很溫和,我以為會針對自己的經歷進行一番“轟炸”,結果是為前輩講了講有讚的產品服務和生意模式,然後略略帶了下自己的一些經歷。
科大訊飛-架構師
一二面,感覺面試官對安排的面試不太感興趣。架構師,至少是一個對技術和設計能力非常高要求的職位。一面的技術和架構都問了些,二面總圍繞我的背景和非技術相關的東西問,似乎對我的外在更關注,而對我自身的技術和設計能力不感興趣。交流偏淺。
能力固然有高下之分,但尊重人才的基本禮節卻是不變的。尊重人才,是指聚焦人才的能力和才學,而不是一些與才學不甚相關的東西。
青藤雲-高工
青藤雲的技術面試風格是溫和的。感受到坦率交流的味道,被認可的感覺。感受到 HR 求才若渴的心情。和我之前認為的“應當用其實力去贏得對方的尊重和賞識”不謀而合。
騰訊會議-高工
和騰訊面試官是用騰訊會議軟體面試騰訊會議的職位。哈哈。由於網路不太穩定,面試過程充滿了磕磕碰碰,一句話沒說完整就聽不清楚了。可想情況如何。但是我們都很有很有很有耐心,最終一起完成了一面。面試是雙方智慧與力量的較量,更是雙方一起去完成一件事情、發現彼此的合作。這樣想來,傳統的“單方考驗篩選式”的面試觀念需要革新。
由於我已經拿到 offer , 且騰訊會議的事情並不太貼合自己的初衷,因此,我與騰訊方面溝通,停止了二面。
選擇
當拿到多個 offer 時,如何選擇呢?我個人主要看重:1. 志趣與驅動力; 2. 薪資待遇; 3. 公司發展前景和個人發展空間; 4. 工作氛圍; 5. 小而有戰鬥力的企業。
在視覺中國與青藤雲之間如何選擇?作個對比:
薪資待遇:兩者的薪資待遇不相上下,也都是認可我的;視覺中國給出的是 Leader 的職位,而青藤雲給出的是核心業務的承諾;工作氛圍:青藤雲應該更偏工程師文化氛圍,而視覺中國更偏業務化;挑戰性:青藤雲的技術挑戰更強,而視覺中國的業務挑戰性更強;志趣與驅動力:視覺中國更符合我想做文化的事情,而青藤雲安全並不貼合我想做教育文化事業的初衷,而且比較偏技術和底層(我更希望做一些人文性的事情)。但青藤雲做的是關於安全的事情,安全是一件很有價值很有意義的事情。而且,以後安全也可以服務於教育行業。有點曲線救國的味道。尤其是創始人張福的理想主義信念“讓安全之光照亮網際網路的每個角落”及自己的身體力行,讓人更有一些觸動。最終,我覺得做安全比做圖片版權保護稍勝出一小籌。此外,我覺得做教育,更適合自己的是程式設計教育,或者是工程師教育。我還想成為一名系統設計師。還需要積累更多生產實踐經驗。可以多與初中級工程師打交道,在企業內部做培訓指導。或者工作之餘錄製影片,上傳到 B 站,服務廣大吃瓜群眾。將來,我或許還會寫一本關於程式設計設計的書,匯聚畢生所學。
因此,經過一天慎重的考慮,我決定,加入青藤雲安全。當然,做這個選擇的同時,也意味著我選擇了一個更大的挑戰:在安全方面我基本一窮二白,需要學習很多很多的知識和經驗,對於我這個大齡程式設計師來說,是一項不小的挑戰。
小結很多事情都有解決的方法,即使“頭疼的”大齡程式設計師找工作也不例外。確立明確清晰的目標、制定科學合理的決策、持續的努力、掌握基本面、恰當的出擊,終能斬獲勝利的果實。但要強調一下:功夫在平時。平時要是不累積好,面試的時候就要花更多時間去學習,會受挫、磕磕碰碰、過得也不太舒坦。還是平攤到平時比較好。此外,平時視野也要保持開闊,切忌在面試的時候才“幡然醒悟”。
一個重要經驗是,要善於從失敗中學習。正是在杭州四個月空檔期的持續學習、思考、積累和提煉,以及面試失敗的反思、不斷調整對策、完善準備、改善原有的短板,採取更為合理的方式,才在回武漢的短短兩個周內拿到比較滿意的 offer 。
此外,值得提及的是,對於技術人員,寫部落格是一件很有價值的事情。面試透過溝通去了解對方,有其侷限性所在。面試未能篩選出符合的人才其實是有比較大機率的:1. 面試的時間很短,即使是很有經驗的面試官,也會看走眼(根本侷限性);2. 面試官問到的正好是自己不會的(運氣問題);3. 面試官情緒不好,沒興趣(運氣問題);4. 面試官自身的水平。因此,具備真才實學而被 PASS 掉,並不值得傷心。寫部落格的意義在於,有更多展示自己思考和平時工作的維度。
尊重人才的企業,一定是希望從多方面去認識候選人(在優點和缺點之間選擇確認是否符合期望),包括部落格;不尊重人才的企業,則會傾向於用偷懶的方法,對候選人真實的本領不在意,用一些外在的標準去快速過濾,固然高效,最終對人才的識別能力並不會有多大進步。
經過這一段面試的歷煉,我覺得現在相比離職時的自己,又有了不少進步的。不說脫胎換骨,至少也是蛻了一層皮吧。差距,差距還是有的。起碼面試那些知名大廠企業的技術專家和架構師還有差距。這與我平時工作的挑戰性、認知視野的侷限性及總結不足有關。下一次,我希望積蓄足夠實力做到更好,和內心熱愛的有價值有意義的事情再近一些些。
面試,其實也是一段工作經歷。