程序員,最重要的是技術(shù)能力、溝通能力、團(tuán)隊(duì)協(xié)作能力、發(fā)現(xiàn)問(wèn)題的能力。那么如何才能在面試中獲得成功呢,就需要你把這幾點(diǎn)都發(fā)揮出來(lái)。
1、熱愛(ài)技術(shù)
表達(dá)你對(duì)你所做的一切感到驕傲,你對(duì)自己的選擇充滿自信,你對(duì)語(yǔ)言和工作流有著自己的看法。
涉及到編碼問(wèn)題的時(shí)候,溝通是關(guān)鍵。
一個(gè)在工作時(shí)需要幫助卻能和人正確溝通的求職者比那些能輕松解決問(wèn)題的求職者甚至更好。了解這是哪種問(wèn)題。有兩種類型的問(wèn)題:
編碼。面試官希望你能針對(duì)問(wèn)題寫(xiě)出簡(jiǎn)潔高效的代碼。
閑聊。面試官希望能和你聊一聊。
話題通常是(1)高水平的系統(tǒng)設(shè)計(jì)(“如何克隆Twitter?”);(2)瑣事(“Javascript中的hoisting是什么意思?”)。
如果你開(kāi)始編寫(xiě)代碼,并且面試官并不想多說(shuō)廢話,只想盡快過(guò)渡到“實(shí)際”問(wèn)題,那么如果你羅哩叭嗦太多的話,她可能會(huì)覺(jué)得厭煩。不妨直接問(wèn),“是不是為這個(gè)問(wèn)題寫(xiě)代碼?”
2、讓人感覺(jué)你有團(tuán)隊(duì)精神
面試官想知道和你一起工作是什么感覺(jué),會(huì)有什么問(wèn)題,所以要讓他們看到你的團(tuán)隊(duì)合作性。使用“我們”來(lái)代替“我”。
把自己的想法大聲說(shuō)出來(lái)。不是開(kāi)玩笑,比如說(shuō):“我不知道這樣做是否有效——但請(qǐng)讓我試一試?!比绻悴恢涝趺崔k,不知道這個(gè)問(wèn)題該如何解決,那么就說(shuō)一說(shuō)你現(xiàn)在的想法。
說(shuō)一說(shuō)你認(rèn)為怎么做可能會(huì)有效。說(shuō)一說(shuō)你認(rèn)為哪些會(huì)有用,以及為什么沒(méi)用的原因。
這同樣適用于瑣碎的閑聊問(wèn)題。當(dāng)面試官要求你解釋Javascript閉包的時(shí)候,“這與范圍有關(guān),不妨把它放到一個(gè)函數(shù)中”可能會(huì)讓你得到90%的分?jǐn)?shù)。
不知為不知。如果正在談?wù)摰脑掝}(例如,具體的語(yǔ)言事務(wù),具體的瑣事,運(yùn)行時(shí)分析)的確是你不曾涉獵的內(nèi)容,那么不要不懂裝懂。相反,你可以直接說(shuō)。
說(shuō)話不要不經(jīng)大腦。不要自信地將答案脫口而出。如果是正確的,那么你還是需要時(shí)間來(lái)考慮如何解釋,如果是錯(cuò)的,那會(huì)顯得你沖動(dòng)魯莽。
你不是在和人比速度,而且你這么做更有可能因?yàn)榇驍嗨脑捇蛘咄陆Y(jié)論而惹惱她。
3、擺脫困境
有時(shí)候你會(huì)陷入僵局,放松。這并不意味著你已經(jīng)失敗了。
請(qǐng)記住,面試官通常更在乎的,是你能否巧妙地從幾個(gè)不同的角度去揭示問(wèn)題,而不是一根筋走到底地堅(jiān)持正確答案。
畫(huà)圖。不要浪費(fèi)時(shí)間在腦袋里思考,可以畫(huà)到板上。畫(huà)出幾個(gè)不同的測(cè)試輸入。畫(huà)出你如何手動(dòng)如愿得到所需的輸出。然后想想將你的方法轉(zhuǎn)換成代碼。
解決問(wèn)題的簡(jiǎn)單版本。不知道如何找到集合中的第4大條目?那么想想如何找到第1大條目,然后試試能否沿用這種方法。
寫(xiě)一個(gè)簡(jiǎn)潔低效的解決方案,然后對(duì)其進(jìn)行優(yōu)化。
講講自己的思路。講一講你知道什么。講一講你認(rèn)為什么可能工作以及為什么無(wú)效的原因。你可能突然會(huì)意識(shí)到它實(shí)際上是可以工作的,或修改版本是有效的。也有可能,你會(huì)得到提示。
等待提示。不要用期待的眼光盯著面試官,但可以有短暫的“思考”時(shí)間——面試官或許已經(jīng)決定給你個(gè)提示也說(shuō)不定呢,等待她的提示以免打斷她。
考慮空間和運(yùn)行時(shí)的界限。如果你不知道你是否可以優(yōu)化解決方案,那么就說(shuō)出來(lái)。
調(diào)用幫助函數(shù),繼續(xù)前進(jìn)。如果你不能或多或少地馬上想出如何實(shí)現(xiàn)算法,那就跳過(guò)它。寫(xiě)一個(gè)命名合理的調(diào)用函數(shù),例如:“this will do X”,然后繼續(xù)下一步驟。
如果幫助函數(shù)非常微不足道,你甚至可以將它忽略。
不要擔(dān)心語(yǔ)法。不妨一笑而過(guò)。如果你非要考慮語(yǔ)法,那就還原到英語(yǔ)。只要向面試官說(shuō)明稍后會(huì)回來(lái)整理即可。
預(yù)備足夠的空間。你可能后面會(huì)想要在代碼行之間添加代碼或筆記。從白板的頂部開(kāi)始寫(xiě),并在每一行之間留一條空白。
最后寫(xiě)一個(gè)重頭檢查的標(biāo)志。不要擔(dān)心你寫(xiě)的for循環(huán)是否應(yīng)該有“<”或“<=”。在代碼的最后畫(huà)個(gè)勾選提醒自己最后再檢查一遍。先按自己的思路走。
使用描述性的變量名。想名字需要時(shí)間,但可以防止你忘記自己寫(xiě)某段代碼的目的。
使用names_to_phone_nums_map而不是nums。在名稱中說(shuō)明類型。返回布爾值的函數(shù)應(yīng)該以“is_ *”,保存列表的Vars應(yīng)該以“s”結(jié)尾。標(biāo)準(zhǔn)化很有意義。
4、完成之后的整理
瀏覽解決方案,大聲地講,輸入一個(gè)例子。當(dāng)程序運(yùn)行時(shí)記錄下變量保存的值——如果你只是記在腦子里,不會(huì)讓你贏得任何加分。這有助于你發(fā)現(xiàn)bug和消除面試官的困惑。
尋找差一錯(cuò)誤。你的for循環(huán)是不是應(yīng)該使用“<=”來(lái)代替“<”?
測(cè)試邊緣情況。措施包括空集合,單項(xiàng)目集合或負(fù)數(shù)。加分點(diǎn):提一提單元測(cè)試!
不要惹人厭煩。有的面試官可能并不在意這些整理步驟。如果你不確定,可以這樣說(shuō),“我通常會(huì)檢測(cè)一些邊緣情況——那么我們接下來(lái)是不是做這個(gè)呢?“
運(yùn)行實(shí)踐問(wèn)題是沒(méi)有捷徑的。
好記性不如爛筆頭。對(duì)自己誠(chéng)實(shí)。用筆寫(xiě)可能一開(kāi)始會(huì)讓你覺(jué)得別扭。但是如果你現(xiàn)在就能克服這個(gè)難題,那么當(dāng)面試的時(shí)候,你就不會(huì)覺(jué)得笨拙和不順手了。
面試成功與否取決于兩點(diǎn):自身的能力好壞是第一要素,表達(dá)上的技巧是第二點(diǎn)。
關(guān)于我們 丨 聯(lián)系我們 丨 廣告合作 丨 誠(chéng)聘英才 丨 網(wǎng)站地圖
Copyright © 2018 武漢門(mén)戶網(wǎng) www.jwzcgl.com鄂ICP備16007396號(hào)-6