7.2 面試真題 & 詳解
昨晚接到的通知,今天下午兩點(diǎn)到匯眾大廈面試,本來下午有中興的面試的,沒辦法去了,一點(diǎn)從知春路坐城鐵出發(fā),20分鐘后到了西二旗,然后往南走找上地七街,在路口就是。到了后發(fā)現(xiàn)已經(jīng)有好幾個在等著了,居然有四五個認(rèn)識的,等到兩點(diǎn)鐘進(jìn)去后填了一個表,進(jìn)去后發(fā)現(xiàn)里面居然又有好幾個北航的。好像下午一共有兩批人,兩點(diǎn)一批,三點(diǎn)多一批,每批十幾個,在填登記表的時候看到上面都有各自的分?jǐn)?shù),我的是39分,不高,不過在這批人里是最高的,看到有29分的。在會議室里填完表,然后便開始了漫長的等待,期間還接到華為3com的面試通知,看著人一個個被叫走,三點(diǎn)半面的那批人都來了,有的還被叫去了,還沒輪到我,我去問了一下,發(fā)現(xiàn)好像是把我給遺忘了。ft,按照rp守恒定律,一面的時候該順利些吧。
一面我的是個小伙兒,挺精神的,聽其說話思維比較敏捷。開始先讓我介紹做過的項(xiàng)目,包括項(xiàng)目中使用的FPGA、DSP芯片等等,bla bla了一番,對做過的東西畫了一下其系統(tǒng)框圖,解釋了一下,然后讓我舉我設(shè)計(jì)過的最復(fù)雜的一個例子,我說做過的東西都是一塊一塊的,沒有特別復(fù)雜的(汗~~太實(shí)在了吧),不過我對FPGA設(shè)計(jì)的一些概念還是挺清楚的,然后便隨便舉了一個TDM時分復(fù)用的東西,說完這些他就開始問了一些基本的概念問題,比如如何分析系統(tǒng)的時鐘頻率,以及保持時間的問題,他解釋說FPGA中一般不存在保持時間的問題,因?yàn)槠鋍LOCk skew沒有那么大。還問了一個時序約束的概念,multi-cycle path,以及如何用DPRAM設(shè)計(jì)一個FIFO,我問了一下是同步還是異步的,補(bǔ)充說異步FIFO要用gray碼計(jì)數(shù)器,然后他便問了一下為何要用 gray計(jì)數(shù)器?傊幻娓杏X還是比較順利,問的問題大多是我比較熟悉的,主要是我也沒有那么牛的項(xiàng)目經(jīng)驗(yàn),沒有詳細(xì)的問項(xiàng)目的內(nèi)容。等了一會兒就開始二面,然后便開始郁悶了。二面我的應(yīng)該是個頭頭,有單獨(dú)一個房間作辦公室,人還是很nICe 的,就是問的問題一點(diǎn)都不nice。剛開始看了一下我的簡歷,看到項(xiàng)目經(jīng)歷上時間有重復(fù)的部分,便問了一下,然后便開始問一些FPGA方面的東西,問我們選擇FPGA的時候考慮的因素有哪些,ASIC 設(shè)計(jì)的流程,這些都比較easy,從頭到圍說了一下,期間還問為何用aLTEra 的芯片,沒用Xilinx的,說到功能仿真的時候還問了一下如何產(chǎn)生測試向量的,并讓舉了一個例子,然后我便舉了一個例子說明了一下。到現(xiàn)在為止還算基本順利,然后便郁悶了。
考官問我對latch是如何看的,并讓畫一個latch的圖,ft,前一陣子筆試的時候還畫過,結(jié)果一緊張,給忘了,然后又讓畫D觸發(fā)器的圖,更ft了,本來想復(fù)習(xí)一下的,結(jié)果借了幾本數(shù)電的數(shù),上面都沒找到,就沒再去查,這下郁悶了吧。看我畫不出來,便讓畫一下RS觸發(fā)器的圖,寫一下真值表,這個還是很easy的。接著問了一下建立時間不夠的話會出現(xiàn)什么問題,如何解決,也就是如何處理亞穩(wěn)態(tài)現(xiàn)象。我說用兩級同步,F(xiàn)IFO,握手,然后便讓畫一下握手實(shí)現(xiàn)的過程。以前對這個倒是清楚,可是沒真正用過這種方法,不過最終還是說清楚了。然后又問如何進(jìn)行低功耗設(shè)計(jì),這我哪知道啊,我說要盡量降低時鐘頻率,用門控時鐘之類的,在這個問題上又折騰了半天,問為何時鐘頻率高功耗會大,我說門反復(fù)反轉(zhuǎn)會產(chǎn)生較大的電流,然后他又問這電流如何產(chǎn)生的.....唉,功力不夠,以前都是知道這些,可是沒有從最底層的CMOS結(jié)構(gòu)的角度來分析這些問題,感覺他是給了我一些提示,不過畢竟對這種太底層的東東不熟悉,沒領(lǐng)悟過來。然后又問了一下FIFO的設(shè)計(jì),如何設(shè)計(jì)一個 FIFO,然后重點(diǎn)問的是如何確定一個FIFO的深度。在考卷上就有這個問題,他說沒見過考題,看來他們挺重視這個問題的,在這個問題上又折騰了半天,回答的不令人滿意,腦袋都開始糊涂了。說完這個后他問我還有沒有問題問他,我說最關(guān)心的是這次面試的結(jié)果如何(汗~~太直接了),他說這也得由第一輪的結(jié)果來決定現(xiàn)在也沒法告訴我結(jié)果。然后我問這次北京招60人,是否有一些大的項(xiàng)目要作,他解釋說Intel剛跳過去的副總裁算了一下目前的工作量跟人員的比例,得出結(jié)論需要再招60人,而他又有這個權(quán)利,然后便開始招了.....他說招這么多人進(jìn)來肯定個人有各自的工作,不會說有人閑著學(xué)不到東西的情況。最后說通過了會還有兩輪面試,一輪是HR的,一輪是見他們的高級主管,我問是否是英文面試,他說是全中文的,當(dāng)然如果英文好要求用英文也可以,他們主管在美國待的時間比較長,英文還是比較流利的。
想了一下,沒有問的了,便告別了。他們有的第二輪問的比較少,甚至就沒有多少技術(shù)問題,不知道為啥問我這么多啊,面別的公司問的多點(diǎn)沒關(guān)系,就當(dāng)攢面經(jīng)了,可威盛可是我很想加入的公司,寧可不要面經(jīng),直接給offer得了總結(jié)整個過程,發(fā)現(xiàn)基本功還是最重要的,項(xiàng)目經(jīng)驗(yàn)在其次,成績他們好像壓根沒看。以前一直覺得基本功還可以,現(xiàn)在發(fā)現(xiàn)還差的遠(yuǎn)了。一個周之內(nèi)應(yīng)該會有結(jié)果了吧,感覺二面發(fā)揮的差了點(diǎn),被B4也沒啥好說的了,當(dāng)然或許rp攢的足夠好,接到三面通知也還是有可能的吧。
經(jīng)驗(yàn)2:
via上海(旭上電子)一直是我非常心儀的公司,在招聘網(wǎng)上看到了招聘信息,就投了簡歷,非常幸運(yùn),得到了科大筆試的機(jī)會,并且成功的進(jìn)入到了第三面,見到了hr經(jīng)理。但是由于自己發(fā)揮不好或是其它一些原因,并未收到via的offer。雖然沒有能夠成功,但還是決定寫一下筆經(jīng)和面經(jīng),談?wù)勛约旱母惺,希望對大家有點(diǎn)好處。
言歸正傳,在chinahr上投了簡歷一段時間后,就得到了筆試的機(jī)會。網(wǎng)上篩選簡歷時, via會要求你填寫一些open question,比如為什么選擇via,你為什么認(rèn)為自己能勝任該職位,你是否對自己的職業(yè)生涯有所規(guī)劃等等問題,這說明via招聘員工是非常認(rèn)真的,所以同樣他也希望你能認(rèn)真對待,這畢竟是一個雙向選擇。
這里要非常贊一下via的筆試。他們的筆試工作做的很仔細(xì),via 的四個區(qū)域公司,北京、上海、杭州、深圳的筆試一天之內(nèi)全部搞定。具體安排如下:上午10是北京威盛的筆試,下午13點(diǎn)開始上海威盛的筆試,16點(diǎn)開始杭州和深圳威盛的筆試。筆試時間統(tǒng)一為兩個小時,每一次筆試都會發(fā)給你一本試題集,每一本試題集大概都有20套試題,涵蓋了各分公司的所有筆試題,比如,架構(gòu),軟件開發(fā),硬件開發(fā)等,非常詳細(xì),你在做完了你所申請職位的試題之后,你還可以做其它職位的試題,前提是只要你夠牛...,這樣估計(jì)會有加分的。
說說我做的架構(gòu)(architecture design)的試題吧,總體來說,比較簡單:
1 是一道編程題,有三個整數(shù),求中間大小的那個數(shù);
2 是一道改錯題,是關(guān)于用指針能否返回malloc分配的內(nèi)存的題。
void getmemory(char *p, int num)
{ p = (char *)malloc(sizeof(char)* num) }
然后是main函數(shù)中的getmemory(str,100); strcpy(str,"hello");
3 是一個幾何計(jì)算題,很簡單,列出兩個二元一次方程就可以解出來;
4 是一道智力題,問有一個93*36的長方形,全部由1*1的單位正方形組成,問長方形的一條對角線要穿越多少單位正方形;
答案似乎是93+36-1
5 問gpu的渲染流水線當(dāng)中,哪一個步驟可以刪除 (clip)掉一個三角形,并且要用d3d的函數(shù)具體指出,(對于大多數(shù)習(xí)慣于opengl的同學(xué)來說,估計(jì)不那么容易回答吧)
6 問為什么遠(yuǎn)處的物體相對較小,而近處的物體相對較大?
我是從小孔成像和透視原理來分析的,并且聯(lián)想到了mipmap的原理;
7 題目說明了什么是little endian和big endian,問怎么判斷一個cpu采用的哪種處理方式
8 問gpu為什么比cpu 跑的快?1 gpu的并行處理 2 gpu的超常流水線
9 問你處理在課堂里學(xué)過的圖形學(xué)教材外,還看過哪些圖形學(xué)的書?
這個看個人發(fā)揮了依我看,architect主要集中在圖形幾何、cpu,gpu架構(gòu)和pipeline上,對c和數(shù)據(jù)結(jié)構(gòu)考的不多。
隨后就是耐心的等待,然后接到上海的電話,通知面試,這里要非常感謝我的同學(xué)mengfei,是他幫我接的電話,而且告知我面試的信息,非常謝謝。
面試時候不需要帶任何資料,因?yàn)樗麄冇心愕暮啔v和筆試試卷。這里簡單說下via的面試流程,一共三輪面試,兩輪技術(shù)面,一輪hr面,全部在一天之內(nèi)完成,過幾天給最后通知這個要贊他們的高效,不過,也直接導(dǎo)致面試官非常的疲憊。
第一個技術(shù)主管比較瘦,帶著眼鏡,很和藹,一直提醒我放松,當(dāng)我遇到問題時,很耐心的引導(dǎo)我解決,是我比較想跟著做事的那種人。不過比較bt,問了大概12道題。
1 第一道筆試題 是編程求三個整數(shù)的中間大小的那個數(shù),我用數(shù)組來求的,似乎他不太滿意,但是他仍回答說在數(shù)目比較小的情況下,用數(shù)組也是可行的
2 問了我圖形學(xué)渲染流水線的問題,我答的不錯,他也贊賞有嘉
3 因?yàn)槲易鲞^紋理映射,問了我紋理映射有哪些,提到cubic 紋理,沒答上來。
4 問紋理有哪些濾波方法,我答了trilinear和biliear,但anisotropic忘記了。又問了trilinear和bilinear有什么用,答曰:tri用于解決mipmap,bi用于解決縮放問題
5 接著問什么是mipmap... 這我還是了解的,就說是遠(yuǎn)近繪制精度問題,然后又問,
如果是1024*1024的分辨率,遠(yuǎn)處是2.5lod,近處應(yīng)該是多少?nod,這個我不知道。
6 我簡歷上寫了 數(shù)學(xué)還不錯,于是他說,我們來做幾道數(shù)學(xué)題吧...
問了我泰勒級數(shù),開始忘記寫倒數(shù)那一項(xiàng)了,在他引導(dǎo)下 分析出來了
7 泰勒級數(shù)后,他又說再來道智力題吧,問我如果有十級臺階的題,一次只能走一步或兩步,看有多少種走法;我沒做過,就給他分析,先后分析出了用組合的方法和遞歸方法,但沒有具體實(shí)現(xiàn),他很詫異,說,一般的人都只會用遞歸,然后我們在引導(dǎo)他采用組合的方法,你居然先用組合,再想到遞歸,問我是不是以前做過,呵呵,我當(dāng)然否認(rèn)了。
8 問了我matlab一些東西,如二值化函數(shù),沒答上來,估計(jì)他以前用過;圖形學(xué)不用的
9 我簡歷上寫了shader,他就問了shader中有哪些架構(gòu)(好像是這樣的),然后問我asmshader和hlsl shader的區(qū)別,我就說是低級語言和高級語言的差別;
10 問了我python有哪些數(shù)據(jù)結(jié)構(gòu),為什么用python不用perl和ruby;
11 另外就是我一些 項(xiàng)目上的東西,比如我們的marker為什么用圓形的。
他比較厲害,我一提我們做的東西,他就能理解到,而且能說出我們大概所采用的方法,強(qiáng)
12 int 和unsigned int的結(jié)合運(yùn)算比如unsigned 1和int -3比較大小的問題;第二個面試官似乎對我不是很感興趣,只是問了我pipeline和texture的問題,然后問了unified shader model。剩下的時間主要是他講他們部門的工作,asm shader和compiler的東西,dx10啊,我在認(rèn)真聽,但是我們之間沒多少具體技術(shù)上的交流,一切都很平淡?赡芤仓苯訉(dǎo)致了最后的 failure。
第三面就是和hr面談,氣氛還是一直很融洽的,可惜沒給我offer,談到了工資和戶口的問題還有今年是簽幾年的合同。都比較詳細(xì)的,并且盡量回答你所問的問題。非常nice的一個人結(jié)果一般在兩三天之內(nèi)就會出。
等待的過程是痛苦的,但是沒offer的消息更痛苦...
面試問題:
1 是一道編程題,有三個整數(shù),求中間大小的那個數(shù);
2 是一道改錯題,是關(guān)于用指針能否返回malloc分配的內(nèi)存的題。
void getmemory(char *p, int num)
{ p = (char *)malloc(sizeof(char)* num) }
然后是main函數(shù)中的getmemory(str,100); strcpy(str,"hello");
3 是一個幾何計(jì)算題,很簡單,列出兩個二元一次方程就可以解出來;
4 是一道智力題,問有一個93*36的長方形,全部由1*1的單位正方形組成,問長方形的一條對角線要穿越多少單位正方形;
答案似乎是93+36-1
5 問gpu的渲染流水線當(dāng)中,哪一個步驟可以刪除 (clip)掉一個三角形,并且要用d3d的函數(shù)具體指出,(對于大多數(shù)習(xí)慣于opengl的同學(xué)來說,估計(jì)不那么容易回答吧)
6 問為什么遠(yuǎn)處的物體相對較小,而近處的物體相對較大?
我是從小孔成像和透視原理來分析的,并且聯(lián)想到了mipmap的原理;
7 題目說明了什么是little endian和big endian,問怎么判斷一個cpu采用的哪種處理方式
8 問gpu為什么比cpu 跑的快?1 gpu的并行處理 2 gpu的超常流水線
9 問你處理在課堂里學(xué)過的圖形學(xué)教材外,還看過哪些圖形學(xué)的書?
經(jīng)驗(yàn)3:
面試當(dāng)天早上到北京,上午面世via,晚上的車回大連。在同學(xué)宿舍無聊啊,也沒有mm陪,咱也寫一個面經(jīng)吧,哈哈。我應(yīng)聘的是 linux driver development這個職位。
約好9點(diǎn),大概9:15的樣子被喊過去,面試我的是一個高高瘦瘦的特斯文的gg,給人的感覺還是很nice的。不過不知道我的試卷去了哪里,找不到,還好有成績記錄,看到那個gg寫在我的簡歷上,40分哈哈,我心想,居然了還有面世機(jī)會。先是就簡歷問,問我作過的那份實(shí)習(xí)相關(guān)的咚咚,我作的是一個視頻系統(tǒng)的porting吧,他就問我那塊板子的處理器架構(gòu),然后問我移植的難點(diǎn),問題,以及如何解決的。俺一一作了回答。
接著問我對linux內(nèi)核方面的東西,這是俺地強(qiáng)項(xiàng),我就跟他說,內(nèi)核對于寫驅(qū)動是如何的重要,如果不懂內(nèi)核肯定寫不出高質(zhì)量的安全的驅(qū)動程序,同時也暗示via是大公司,有的driver是要加入kernel的。應(yīng)該招聘對內(nèi)核比較懂得人做 driver,這位gg問我知道via哪些driver被加入了內(nèi)核,寒一個,不知道。
接著問我2.6內(nèi)核和2.4內(nèi)核的區(qū)別,俺回答,差別太大了,從服務(wù)器應(yīng)用到嵌入式應(yīng)用幾乎都作了重大的改進(jìn),服務(wù)器方面現(xiàn)在可以支持32顆cpu,嵌入式方面由于改進(jìn)了的調(diào)度算法和可搶占內(nèi)核,使得系統(tǒng)的相應(yīng)能力大幅度提高。他接著問進(jìn)程調(diào)度方面有哪些重大改進(jìn),我又介紹了一下o(1)調(diào)度算法,同時贊了一下2.6內(nèi)核改進(jìn)的驅(qū)動模型。這一段感覺答得還是不錯的,聊得時間也挺長的,這個gg說我的經(jīng)歷還是蠻適合他們公司的,呵呵。
接著寫了兩個小程序:一個是在a.h里面定義一個整形變量,并且在b.c和c.c中include這個頭文件,我一看他在頭文件中定義變量就指出這樣定義是不可以的,這個gg說是不可以,那么會在什么地方出現(xiàn)問題,編譯還是在連接,有點(diǎn)暈竟然回答在編譯的時候,后來在給他分析問什么會是在編譯的時候出現(xiàn)問題時發(fā)現(xiàn)應(yīng)該是在連接的時候進(jìn)行符號解析出現(xiàn)重復(fù)的變量定義錯誤,立馬改正,好好gg這個時候比較肯定我的分析。另外一道題就是分析static這個關(guān)鍵詞了,老掉牙的問題了,呵呵,不羅嗦了。接下來就是拿了一段關(guān)于mpeg方面的英文介紹讓我翻譯一下,也比較簡單。我在翻譯的時候偷偷的在看他寫對我的面試評價,好像提到c語言了,hoho。
中間讓我出去了幾分鐘,可能是在寫面世評語吧,我就等了幾分鐘,然后帶我去了另一個房間是他的主管,一個好像對技術(shù)不是那么在行,可能是大boss,另外一個看起來應(yīng)該是個技術(shù)很強(qiáng)的人,不過不nice。
對我從大連跑到北京面世贊賞了一番,我暈。并且問我有沒有和同學(xué)一道過來,還特意幫我查了一下他們部門在大連就我一個人過來面試,又說我不容易,ft。
還是讓我介紹項(xiàng)目相關(guān)的東西。又被我?guī)е兜絻?nèi)核了,問了我一些相關(guān)的問題,又是2.6的和2.4的差別,包括兩種內(nèi)核的定時時鐘的精度,2.4的 10ms,2.6的1ms都是基本的東西,又問我如何定時小于1ms,我說這個只能用循環(huán)了,但是那位技術(shù)gg似乎認(rèn)為用循環(huán)并不適宜,我告訴他我就知道這種方法,他也沒有告訴我更好的辦法,ft。還問了內(nèi)核中的自旋鎖方面的東西,我就介紹了一下自旋鎖的發(fā)展史,比較了一下semaphore和自旋鎖的差。中間那個大boss居然說我40 分相當(dāng)高了,而且技術(shù)gg似乎也點(diǎn)頭稱是。不知道平均分如何。
最后又問我會不會腳本編程,會不會automake,我只好老實(shí)回答只用過make,c語言用的比較不錯。還問有沒有研究過framebuffer,我說沒有用過,不過原理有所了解,應(yīng)該很簡單,就是將顯卡內(nèi)存映射到用戶空間,對映射內(nèi)存的讀寫就是操作顯卡內(nèi)存,可以顯著的提高效率,技術(shù)gg在我說的過程中說了好幾個是是,呵呵。
最后那個大boss問我有沒有得過什么獎項(xiàng)或者引以為豪的項(xiàng)目經(jīng)歷。唉,俺啥獎都沒有得過,引以為豪的項(xiàng)目經(jīng)歷說得還是與他們職位無關(guān)的,技術(shù)gg說我在自己的專業(yè)領(lǐng)域可能作的會更出色,ft,俺是學(xué)機(jī)電的。這樣就結(jié)束了,呵呵大boss還是很友善的,起身握手送別,連稱不錯不錯,呵呵。并且告訴我一個星期內(nèi)給消息,我晚上可以回大連了。
ps:在附近上班的一個哥們中午請我吃飯的,吃飯回來的路上,風(fēng)沙那個大阿。我說北京真是不及在大連生活舒服,他說最好把這些軟件公司都搬到大連去,去大連上班比較好。呵呵
面試問題:
先是就簡歷問,問我作過的那份實(shí)習(xí)相關(guān)的,問我那塊板子的處理器架構(gòu),然后問我移植的難點(diǎn), 接著問我對linux內(nèi)核方面的東西;接著問我2.6內(nèi)核和2.4內(nèi)核的區(qū)別; 最后又問我會不會腳本編程,會不會automake,我只好老實(shí)回答只用過make,c語言用的比較不錯。