很長時間沒有寫Blog了,一直挺忙的,今天還是很忙,還有三個同步進行的項目在催著我繼續工作,但我想休息一下,寫篇Blog玩玩。
微軟公司一直是我比較嚮往的公司,而微軟亞洲研究院則更是我嚮往的一場所,我期望自己能在一個出色的團隊中奉獻自己的力量、同時學習提高自己。
大約一年前,我向微軟亞洲研究院投過一份簡曆,申請那時的一個Visiting Student的職位,那是一個有關機器視覺的一個研究性的職位,結果還是挺乾脆的:
Dear 李凡希,
Thanks for your interest in MSRA-ATC.
We regret to inform you that we will not be able to offer you a position at Microsoft Research Asia - Advanced Technology Center. However, in order to give your candidacy the greatest possible consideration, we would like to maintain your resume in our electronic database for future reference. We appreciate your interest and wish you the best of luck in the future.
Sincerely,
Microsoft Research Asia - Advanced Technology Center HR Recruiting Team
收到這樣的拒信,我也不覺意外,因為確實自己與他們的要求還是有一不小的差距的。
今年,在同學們都如火如荼的申請各種實習工作機會時,我也再次做了一些嘗試,先是IBM的R&D的Intern,然後是HP的Intern,在都沒有仍何訊息的情況下,前天投到的微軟亞洲研究院的申請VS For Development的郵件有了迴音。今天下午兩點不到的時候接到了MSRA的Recruiter的電話,要求進行一個二十分鐘的電話面試。由於學校兩點有會,我跟他重新約了時間到四點。
開完會,就在機房等著電話面試,順便上上網找找有關的資料,做一些簡單的準備。發現大多數電話面試都是技術問題,並且是中文的,稍稍定了一點心,雖然對自己的英文口語還不算沒有信心,但實在擔心一緊張就說不出話來了。
四點十五分的時,手機還沒有動靜,心裡著實有點打鼓,不過相信微軟應該不至於失約吧。於是開啟了Visual Studio .NET繼續寫一點項目的程式,調節一下心情。
四點二十的時候,手機終於響了,心情還是有一點點緊張,接聽了電話。
他先是問了一下我傾向於的職位,是做研究還是做開發,我從自己的實際情況出發,選擇了開發,並陳述了理由。
接著問的是學校和導師是否會同意,當然回答是會同意啦。
然後就開始技術了,他問我熟悉的語言,Of course,我的選擇是C++,當然沒有忘記說一下對C#也比較熟悉,因為這是他的招騁啟事上要求的。
C++的問題對於我來說的確不是很難,包括虛函數的作用、原理、調用方法、實現機制,還有靜態變數的特點、靜態成員變數的特點、靜態成員函數的特點。也許是有點得意忘形吧,我回答靜態成員函數的問題時出了點小漏洞,我說它與普通成員函數的一個區別是在它內部不能訪問類的成員變數的值,他立即提示我有疏漏,我才想起說它是可以訪問靜態成員變數的。
C++的題答完後,心情還是比較輕鬆的,對方似乎表現出也是比較的滿意,隨後進入的第二部分的資料結構與演算法的題就著實為難了我一把。
先是問了有關有序數組和鏈表的尋找問題,問時間複雜度,這的確是很基礎的問題,很可惜我對這玩意實在不在行,回答開始變得猶豫和不自信,還好面試官的態度還是依然良好,一步步的引導我的思維。接下去回答的是有關一個特定情況的尋找問題,我在迷茫了一會兒後終於想到了用Hash的方法,這似乎是他希望的答案,所以問題又轉到了Hash有關的知識上,讓我解決Hash時遇到的衝突問題。實話說,雖然當時的氣氛並不緊張,我也沒有感覺到心跳的加快,但實話說,我已經亂了降腳,我對這些問題從來沒有真正深入研究過,每一個回答都顯得那麼的沒有底氣。我甚至希望這部分的問題可以快點結束,我希望能有第三部分的問題讓我可以回答的順暢一些……
資料結構的問題還是沒有完,第三題更難了,大致是這樣的:有若干個給定的數(都小於N),問從中任意取幾個數相加,可以得到多少個不同的結果。
這也許是個不難的題目,但我的確成了一個沒頭蒼蠅,我沒有好的演算法,我在演算法的積累上遠遠沒有達到可以回答這個問題的水平,我甚至沒有思路,不知道怎麼去想。無奈之下,我只能說有一個不好的演算法就是窮舉,他肯定了這個回覆,但要求說說有沒有什麼改進的思路,我再次陷入困境,他從多個角度對我進行了提示,我還是沒有找到一個合適的回答。我說了分治法,因為我感覺上似乎可以用它解決,但我又不能更多的去陳述,因為我對分治法的瞭解實在太少。
接下來的幾分鐘我已經忘記了是如何過去的,直到他說技術題的面試到此結束,問我是不是還有什麼想瞭解的情況。
沒有任何面試經驗又沒有關注過相關資訊的我又無奈的沉默了一會兒,我只想著回答問題卻不知道有什麼好問的,好不容擠出了幾個傻傻的問題,什麼這個項目的具體的方向(因為招騁資訊中沒有寫),我應該努力的方向,是否有後續的在北京的面試之類的。他留下的最後的話是老套的類似於“等通知”之類的。
二十五分鐘的電話面試很快就這樣的過去了。
對於我來說,在這次機會中獲得Offer的機會應該已經是微乎其微了,只能是總結一下得失吧。
最大的問題就是在遇到困難的時候沒有表現出一種勇於面對解決的精神,似乎總是想著逃避,雖然我在面試前也知道遇到困難可以勇敢的說出自己的想法,談自己的思路,但我當時實在是沒有任何的思路,還算比較善于思考的我在那一刻沒有任何的想法。從技術上說,確實我對這個問題沒有深入的認識,但從非技術的角度來說,逃避困難的性格還是無情的展露了出來。同樣的問題還表現在我竟然兩次提到我需要參考一些書籍來解答這個問題,雖然後來自我圓場的說這是因為我的學習能力很強,可以很快的參考書籍得出一個解決方案,但相信給人的感覺一定是好像答不出問題是因為沒有書的錯似的。
學習中對基礎理論的重視不夠也是一個不小的問題,就像面試官告訴我的那樣,很多技術是可以在實踐中不斷熟悉不斷進步的,但更多基礎的東西還是要有一個紮實理論學習來保證,這些是無法從實踐中直接獲得的。
面試前缺乏準備也是一個嚴重的問題。
這是我經曆的第一次面試,一次不算成功的面試,但我相信我從中已經學到了很多,並且找出了一些不足的地方,我會努力去改進,爭取不斷的進步。I have confidence in me.