換工作的事兒終于搞定了,斷斷續(xù)續(xù)找了半年時(shí)間,曾經(jīng)有段時(shí)間感到特別低迷,連續(xù)被各種各樣的理由拒掉,最變態(tài)的就是說智力測(cè)驗(yàn)沒過,讓我好郁悶了一陣。那種被打擊到開始懷疑自己的感覺實(shí)在是不好。 待到11月底12月初的時(shí)候,好像一下子峰回路轉(zhuǎn)了。好消息
換工作的事兒終于搞定了,斷斷續(xù)續(xù)找了半年時(shí)間,曾經(jīng)有段時(shí)間感到特別低迷,連續(xù)被各種各樣的理由拒掉,最變態(tài)的就是說智力測(cè)驗(yàn)沒過,讓我好郁悶了一陣。那種被打擊到開始懷疑自己的感覺實(shí)在是不好。
待到11月底12月初的時(shí)候,好像一下子峰回路轉(zhuǎn)了。好消息接踵而至,一口氣拿了4個(gè)offer,包括一家國企,一家美資企業(yè),兩家納斯達(dá)克上市的國內(nèi)企業(yè)的offer,頓時(shí)有山高月小水落石出的感覺。接著就是發(fā)愁怎么拒offer了,最先pass了國企和美資企業(yè),感覺這兩家太安逸,沒有什么挑戰(zhàn),而且名氣不大。已經(jīng)受夠了被問到:“在哪里工作”時(shí)解釋半天的尷尬,發(fā)誓一定要找個(gè)響當(dāng)當(dāng)?shù)臇|家。最終選擇了一家和自己背景相關(guān)、但薪資稍低一些的工資,還是更看重發(fā)展吧。
順便說一句,算了一下這兩個(gè)月總共面試了17個(gè)單位,最終確認(rèn)給發(fā)offer的是4個(gè),成功比例1:4,供大家做個(gè)參考吧。
啰嗦了這么多,下面開始總結(jié)在這些公司面試遇到的題目,供明年初想換工作的兄弟們做個(gè)參考,這些題目說白了都不是很難,但是想做到讓面試官滿意還是有點(diǎn)難度的。基礎(chǔ)知識(shí)的部分仔細(xì)看看書可以應(yīng)對(duì),在白板上或者紙上回答面試官現(xiàn)場考察的題目就很考驗(yàn)心理素質(zhì)和編程功力了。
當(dāng)然,如果細(xì)心準(zhǔn)備一下,還是非常有幫助的。
1,C++基礎(chǔ)知識(shí)的面試題:
1、static, const 的用法:在類中使用static成員函數(shù),為什么static函數(shù)不可調(diào)用non-static成員變量和成員函數(shù)?(沒有this 指針),const成員函數(shù)如何使用?為什么const成員函數(shù)不可修改成員變量?(const this指針)
2、虛函數(shù):純虛函數(shù)的用法,多態(tài)如何實(shí)現(xiàn),虛函數(shù)表如何實(shí)現(xiàn)?虛析構(gòu)函數(shù)的作用
3、auto_ptr,shared_ptr的用法? (一家很牛的互聯(lián)網(wǎng)公司電話面試的時(shí)候問的,僅此一次)
4、類型轉(zhuǎn)換,static_cast, dynamic_cast, reinterpreter_cast, const_cast的用法
5、overide, overload,為什么構(gòu)造函數(shù)不能為虛函數(shù)?
6、stdcall, cdecl的區(qū)別?
還有那家純美資企業(yè)的C++面試題,問題比較偏門,包括類成員指針、參數(shù)為對(duì)象時(shí)臨時(shí)對(duì)象,模板偏特化等,建議看看《effective c++》,另外還有本英文的《C++ common knowledge》,也是本很有用的書。牛逼點(diǎn)的還可以看看《深入探索C++對(duì)象模型》這本書,不過本人感覺這書里討論的情形太過奇葩,又是多態(tài)又是多重繼承又是模板的堆在一起,基本上在工程實(shí)踐上用到的情況很少。除非你想發(fā)明一種新語言。
2,數(shù)據(jù)結(jié)構(gòu)與算法
這部分是整個(gè)面試過程中最有難度的部分,往往也是決定能否給offer的決定環(huán)節(jié)。準(zhǔn)備數(shù)據(jù)結(jié)構(gòu)與算法的最佳參考書當(dāng)然是《算法導(dǎo)論》這本公認(rèn)的經(jīng)典,這本書的特點(diǎn)是非常非常的系統(tǒng),但是有些數(shù)學(xué)證明,對(duì)于面試而言是無幫助的。面試中最多問一句:空間復(fù)雜度是多少?時(shí)間復(fù)雜度是多少?
另外有一本很有用的書《算法技術(shù)手冊(cè)》,里面有很多經(jīng)典算法的原理圖和偽代碼,比起《算法導(dǎo)論》,這本書要實(shí)用和高效很多。
面試中經(jīng)常考察的數(shù)據(jù)結(jié)構(gòu)包括鏈表、數(shù)組(字符串)、二叉樹,太復(fù)雜的數(shù)據(jù)結(jié)構(gòu)一般較少問到,唯一例外的是被問到了最大堆和最小堆。
具體的,
鏈表:翻轉(zhuǎn)一個(gè)單向鏈表(遞歸與非遞歸),合并兩個(gè)排序的單向鏈表為一個(gè)排序鏈表(merge sort),找出兩個(gè)鏈表相交的第一個(gè)節(jié)點(diǎn)
字符串:1,在A串中找到B串,并返回位置。 2,找出字符串?dāng)?shù)組中出現(xiàn)一次的一個(gè)單詞,出現(xiàn)一次的兩個(gè)單詞?3,寫一個(gè)atoi程序(見本人博文)4,寫一個(gè)strcpy,注意內(nèi)存申請(qǐng)失敗的時(shí)候異常處理。
二叉樹:找出二叉樹的第二大(小)節(jié)點(diǎn)
其他:用兩個(gè)stack實(shí)現(xiàn)一個(gè)queue
算法中比較重要的是幾個(gè)常用的排序算法,及其變形應(yīng)用,包括insert sort, merge sort, quick sort(變形包括求最大的N個(gè)數(shù)), count sort。寫一個(gè)沒有錯(cuò)誤的二分搜索(遞歸非遞歸)
白板或者紙上現(xiàn)場作答的題目主要是為了考察你的編程基本功,一般不會(huì)有太復(fù)雜的算法,但是并不表示你能很容易的通過,越是簡單問題,面試官對(duì)程序的書寫風(fēng)格、邊界檢查都會(huì)考察的非常仔細(xì)(如aoti程序)。當(dāng)然也有例外,有一次讓我在白板上寫優(yōu)先隊(duì)列的pop操作,由于涉及到優(yōu)先隊(duì)列的堆重建,和優(yōu)先隊(duì)列用數(shù)組的表示方法,一下子就蒙了,面試官又一副冷漠的神情,讓我有些憤怒,很想跟他說我真的記不得了要不你來寫一下看看?那是我最不愉快的一次面試。
3,操作系統(tǒng)
Windows操作系統(tǒng)通常會(huì)問
1,線程和進(jìn)程的區(qū)別,線程的同步方式?進(jìn)程間的通信方式。 2,Windows消息傳遞機(jī)制? 3,異步socket,連接池
Linux
1,常用命令,top,ps
2, \proc\*目錄
3,壓縮打包命令
4,C語言調(diào)試方式,內(nèi)存泄露檢查工作
5,httpd里的mod的編寫?如何優(yōu)化http消息?
4,雜項(xiàng)
1,性能優(yōu)化問題,C10K
另外面試官一般會(huì)根據(jù)你的項(xiàng)目經(jīng)歷,問一些項(xiàng)目相關(guān)的問題,比如會(huì)問你:你做過的項(xiàng)目里你最得意的作品是什么?最不滿意的地方又是什么?又比如我簡歷里談到比較熟悉設(shè)計(jì)模式,面試官會(huì)問你用過哪些設(shè)計(jì)模式?列出常見的設(shè)計(jì)模式?所以其實(shí)精心準(zhǔn)備一份讓你有話可說的簡歷,其實(shí)也是非常重要的。
基本上能回憶起來的就是這些。
最后想吐槽一下面試官。其實(shí)筆者在決定換工作前也做過面試官的工作,所以對(duì)面試官的心態(tài)還是比較了解的。大公司的面試官,一方面應(yīng)聘者如云,另一方面手頭的工作繁多,還被HR拉過來,打斷手頭工作面人,有時(shí)候難免有些情緒。這時(shí)就可能出現(xiàn)上文我提到的那種情況,弄一個(gè)比較偏門的算法題(比如讓你寫紅黑樹的增刪查如何實(shí)現(xiàn)),不給任何提示,然后埋頭敲鍵盤或者看簡歷,留下應(yīng)聘者在那里絞盡腦汁。老實(shí)說我很鄙視,很簡單的道理,對(duì)于一個(gè)工作幾年的程序員,我根本沒有時(shí)間去把這么復(fù)雜的程序每一行準(zhǔn)確無誤的記在心里,而且我清楚的明白其實(shí)你也不能,調(diào)換一下角色,我一樣可以這樣為難你,如果我進(jìn)來了以后我們就是co-worker,你覺得這樣真的有必要嗎?而且你還代表著所在公司的形象。我想誰也不想在一個(gè)如此教條式的公司工作吧。
所以下次我決定之間給這樣的面試官三個(gè)字:不記得!當(dāng)然我可以跟你探討一下紅黑樹的原理,為什么要采用這樣的平衡結(jié)構(gòu)?不然會(huì)有什么極端情況?這種情況下的時(shí)間復(fù)雜度是多少?
說到這里想贊一下MS的面試官,很多人說MS現(xiàn)在在走下坡路,說有能力的人都愿意從MS出來去做互聯(lián)網(wǎng),但是從我面試的經(jīng)歷來看,MS的工程師團(tuán)隊(duì)還是非常nice而且高素質(zhì)。比如有些技巧性很強(qiáng)的問題,你一時(shí)沒有思路,他會(huì)給你提示,然后不斷的探討,啟發(fā)你的思路,讓你得到N個(gè)方法,比較時(shí)間和空間復(fù)雜度,最終得到一個(gè)最優(yōu)答案。我認(rèn)為這才是比較負(fù)責(zé)任的面試官應(yīng)該有的素質(zhì)。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com