原文鏈接?
一個(gè)多月前,作為技術(shù)面試官參加了百度 2016 年的校園招聘深圳站面試,主要目標(biāo)學(xué)生是清華/北大/哈工大/中科院在本地的研究生院(實(shí)際上并沒有設(shè)限,有不少江西廣西福建的同學(xué)過來面試了),這里和大家分享一點(diǎn)自己的思考。
我們一般有 3
輪技術(shù)面試,一面二面通常是由資深的工程師面試,三面一般是技術(shù)經(jīng)理面試。我負(fù)責(zé)的是一面和二面,面試過程中除了給全公司層面的統(tǒng)一招聘人才,我們還隨時(shí)
要準(zhǔn)備物色合適的人加入自己的團(tuán)隊(duì)。面試官會(huì)根據(jù)面試過程對每個(gè)候選人的編程能力/邏輯和思考能力進(jìn)行評價(jià),只有每一輪的面試官都給予通過,才有可能被錄
用。
面試是一個(gè)雙向考察和選擇的過程,所以面試時(shí)我一直嘗試把這當(dāng)成和候選人的一次溝通。面試的過程有大量的問題也是根據(jù)候選人自身的特點(diǎn)提出的,而不是遵循了某個(gè)題庫固定的題目。
整體感受是,大多數(shù)人真的很弱,你并不需要「非常努力」,就可以比大多數(shù)的人「優(yōu)秀」。下面就大家關(guān)心的一些問題分開討論下。
教育背景
很多同學(xué)咨詢我時(shí),有意無意地給自己貼上了「渣二本」「普通一本」「非
211」這樣的標(biāo)簽,這都表面其內(nèi)心還是非常介意自己的教育背景不好。我想你應(yīng)該慶幸自己生在互聯(lián)網(wǎng)時(shí)代,這個(gè)時(shí)代的人和資源都暴露在互聯(lián)網(wǎng)中,你完全有
機(jī)會(huì)用互聯(lián)網(wǎng)來證明自己的能力和曾經(jīng)的努力。
我在面試時(shí)能明顯感覺到,一些好學(xué)校(比如中山大學(xué)/哈工大/清華北大/廈門大學(xué)/華科武大等)的學(xué)生,在基礎(chǔ)知識/表達(dá)/邏輯能力等都要更強(qiáng)
一些。我想之所以有這樣的表現(xiàn),是因?yàn)楹脤W(xué)校的學(xué)生受過更好思維訓(xùn)練,他們面對一個(gè)難題時(shí)往往知道怎么去簡化和抽象問題,把問題撥出來分類或者分層討論,
同時(shí)他們還會(huì)試圖把問題分解成不同的子問題逐個(gè)來討論。我就碰到過一個(gè)大學(xué)純玩票的中山大學(xué)的大四學(xué)生,對計(jì)算機(jī)基礎(chǔ)知識基本上一問三不知,但是分析問題
時(shí)的思路和邏輯還是清晰的,而這種能力,是很多教育背景較差的學(xué)生缺乏的。因此我也建議屬于這種情況的同學(xué),多進(jìn)行一些思維訓(xùn)練,學(xué)會(huì)如何系統(tǒng)地區(qū)分解和
分析一個(gè)問題。
當(dāng)然,非名校中,也不乏優(yōu)秀的候選人。有個(gè)江西理工的大四學(xué)生,在他的博客中我讀到了大量分析技術(shù)細(xì)節(jié)的文章,還有參加 mooc
上機(jī)器學(xué)習(xí)課程,github 中有他自己些的 key-value 數(shù)據(jù)庫和
webserver。通過討論,我確定他是真正學(xué)習(xí)過這些知識的人。還有一個(gè)深圳大學(xué)的學(xué)生,大學(xué)時(shí)代做過很多 app
和校園實(shí)用小工具,他總是試圖用技術(shù)去提高自己的工作和生活效率,是一個(gè)真正的極客而不是腦殘果粉。
實(shí)習(xí)和項(xiàng)目經(jīng)驗(yàn)
不少同學(xué)擔(dān)心他們大學(xué)沒有實(shí)習(xí)過,也沒有做過很多的項(xiàng)目,所以在找工作時(shí)會(huì)是很大的劣勢。
首先我不否認(rèn)好的實(shí)習(xí)經(jīng)驗(yàn)和項(xiàng)目經(jīng)歷,會(huì)是很大的加分項(xiàng),但是如果你是一個(gè)學(xué)習(xí)優(yōu)秀/熱愛獨(dú)立思考/科研達(dá)人,也可以收到同樣的效益。在我看來,最重要的
問題在于你要「曾經(jīng)努力做好過一件事情」,否則「Why you?」
既不擅長于學(xué)習(xí)和科研也沒有折騰過具體的技術(shù),這樣的人才是大多數(shù)。所以,當(dāng)你能做好一件事情,就是優(yōu)勢。(當(dāng)然,我更建議大學(xué)時(shí)代讀好書,搞好科研,而不是放棄學(xué)習(xí)去折騰具體的技術(shù))
另外很多「爛?!沟膶W(xué)生,總認(rèn)為自己學(xué)校差所以沒有機(jī)會(huì)去大公司實(shí)習(xí)。實(shí)際上,你在微博/github/v2ex 之類的地方,可以勾搭到大量大公司的人,只要你能吸引到他們,完全可以找到一份不錯(cuò)的實(shí)習(xí)。問題是你拿什么來證明自己優(yōu)秀?
熱愛,有激情
面試時(shí),有不少人總是急于表達(dá)自己對技術(shù)對編程的熱情和喜歡,而我卻很難在這些人的人生經(jīng)歷中,找到一件事可以支持他們的這個(gè)說法。你既然這么
喜歡計(jì)算機(jī)和編程,大學(xué)四年你干嗎去了?
你確定不是因?yàn)檎也坏狡渌ぷ骰蛘呖疾簧瞎珓?wù)員才來面試程序員的嗎?互聯(lián)網(wǎng)如此發(fā)達(dá)的今天,大學(xué)你有四年的時(shí)間去折騰,去證明你喜歡計(jì)算機(jī),然而你沒做過
任何這樣的事情,卻說自己熱愛,這反而會(huì)讓人對你的看法大打折扣。
大學(xué)時(shí)代不知道如何正確地學(xué)習(xí)很正常,但是如果你真喜歡一樣?xùn)|西,你會(huì)做過一百種嘗試。哪怕是反復(fù)地折騰安裝 linux
系統(tǒng),嘗試各種不同的發(fā)行版本,也是一種證明。你可以去計(jì)算機(jī)系蹭課,可以去 mooc
上學(xué)習(xí)計(jì)算機(jī)的公開課,甚至你可以去考并沒有什么卵用的計(jì)算機(jī)二三四級考試,也可以去交一個(gè)計(jì)算機(jī)系的男朋友女朋友。然而你「什么都沒做過,憑什么說
愛」。
有一個(gè)候選人本科是武漢大學(xué)某個(gè)偏門工科專業(yè)的,大學(xué)時(shí)代因?yàn)橄矚g編程買了樹莓派寫代碼,還去華科修了計(jì)算機(jī)科學(xué)的第二學(xué)位,為了進(jìn)一步學(xué)習(xí)他
考研去了中科研研究計(jì)算機(jī)視覺,讀研期間又自己用 C++
實(shí)現(xiàn)了視覺領(lǐng)域的大量算法來提高自己的編程能力。這樣的經(jīng)歷是非常吸引人的!這個(gè)同學(xué)的算法和數(shù)據(jù)結(jié)構(gòu)底子比較一般(或者只是沒有刷過題),但是學(xué)習(xí)能
力,分析問題的能力很強(qiáng),我能明確感受到他面對一個(gè)自己不熟悉的算法題時(shí),逐步分析歸納試著去解決問題的過程。這樣的同學(xué)太討人喜歡了!(他的二面面試官
給出了比我更高的評價(jià)?。?/p>
說了這么多,其實(shí)我想說的就一點(diǎn),每個(gè)人都要有自己的優(yōu)勢和核心競爭力。這個(gè)核心競爭力可以是牛校(清北復(fù)交浙南大科大等),當(dāng)然,如果你只有
牛校光環(huán),并沒有什么卵用,因?yàn)槟愀偁幍膶ο笫亲约旱耐瑢W(xué),而不是大專畢業(yè)生;也可以是很強(qiáng)的算法設(shè)計(jì)能力,但是參加 ICPC
拿過大獎(jiǎng)的同學(xué)那么多,你刷題刷的過來嗎?;還可以是學(xué)習(xí)成績好,因?yàn)槌煽兒玫耐瑢W(xué)往往在工作中表現(xiàn)出很高的執(zhí)行力和快速交付能力(這也是為什么很多投行
和咨詢公司對候選人的學(xué)校和成績有很高的要求);愛造輪子折騰開源;實(shí)習(xí)經(jīng)歷(BAT,google,MS 等實(shí)習(xí)過),學(xué)術(shù)強(qiáng)人(頂會(huì) paper);
數(shù)學(xué)好(奧賽金牌)等等。
如果你啥都沒有,只能跟大多數(shù)人一樣,人云亦云,刷算法題看面筋,臨時(shí)抱佛腳,指望著互聯(lián)網(wǎng)泡沫更大一點(diǎn),這樣 bar 就能更低一點(diǎn),這樣就誰都能進(jìn)入 BAT 分一杯羹。
可是,在這個(gè)阿貓阿狗都能拿到年薪 20 萬 offer 的泡沫時(shí)代,這樣的你就沒有一點(diǎn)焦慮?
最近這段時(shí)間,每天從知乎和 QQ 上會(huì)收到大量的 offer 求比較咨詢,其中 BAT 20 萬的 offer 司空見慣,30 萬的
special 也見怪不怪,40 萬(今日頭條等給的 special offer)的也常有出現(xiàn),作為老人只能感嘆這個(gè)互聯(lián)網(wǎng)時(shí)代的瘋狂。
我不是一個(gè)可以講大道理的「人生贏家」或者「長者」,只是你們經(jīng)歷著的事情,3 年前我也經(jīng)歷過,offer 越多越煩惱,尤其是沒有殺手級
offer 時(shí)天天都只能糾結(jié)困擾。然而回頭一想,有時(shí)候真的是自己想得太多了而已。所以,今天也談?wù)勎覍πU?offer
選擇的一些不成熟的微小的看法,也歡迎大家把我批判一番。
選擇你當(dāng)前最需要的東西
我當(dāng)然更欣賞勇于去追求自己的夢想的你。當(dāng)有一個(gè)好的 offer
時(shí),哪怕是要去帝都這樣的城市,你也毅然前往。不過我也從來不認(rèn)為現(xiàn)在的一個(gè) offer
選擇會(huì)成為你未來走向人生巔峰的障礙。阿里巴巴上市的時(shí)候,許多技術(shù)圈朋友感嘆自己當(dāng)年沒有選擇去淘寶,否則現(xiàn)在也走向財(cái)務(wù)自由了。而我覺得,即便你當(dāng)初
選擇了淘寶,中間也有一萬個(gè)理由離開。我們決定不了自己的運(yùn)氣。
生活和工作平衡,同時(shí)加上較高的收入,這是最理想的工作狀態(tài)。平衡生活往往需要在一個(gè)你喜歡的城市里,如果你介意去北京,那么還是留在上海/廣
州/杭州/深圳吧,留在一個(gè)有你親人基友同學(xué)的地方,在一個(gè)你更愿意長期發(fā)展的地方。當(dāng)?shù)赜虺蔀槟惝?dāng)前訴求中一個(gè)重要因素時(shí),就可以縮小你的選擇空間。有
個(gè)同學(xué)說他想找個(gè)浙大的女朋友,我說那肯定去網(wǎng)易/阿里/蘑菇街這些公司啊,可是他又糾結(jié)說他想學(xué)技術(shù),我只能問他難道阿里的技術(shù)不夠?qū)W么?
薪水當(dāng)然是最重要的,沒有人不喜歡錢。許多連C輪都沒走到,愉快地?zé)?VC 錢的公司,大方地給應(yīng)屆生開出了遠(yuǎn)高于 BAT
的薪水,讓人很難不動(dòng)心??墒钱?dāng)下你真的有那么需要錢嗎?如果答案是肯定的,那很簡單,選錢最多的一個(gè)!如果你并沒有什么經(jīng)濟(jì)負(fù)擔(dān),一個(gè)月多 5K 少
5K 本質(zhì)上沒有影響到你的生活,那么,一定要跟那種花幾百萬請王寶強(qiáng)孫紅雷田亮過來說一句廣告詞的創(chuàng)業(yè)公司說不!
這里順道分享個(gè)案例:某同學(xué)收到某不靠譜創(chuàng)業(yè)公司開出的 18K 的 offer,百度開出的 14K 的
offer。表面上看來百度的錢少好多,但是實(shí)際上該創(chuàng)業(yè)公司的社保公積金都按最低標(biāo)準(zhǔn)繳納,比如公積金每個(gè)月總共才兩三百塊,但是百度每月給你繳納的公
積金公司那份就有差不多 2000,同時(shí)你的醫(yī)保和養(yǎng)老金也會(huì)多出幾千塊,另外公司還給你買了商業(yè)醫(yī)保,這么一算,你覺得如何呢?
做自己最擅長和有興趣做的事情
許多游戲公司給應(yīng)屆生開出了遠(yuǎn)高于預(yù)期的薪水,似乎讓人很難拒絕。然而游戲是一個(gè)特殊工種,游戲的天性就是要短平快賺錢,所以你永遠(yuǎn)都是在沖爆
款,你永遠(yuǎn)都在做下一個(gè)游戲!同時(shí),這種經(jīng)驗(yàn)沒法讓你體驗(yàn)到持續(xù)的增長和積累,而這種應(yīng)對高速增長的流量和業(yè)務(wù)規(guī)模,不斷改進(jìn)架構(gòu)和基礎(chǔ)設(shè)施的能力在大型
互聯(lián)網(wǎng)項(xiàng)目中又是必備的。
所以,除非你真的熱愛游戲和游戲開發(fā),否則一般不建議去游戲公司。(當(dāng)然,如果你優(yōu)先級更高的訴求是去廣州,但是又沒有其他選擇比如微信,那么另當(dāng)別論)
許多同學(xué)有「后臺開發(fā)工程師」的 offer,又有「Data Scientist」這么高大上 title 的
offer。還有些有「前端開發(fā)」或「運(yùn)維」offer
的同學(xué)話語間卻透露出一點(diǎn)對相應(yīng)領(lǐng)域鄙視的神情,和那些認(rèn)為「匯編」和「底層」就是更牛逼的人是一樣一樣的。
「算法」「機(jī)器學(xué)習(xí)」這些聽上去更高大上,我也有不少這類 offer,但是我依然選擇做「基礎(chǔ)架構(gòu)」這個(gè)方向,而不是「算法」,因?yàn)槲业臒崆楹团d趣都在這上面,我相信這樣可以做得更好。等我做得足夠好的時(shí)候,我才可能會(huì)去做一些新鮮的嘗試。
我一直覺得只要保持開放和持續(xù)學(xué)習(xí)的心態(tài),做哪個(gè)領(lǐng)域都不會(huì)有問題,塔尖的人永遠(yuǎn)是稀缺的。實(shí)踐中,想要招一個(gè)優(yōu)秀的「前端」和「運(yùn)維」,是非
常難得事情,因?yàn)檎娴暮苋?。所以如果你擅長前端或運(yùn)維相關(guān)的技術(shù),又有足夠的興趣,請不要頭腦發(fā)熱去搞「大數(shù)據(jù)」和「機(jī)器學(xué)習(xí)」。
哪個(gè)技術(shù)/編程語言有前途?
還有些同學(xué)說我對后臺編程有興趣的,只是我不知道學(xué)哪個(gè)好,接下來他又會(huì)問現(xiàn)在 C++ 還有市場嗎?PHP 和 Python
到底哪一個(gè)好? 是不是以后的趨勢是 Go?Java 的薪水是不是沒有 C++ 高?
就這么一糾結(jié),半年就過去了,再那么一糾結(jié),轉(zhuǎn)眼就要畢業(yè)找工作了他們還是沒想明白這個(gè)問題。對于這個(gè)問題,舉個(gè)例子說明我的觀點(diǎn):微軟的工程師一直是國
內(nèi)外互聯(lián)網(wǎng)公司搶奪的重要人才資源池,但是實(shí)際工作中大多數(shù)微軟 FTE 工作都使用 C# 在 windows
平臺編程,而且很多都是在從事傳統(tǒng)的軟件開發(fā),那么,為什么會(huì)這么搶手?
我身邊優(yōu)秀的工程師們,都是有自己擅長且無法被輕易替代的技術(shù),同時(shí)又保持著對新技術(shù)探索的熱情。我自己主要編程語言是C++,但是對
Python 和 Go 的熟悉程度也可以輕易地開始獨(dú)立做一個(gè)項(xiàng)目,對 openstack 和 docker 等等也都有研究過。我也嘗試過用
PHP 和 Python
寫過網(wǎng)頁小游戲的后臺,我試著用這些開發(fā)一些工具來便捷自己的生活。當(dāng)然,我并不是說我優(yōu)秀,我只是說我真的喜歡技術(shù),愿意去探索,并有信心未來不輕易地
被淘汰。
當(dāng)然,軟件工程師的核心價(jià)值應(yīng)該是實(shí)現(xiàn)想法和解決問題,而不是編碼員。
一定要去 BAT 嗎?
很多人形容大牛都是「BAT X 年工作經(jīng)驗(yàn)」這樣的論調(diào),給人一種似乎只要去 BAT 熬上多少年就可以變成大牛一樣。
我的看法一直是「BAT 有很多大牛,但是大牛并不是因?yàn)槿チ?BAT 而成為的大?!梗@跟好的教育背景是一樣的,我們不應(yīng)該把「錦上添花」當(dāng)成了「點(diǎn)石成金」。
我不止一次探究過身邊高T的大?;蚱渌举Y深工程師的經(jīng)歷,發(fā)現(xiàn)這些人有個(gè)共同的特點(diǎn),就是都是伴隨著優(yōu)秀的項(xiàng)目/團(tuán)隊(duì)一起成長起來的。有一
個(gè)高速增長的業(yè)務(wù)挑戰(zhàn),不斷地出現(xiàn)難題,不斷地從坑里面走過來,這樣的經(jīng)驗(yàn),才是最有價(jià)值的!如果你有一個(gè)機(jī)會(huì)去一個(gè)業(yè)務(wù)快速增長并尊重工程師的創(chuàng)業(yè)公
司,絕對是比去 BAT 做螺絲釘更好的機(jī)會(huì)?。ū热缃甑拿缊F(tuán)、小米、滴滴打車、宜信大數(shù)據(jù)中心、今日頭條等)
大公司很多部門通常有一個(gè)毛病,就是業(yè)務(wù)過于成熟,所以一切都追求穩(wěn)定,即便是急需要改進(jìn)的東西,也沒有人敢去碰坑。你極有可能就是在這樣的環(huán)境中,你是一顆勤勞的螺絲釘,隨時(shí)可以拔掉或者替換。而你根本不用幻想,基于現(xiàn)有的資源,給你機(jī)會(huì)去創(chuàng)造并擦出新的火花。
當(dāng)然,一切歸根結(jié)底最重要的因素還是看人。
通常,心態(tài)開放并積極學(xué)習(xí)的人,運(yùn)氣都不會(huì)太壞。