開始問好,坐下.然后面試官讓我做自我介紹.他瀏覽簡歷.
然而大概是不夠嚴(yán)肅認(rèn)真的問題,沒有好好準(zhǔn)備.說了個"我是xx學(xué)校,xx專業(yè)的xxx"之后,面試官就打住了,然后.看簡歷.
選定了一個項目<基于UDP的暢聊系統(tǒng)>
介紹項目.不讓用筆畫,直接口述表達(dá).但是有表述不清,所以有轉(zhuǎn)換成了面試官問用到的知識點.
涉及到ncurses.簡單窗口繪制
使用線程方案進(jìn)行多窗口同步更新
1.在使用線程繪畫過程中,因為執(zhí)行全局句柄操作,所以需要使用pthread_mutex進(jìn)行鎖處理.
1.1是否死鎖,是否會崩潰.死鎖避免方法等
2.客戶端輸入數(shù)據(jù),通過cppjson進(jìn)行序列化處理.
然后面試官問了
2.1序列化,反序列化作用.同時,
2.2除了json之外還有什么序列化/格式化工具.(只記得strstream,應(yīng)該使用sprintf,vprintf也可以進(jìn)行.)
下來問了這個暢聊系統(tǒng)的實現(xiàn)
3.是否可以使用TCP進(jìn)行處理.,,qq使用UDP/TCP連接? 為什么.
3.1 TCP和UDP的區(qū)別
3.1.1TCP UDP 頭部信息等問題.
在項目實現(xiàn)中使用了廣播,那么
3.2 255.255.255.255與NETID.MASK 方式的廣播有什么差異.
3.3 廣播風(fēng)暴是怎么產(chǎn)生的.如何避免
關(guān)于TCP問題(一臉懵逼)
4.1 TCP半連接與全連接
4.2 TCP粘包問題
4.3 socket網(wǎng)絡(luò)編程問題
4.4 tcpdump使用
關(guān)于tcp以及網(wǎng)絡(luò)編程的問題.因為實在答不下去了,我就直接的跟面試官講了這一塊不太熟.
于是乎,跳前邊:
就我說設(shè)計模式比較熟悉了.于是就那么
5寫一個單例模式
我寫了一個餓漢模式的單例,然后因為一些不細(xì)心/緊張.少寫了一個public.
然后,面試官提點
5.1 需不需要加鎖.
5.2 加鎖進(jìn)入if之后需不需要加鎖,為什么(只記得需要加鎖,忘記了內(nèi)部鎖的緣由.)
關(guān)于設(shè)計模式,其實想補充證明自己懂得比展示的多的問題.
eg
可以單例使用模板方式處理,
通過工廠方式實現(xiàn)單例,
使得單例可以擴(kuò)展....
5.3 關(guān)于單例模式,何時釋放,清除.
最后,貌似還問了個:
6 你平時通過什么途徑獲取最新it知識...(大概描述)
答的比較差.很是猶豫,徘徊.
然而,卻忘記了一個最主要的問題.
因為自己從
6 寫代碼(找出數(shù)組中第n大數(shù)字).實現(xiàn)
6.2 之后問了個使用兩個棧實現(xiàn)隊列的問題.然后,大概是因為我和他都了解(我的字臺不能看了)
于是,我跟他講:簡單說下思路,就不寫代碼了.然后gg(這個貌似不太好,可能除了思路外,認(rèn)為代碼能力不足了)
7 到單例模式實現(xiàn)
這個過程中都沒有給面試官一個滿意的點
{書寫太差,最初實現(xiàn)只是為了功能完成,且完成之后少了認(rèn)真檢查.}
在自我介紹/項目介紹時,沒有認(rèn)真準(zhǔn)備,給出一個合理的思路以及表述.使得面試官已經(jīng)在心里給出了一個差評.之后彌補這個黑點是很難的.
沒能成功引導(dǎo)面試官進(jìn)入自己復(fù)習(xí),穩(wěn)定的點.且前一天沒有仔細(xì)閱讀項目代碼.這些都是很大的問題.
那么反思結(jié)果
1.自我介紹/項目介紹,嚴(yán)肅認(rèn)真.條理清晰簡介.
因為這個過程可以很直接的帶著面試官進(jìn)入 自己可能需要談得點.
2.代碼書寫問題.
字體盡可能工整(使用鉛筆也可).字盡量大.同時不要節(jié)省紙張,留下一定的空格 ?便于二次修改.
3.知識點問題:
網(wǎng)絡(luò)部分太差,服務(wù)器編程以及相關(guān)概念需要補充.特別是網(wǎng)絡(luò)知識TCP/UDP報頭以及原理等.