本人在 2015 年校招拿了 BAT 以及網易遊戲等 offer,而且基本上都給了 Special,那就從我的角度來談談今年校招的體會。
1. 冰凍三尺非一日之寒
綜合身邊一些拿到牛 offer 的同學,有個共同的特點就是:熱愛這個行業。一個人在某個領域的成就是和自身在相關領域投入的時間和精力成正相關的。 付出了多少,雖然短期內收益微乎其微,如果經過數年的持續努力,便會由量變產生驚人的質變。比如多讀書、多看程式碼, 一些計算機程式設計方面的經典書籍、GitHub 上面一些 star 越千的優秀開源專案,絕對值得多花時間研讀。
我自身的情況大概是本科期間積累了 10 萬行的程式碼量,有了這個基礎碩士期間閱讀一些程式碼呀,參與一些開源呀,就變得水到渠成。
2. 主動培養自己的動手能力
演算法方面可以適當閱讀演算法導論、演算法引論等書籍,多刷刷 leetcode, UVa 之類的培養出一定的解題思維。 雖然說一些演算法在工程中很難用到,但是解決問題的思路以及不斷去優化業務程式碼的想法,這些意識是可以通過演算法訓練得到的。
一般國內的網際網路公司還是比較看重專案經驗這塊的,也就是你曾經做過什麼,能突出個性的地方也在於此了。 這個方面可以從一些國外大學課程的大作業慢慢培養,如系統設計方面經典的有:
- MIT 6.824 Home Page: Spring 2014, Distributed Systems
- CMU 15-440, Fall 2012: Distributed Systems
- CMU 15-410, Operating System Design and Implementation
如果跟著進度做完大作業的話,相信工程能力以及對系統設計的理解都會有很大的提高。
3. 核心競爭力
這個問題很大啦,那我也冒昧的說一下自己的理解。曾經很長一段時間內,我都不太清楚自己未來要幹什麼。 不過幸運的是,身邊總有一些優秀的同學在激勵自己前行(寢室 7 個人有 6 個拿到網易遊戲 offer 我會亂說 :-p ), 而且在讀研之初就得到 @靖難 學長的指點實在是人生之幸。那麼問題來了,花了這麼多時間去思考自己要幹嘛就這麼重要嗎?我覺得非常重要。 當有了一個努力的方向,就會不斷的去靠近,圍繞著這個點不斷探索,最終形成別人沒辦法輕易超越的壁壘。
4. 關於面試
面試在於突出自己的閃光點,體現自己的不可替代性。當你一步步走過上述幾個階段的時候,便會發現其實 BAT 的 offer 並沒有想象中那麼難, 難的是克服惰性不斷的去超越自己。
找工作要從實習抓起。這並不是說實習一定會做一些多麼核心的事情,而是一場面試幾十分鐘,面試官也無法清楚的判斷你的實力, 需要從你過往在哪實習過以及拿到過哪些 offer 來對你進行綜合判斷。
GitHub,StackOverflow 等是加分點,參與過開源專案大加分。嘴裡說出的話可能有可以虛假誇大的成分, 但是 GitHub 上面的程式碼提交記錄以及程式碼質量不會騙人。我面試的過程中,就有幾個面試官主動索要 GitHub 賬號地址 kedebug · GitHub 並且當場登陸檢視相關專案情況,這都是能夠提升自身形象大大利好的事情。