1.1 面試官談面試
初級程序員考算法和數(shù)據(jù)結(jié)構(gòu)谒拴,高級程序員考技能和經(jīng)驗;
應(yīng)聘者應(yīng)該準(zhǔn)備好的問題問面試官涉波;
不要著急寫代碼英上,寫完需要檢查;
“寫”程序才是程序員啤覆;
1.2 面試三種形式
1.2.1 電話面試
只能通過語言進(jìn)行交流苍日,要求平時對于知識有復(fù)述的能力和練習(xí);
電話面試中出現(xiàn)英文時窗声,應(yīng)該及時詢問不懂的單詞或者句子相恃,不能曲解;
1.2.2 在線面試
在線面試考的不僅是編程能力笨觅,還有編程習(xí)慣拦耐;
不要急于打開編輯器寫代碼,應(yīng)該給出編程的思路描述屋摇,然后嘗試編寫揩魂,最后單元測試幽邓;
報錯沒有問題炮温,打開調(diào)試環(huán)境,設(shè)置斷點牵舵,單步跟蹤柒啤,分析調(diào)用棧。(我是故意寫錯畸颅,讓你看看我是如何調(diào)試的)
1.2.3 現(xiàn)場面試
穿得干凈担巩;及時補(bǔ)充能量;狀態(tài)積極没炒;
1.3 面試三個環(huán)節(jié)
簡歷詢問-》技術(shù)面試-》應(yīng)聘者提問
1.3.1 簡歷詢問
又叫行為面試涛癌,一般會針對簡歷進(jìn)行提問,或者自我介紹;
其中涉及到了項目經(jīng)驗拳话,學(xué)習(xí)歷程先匪,技術(shù)優(yōu)勢是面試官比較關(guān)注的地方;
1.3.1.1 項目經(jīng)驗
STAR(Situation Task Action Result)形式描述自己做過的項目弃衍;
S: 一句話介紹背景
T:負(fù)責(zé)某個項目呀非,那就需要準(zhǔn)備框架設(shè)計,核心算法镜盯,團(tuán)隊合作的問題岸裙;
參與某個項目,需要準(zhǔn)備完成任務(wù)程度速缆,實踐方式降允,收獲的問題;
A:系統(tǒng)設(shè)計:說框架艺糜;開發(fā):說平臺拟糕,技術(shù),難點倦踢;測試:測試手段送滞,腳本;
R:用數(shù)字說明辱挥,可以編犁嗅,但是要合理,開發(fā)功能的說按時完成了多少個功能模塊晤碘;優(yōu)化的說性能提高了多少個百分點褂微;維護(hù)的說修改了幾個BUG;
如果上邊描述不清楚园爷,面試官會追問遺漏的點宠蚂,也會問到的其他問題:
1)遇到最大的問題,以及如何解決的童社;2)在這個項目中有什么成長求厕;3)協(xié)作中發(fā)生沖突如何解決;
1.3.1.2 技術(shù)優(yōu)勢
區(qū)分“了解”“熟悉”“精通”的區(qū)別扰楼,依次對應(yīng)“入門”“做過項目呀癣,查文檔可以寫”“隨便問”
1.3.1.3 為啥選擇我們、為啥跳槽
首先是后邊這個問題弦赖,避免“老板爛项栏,隊友是豬,加班多蹬竖,工資少”沼沈,比較合適的是流酬,我對以前的工作沒有多少興趣,認(rèn)為我在這個崗位沒啥發(fā)展列另,個人判斷“xx”公司的業(yè)務(wù)在未來會有不錯的發(fā)展康吵。
1.3.2 技術(shù)面試
面試的主要內(nèi)容,考察五個方面的東西:基礎(chǔ)知識访递,高質(zhì)量代碼晦嵌,分析問題的思路,優(yōu)化算法的能力拷姿,學(xué)習(xí)溝通的潛力惭载;不斷的討論問題是很好的解決方案;
1.3.2.1 基礎(chǔ)知識
編程語言的基本語言特性要非常清晰响巢,如果這門語言是公司標(biāo)明要用的描滔,那必須非常清晰;
數(shù)據(jù)結(jié)構(gòu)中鏈表踪古,棧含长,隊列,哈希表伏穆,樹以及他們的基礎(chǔ)操作是經(jīng)尘信ⅲ考察的;
算法中肯定是查找和排序了枕扫,常見的算法陪腌,如快排,二分烟瞧,歸并這些必須非常熟悉诗鸭;
1.3.2.2 高質(zhì)量的代碼
注釋;完成功能参滴;邊界强岸;效率;(寫代碼 的順序也應(yīng)如此)
例1 把字符串轉(zhuǎn)換成整數(shù)
int StrToInt(char* string){int iRtr = 0;while(*string !=0){iRtr =iRtr*10 +*string-'0';++string}return iRtr;}
注釋:函數(shù)功能注釋砾赔,輸入輸出蝌箍;函數(shù)邊界注釋,邊界處理过蹂;函數(shù)錯誤(溢出)注釋十绑,錯誤處理聚至;
完成功能:iRtr = iRtr*10+*string-'0'?
1.3.2.3 清晰的思路
難免遇到不會的題目酷勺,這時候就要有清晰的解決問題的思路:
1)簡單化;2)實例化扳躬;3)圖文形象化
1.3.2.4 優(yōu)化效率
首先知道如何計算程序的效率脆诉,然后采用下邊的順序優(yōu)化原有的解決方案:
1)更合適的數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲甚亭;2)更合適的算法
1.3.2.5 綜合能力
這是程序員的軟實力,比如學(xué)習(xí)能力击胜,溝通表達(dá)能力亏狰,團(tuán)隊協(xié)作能力;當(dāng)然這些方面的考察依次會轉(zhuǎn)化為以下的問題“從XX問題中得到了什么”“介紹一下自己”“你對XX沖突的看法”偶摔;
當(dāng)然綜合能力還包括其他的拓展能力暇唾,比如建模能力,發(fā)散思維能力等辰斋,這些都是對special offer提出的要求策州。
1.3.3 提問
應(yīng)該問“與招聘職位和他們正在做的項目相關(guān)的技術(shù)問題”
1.4 總結(jié)【付超】
看書寫筆記是一個好習(xí)慣, 我也一直保留這樣的習(xí)慣宫仗,能夠讓我深入的理解書中講到的內(nèi)容够挂,另外為以后溫習(xí)學(xué)到的點留下機(jī)會。原來都會寫到onenote中藕夫,現(xiàn)在分享出來孽糖,也是有一點分享的意思。
簡述很好毅贮,但是不太適合程序員寫技術(shù)博客办悟,嘗試過在別的平臺寫東西,但是總沒有寫東西的欲望滩褥。解決方案如下:
文字部分依舊使用簡述發(fā)布誉尖,代碼部分會給出代碼的鏈接,ideone.com是個不錯的平臺铸题,我會把代碼發(fā)布到那邊去實踐铡恕。
另外,《劍指offer》這本書中提到的背景知識我會同時發(fā)布在這個專題里丢间,多數(shù)是轉(zhuǎn)發(fā)來的優(yōu)秀資源探熔,用于迅速的了解背景知識。
祝好