這是我遇到最蛋疼的一次面試,進(jìn)入大廈來(lái)到7樓,首先映入眼棉的是黑漆漆破舊的服務(wù)臺(tái),給我很不好的印象。當(dāng)時(shí)就打算轉(zhuǎn)身就走,考慮到做了一個(gè)多小時(shí)的車(chē)過(guò)來(lái)了還是面一面吧。首先來(lái)的是HR,進(jìn)來(lái)介紹了公司的業(yè)務(wù),上班時(shí)間,加班和獎(jiǎng)金等問(wèn)題。令我非常生氣的是作為軟件開(kāi)發(fā),還用每年兩三個(gè)月的出差時(shí)間?當(dāng)時(shí)又有了準(zhǔn)備走的想法。一面是技術(shù)面,估計(jì)來(lái)的是個(gè)小組長(zhǎng),年紀(jì)三十多吧,手里拿了我的簡(jiǎn)歷和一張紙,看樣子上面寫(xiě)的是要問(wèn)的問(wèn)題。滿滿一張紙。 先談做過(guò)的項(xiàng)目有哪些,負(fù)責(zé)這些項(xiàng)目的那些模塊,軟件都有哪些功能,順便根據(jù)你的回答問(wèn)些可能涉及到的C++知識(shí)。這些都不在話下,畢竟本人也是做過(guò)大項(xiàng)目的,一些問(wèn)題還是比較清楚的。問(wèn)到設(shè)計(jì)模式,這個(gè)本人也有一些研究和應(yīng)用,跟他談了幾種設(shè)計(jì)模式,本打算和他洗講代理模式和適配器模式(這個(gè)樓主項(xiàng)目里面用的多)被他略過(guò),當(dāng)時(shí)就懷疑這小子是不是不懂設(shè)計(jì)模式?然后問(wèn)多線程的同步互斥,和多進(jìn)程通信問(wèn)題。當(dāng)然這些問(wèn)題樓主都有過(guò)研究自不必在話下。這類問(wèn)答題歸為以下幾題:
面試官問(wèn)的面試題: 1.什么時(shí)候用多線程?
2.多線程的好處和缺點(diǎn)?
3.使用多線程要注意哪些問(wèn)題?如何解決?(跟他詳談了線程的同步與互斥的幾種方法,臨界區(qū),信號(hào)量,時(shí)間,互斥量,并比較詳細(xì)的談了這幾種方法的異同,結(jié)合樓主做過(guò)的項(xiàng)目,談了實(shí)際中在哪些場(chǎng)景下用到,看他樣子,就知道他自己可能都沒(méi)弄明白)
4.一些任務(wù) 用一個(gè)進(jìn)程多個(gè)線程 和 用多個(gè) 進(jìn)程同時(shí)來(lái)處理如何選擇?(樓主首先想到了性能,如果一項(xiàng)任務(wù)的執(zhí)行比較占用內(nèi)存或者cpu,而且職責(zé)比較單一可將其獨(dú)立開(kāi)辟一個(gè)進(jìn)程,然后多進(jìn)程通信來(lái)解決問(wèn)題,其他情況用多線程,然后解釋了進(jìn)程間通信會(huì)比較慢,比較占用資源,線程間通信會(huì)稍快,樓主自我感覺(jué)回答的有些道理)
5.問(wèn)了軟件設(shè)計(jì)的幾層構(gòu)架(服務(wù)器,業(yè)務(wù)邏輯,界面)
6.問(wèn)到軟件架構(gòu)的時(shí)候順便問(wèn)了數(shù)據(jù)庫(kù)問(wèn)題。接觸過(guò)哪些數(shù)據(jù)庫(kù)(sqlite),然后又問(wèn)在多個(gè)表查詢的優(yōu)化問(wèn)題(這個(gè)樓主真不知道怎么回答,直接說(shuō)不知道),又問(wèn)數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)(真沒(méi)印象,直接回答不知道),問(wèn)了數(shù)據(jù)庫(kù)如何查詢,如何插入刪除指令(這個(gè)樓主還是懂一些的,sqlite開(kāi)源數(shù)據(jù)庫(kù),跟他扯了里面的一些函數(shù),估計(jì)他沒(méi)接觸過(guò)sqlite然后略過(guò))
7.接著問(wèn)網(wǎng)絡(luò)結(jié)構(gòu),7層架構(gòu),哪7層(這個(gè)大學(xué)課本里面還記得一點(diǎn),背出來(lái)幾個(gè),然后又問(wèn)IP屬于哪層?胡扯了物理層,不知道對(duì)不對(duì))
8.接著窮追不舍的問(wèn)socket編程(我擦這個(gè)樓主出了書(shū)上見(jiàn)過(guò)以外,根本就沒(méi)用過(guò),直接講項(xiàng)目中沒(méi)接觸過(guò),只知道有這玩意,不會(huì)用,然后還一直窮追不舍的問(wèn)socket通信原理?腦子有病)
9.問(wèn)了解不了算法?(肯定了解啊,然后問(wèn)了幾種排序,問(wèn)了幾種排序?qū)嶋H運(yùn)用中如何選擇?樓主跟他扯了跟時(shí)間復(fù)雜度有關(guān),跟內(nèi)存占用有關(guān),結(jié)合這兩種因素來(lái)選擇,揭示了幾種排序的好處和弊處,比如說(shuō)堆排序占用內(nèi)存較大,數(shù)據(jù)量大影響速度,竟然告訴我答案是和數(shù)據(jù)量有關(guān),不知道我講的他有沒(méi)有在聽(tīng))
10.開(kāi)始面向?qū)ο罅耍嗬^承的好處和壞處?(樓主嚴(yán)重懷疑他普通話是否標(biāo)準(zhǔn),讓他重復(fù)了幾次,樓主搞忘記了多繼承的意思,不知道是一個(gè)基類派生多個(gè)子類,還是一個(gè)幾類向下派生一串類,然后直接講忘記了,請(qǐng)他告知這名詞啥意思,在得知是一個(gè)基類派生多個(gè)子類時(shí),一時(shí)想不起來(lái)如何回答,冷場(chǎng))
11.面向?qū)ο蟮膶?shí)現(xiàn)原理?(實(shí)話說(shuō)樓主最討厭別人問(wèn)些概念性的問(wèn)題,不如來(lái)套筆試題,不過(guò)這個(gè)問(wèn)題樓主還是知道的,回答是通過(guò)類的繼承,用基類的指針可以指向其派生的類,這么做的好處是在運(yùn)行中可以識(shí)別出是哪個(gè)派生類,運(yùn)行期識(shí)別)
12.類設(shè)計(jì)要注意的問(wèn)題?(然后跟他講了單一職責(zé),解釋了一些)
13.類繼承的好處和壞處?(樓主回答好吃是復(fù)用了基類的特性,代碼重用,然后他趁此問(wèn)了還有哪些其他方法能實(shí)現(xiàn)代碼重用?樓主卡住了,想了會(huì),回答除了類的繼承還有組合,沒(méi)想到答對(duì)了,哈哈哈,然后接著問(wèn)繼承組合如何選擇,跟她解釋了,如果幾個(gè)類聯(lián)合起來(lái)完成一項(xiàng)工作,使用組合,反正回答的不是很清楚吧)
14.還有很多問(wèn)題,不記得了,反正非常全面,面試官普通話有問(wèn)題,請(qǐng)他說(shuō)了幾遍STL,說(shuō)的我都不懂,然后請(qǐng)他在紙上寫(xiě),我擦這么簡(jiǎn)單的問(wèn)題還問(wèn)。問(wèn)了幾種容器的儲(chǔ)存性質(zhì),如何選擇,map結(jié)構(gòu)?都一一做了解釋。相信回答是對(duì)的。
15.泛型編程相關(guān)的問(wèn)題?有沒(méi)有用戶泛型編程,肯定用過(guò)啊,項(xiàng)目代碼里面底層實(shí)現(xiàn)都是用的泛型編程。一一談了相關(guān)問(wèn)題。
等等還有一些其他樓主記不起來(lái)的問(wèn)題,給我的感覺(jué),這么坑爹?問(wèn)了一下午的概念性的問(wèn)題,沒(méi)有筆試。沒(méi)有編碼,就問(wèn)問(wèn)答題。因?yàn)槊嬖嚨臅?huì)客室在他們公司內(nèi)部,所以看到了工作環(huán)境,很擁擠。樓梯口有員工在哪抽煙。感覺(jué)很不好。一面就這樣過(guò)去了,看了手機(jī),耗時(shí)1.5小時(shí),大概等了10分鐘(個(gè)人感覺(jué)很長(zhǎng)很長(zhǎng)?。?,然后HR進(jìn)來(lái)告訴我一面通過(guò),等會(huì)技術(shù)經(jīng)理來(lái)二面,我擦,又等了大概十分鐘的樣子,進(jìn)來(lái)一個(gè)白白胖胖的男子,又是自我介紹?談了最近幾次離職的原因。工作的內(nèi)容和性質(zhì)。閑聊了一會(huì),就開(kāi)始技術(shù)面,又是多線程的問(wèn)題,這個(gè)研究過(guò),講的還算比較清楚,然后問(wèn)了軟件的三層架構(gòu),通信的同步異步問(wèn)題,同步異步如何獲取結(jié)果,如果知道發(fā)給服務(wù)器的數(shù)據(jù)是成功的?(回答同步等待服務(wù)器返回結(jié)果,異步等待消息回調(diào))。然后又是socket,看樣子是一面的面試官注明的我在socket這方面的欠缺?然后就聊了聊公司文化,問(wèn)我有沒(méi)有什么問(wèn)題要問(wèn)他。直接回答沒(méi)有。然后就是HR進(jìn)來(lái)談薪資,這時(shí)面試已經(jīng)過(guò)去將近三個(gè)小時(shí)了,我迫不及待的想走,談毛線,那有軟件工程師還出差的,直接想走了。然后跟我講公司什么正規(guī)啊,每年14個(gè)月薪資,公積金交的很高啊什么什么的。狗屁一通。雖然提供的薪水比我要求的相差一小點(diǎn)點(diǎn)。但是這氛圍我一點(diǎn)不能接受。直接說(shuō)了不能接受出差,找了理由想撤,HR比較著急,說(shuō)今天將offer發(fā)到我郵箱。來(lái)不來(lái)這周給答復(fù)。我說(shuō)了聲好就離開(kāi)了。