- 相關(guān)推薦
程序員常遇到的面試試題
對(duì)于算法面試問(wèn)題是否有效一直飽受爭(zhēng)議。然而,代碼編寫問(wèn)題有時(shí)候能夠很好篩選人才。在我們的例子中:
這些問(wèn)題是“CS101”水平的;
我們相信一個(gè)優(yōu)秀的開(kāi)發(fā)者需要能夠做出好的決定,并且這種好的決定是基于對(duì)有多少個(gè)復(fù)雜系統(tǒng)在交互的深刻理解上。如果一個(gè)開(kāi)發(fā)者不能反轉(zhuǎn)一個(gè)字符串,那么他們又怎么可能理解大型客戶端面臨軟件的性能含義?
誠(chéng)然,參與我們CS02課程的中學(xué)生都很聰明(其中一個(gè)還是美國(guó)計(jì)算機(jī)奧林匹克對(duì)隊(duì)員)。然而,在對(duì)大型軟件公司(如微軟、亞馬遜、谷歌等)的多年采訪后,我們發(fā)現(xiàn)專業(yè)的開(kāi)發(fā)者們并沒(méi)有比我們的職業(yè)顧問(wèn)人員牛多少。
問(wèn)題如下:
問(wèn)題解決的步驟和錯(cuò)誤:
1. 解析問(wèn)題,手工“解決”
對(duì)于孩子和成年人而言,這一步對(duì)前者來(lái)說(shuō)更困難
然而,如果要求誤解了問(wèn)題的學(xué)生來(lái)重讀這個(gè)問(wèn)題,孩子們的表現(xiàn)會(huì)超過(guò)成年人
2. 想出一個(gè)偽代碼算法
在這一步,學(xué)生的表現(xiàn)比成年人要好。
讓人震驚的是,很多成年人不知道如何用他們偏好的編程語(yǔ)言從一個(gè)字符串中抽取一個(gè)字符。
3. 將算法轉(zhuǎn)換為代碼
我們有一些C++程序員,他們不知道方括號(hào)以及一些C程序員,他們采用指針運(yùn)算,但是卻失敗了。
更讓人吃驚的是,當(dāng)他們?cè)试S查閱java API 文檔 或者使用參考書,很多成年人無(wú)法找到合適的文檔來(lái)幫助解決問(wèn)題。
的確,一些中學(xué)生已經(jīng)忘了如何使用;蛘邔(shí)例化一個(gè)隊(duì)列,但是,所有人都能夠在適當(dāng)?shù)臅r(shí)間內(nèi)通過(guò)查閱找到解決辦法。
會(huì)寫代碼的成年人(曾經(jīng)會(huì))經(jīng)常會(huì)超過(guò)時(shí)間限制。
有很多糟糕的代碼編寫者,即便你也是其中一個(gè),也別不要害怕
下面的方法并不是為了讓求職者參加一個(gè)“完整的堆棧訓(xùn)練營(yíng)”。相反,如果你是一個(gè)正在努力和“編程謎題”做斗爭(zhēng)的成年人:
1. 不停練習(xí),直到你能快速且正確地寫出小的代碼片段。沒(méi)有任何理由用自己喜歡的語(yǔ)言寫不出一個(gè)雙循環(huán)。找一些帶有例子的小的代碼智力題,你能在一分鐘以內(nèi)理解這些問(wèn)題。對(duì)這類問(wèn)題做成百上千遍的練習(xí)(不僅僅是幾十遍,切記!)。
2. 為課本上的每個(gè)算法寫一個(gè)用例列表。一個(gè)共同的錯(cuò)誤就是僅僅記住計(jì)算復(fù)雜度表。但是看一些算法的使用例子,例如 A*搜索在哪些地方使用,這比學(xué)習(xí)代碼本身要有用的多。
3. 至少做一個(gè)能逼迫你使用與工作相關(guān)的接口/用例的大型項(xiàng)目。語(yǔ)言通常不是很重要,而且獨(dú)自寫一個(gè)大型工程能夠強(qiáng)迫你去學(xué)新的設(shè)計(jì)模式以及遠(yuǎn)離遺留代碼維護(hù)。代碼面試是智利測(cè)試。所以它們很少關(guān)注具體的體系。
4. 讓自己接觸更優(yōu)秀的程序員。隨著 CS 崗位的快速增長(zhǎng),應(yīng)對(duì)“檸檬市場(chǎng)”的當(dāng)前解決辦法就是技術(shù)面試。但是同樣也有其他的方式來(lái)反映被面試者的信息。例如,對(duì)熱點(diǎn)話題、博客、技術(shù)的知識(shí)可以反映出對(duì)重要問(wèn)題的意識(shí)。類似地,對(duì)恐怖故事采用幽默的代碼書寫方式,可以反映出經(jīng)驗(yàn)和處理新問(wèn)題的能力。幸運(yùn)的是,在線代碼編寫社區(qū)隨處可見(jiàn),所以唯一地障礙就是是否肯花時(shí)間和保持謙虛。
編注:市場(chǎng)上產(chǎn)品質(zhì)量等級(jí)不同,質(zhì)量的差異與不確定存在于很多市場(chǎng),而買賣雙方的信息不對(duì)稱,產(chǎn)品的賣方對(duì)產(chǎn)品的質(zhì)量擁有比買方更多的信息,這種信息不對(duì)稱情況下的市場(chǎng)可能導(dǎo)致某市場(chǎng)萎縮甚至消失,也就是所謂的檸檬市場(chǎng)。
【程序員常遇到的面試試題】相關(guān)文章:
華為常考面試題09-25
辦理英國(guó)簽證要求面試常遇到的問(wèn)題08-09
程序員面試試題09-25
程序員面試題09-25
幼兒教師面試常遇到的問(wèn)題08-08
Google的20道常考面試題08-06
置業(yè)顧問(wèn)?济嬖囶}目08-10
.net程序員面試試題09-26
Java程序員面試試題09-25
你沒(méi)遇到過(guò)的面試題目08-07