孫家員外
程序員測試題一、數(shù)據(jù)庫部分:數(shù)據(jù)庫中有以下幾個表Customers(客戶信息)列名稱 含義 數(shù)據(jù)類型 可空 是主鍵 是外鍵 默認(rèn)值Customer_ID 客戶編號 int(自動增長) N Y N 無Customer_Name 客戶名稱 nvarchar(30) N N N 無Products(商品信息)列名稱 含義 數(shù)據(jù)類型 可空 是主鍵 是外鍵 默認(rèn)鍵Products _ID 客戶編號 int(自動增長) N Y N 無Products _Name 客戶名稱 nvarchar(100) N N N 無Unit_Price 單價 decimal(7,2) N N N 無Orders(訂單信息)列名稱 含義 數(shù)據(jù)類型 可空 是主鍵 是外鍵 默認(rèn)鍵Order _ID 訂單編號 int(自動增長) N Y N 無Order _Date 訂單日期 smalldatetime N N N DETDATEOCustomer_Price客戶編號 int N N Y 無OrderDetails(訂單詳細(xì)內(nèi)容)列名稱 含義 數(shù)據(jù)類型 可空 是主鍵 是外鍵 默認(rèn)鍵Order _ID 訂單編號 int(自動增長)N Y Y 無Product _ID 商品編號 smalldatetime N Y Y 無Product_Quantity商品數(shù)量 int N N N 1問題如下表Order_Date字段的默認(rèn)值GETDATEO是什么意思?2.查詢商品信息表中的商品總數(shù)量,各種商品平均單價。3.查詢用戶名稱為“張三”,訂單日期為2005-8-30日的訂單總金額。4.查詢商品名稱為“聯(lián)想電腦”的商品在2005-7-1日至2005-7-31之間每天的銷售明細(xì)(要求顯示日期、當(dāng)日的銷售總量)。二、C#語法題#中所有類的基類是什么?2.計算n+(n-1)+(n-2)+…+1(n=100)。3.請閱讀以下代碼,并求出結(jié)果。Int iResult=0;Int iTemp=0;for(int i=0;i+=2){iResult+=i;}While(iTemp<3){iResult-=iTemp;iTemp++;}請問iResult的值為多少?與重載有什么區(qū)別?5.閱讀以下代碼,然后回答問題Private int Division(int x,int y){return x/y;}請問該函數(shù)被調(diào)用時是否可能會出現(xiàn)問題?如果有問題請修改該函數(shù)。 class A{private string_value=“”;public A(string value){;}}Public class B:A{//想在構(gòu)造類B的同時初始化類A中的_value字段?}想在構(gòu)造類B的同時初始化類A中的_value字段,是否可以實現(xiàn)?如果可以實現(xiàn),請補充類B的代碼。 sealed class A{……}請問代碼中的sealed是什么意思?8.請問Session 和Application各在什么場合下使用(最好舉例說明)9.請問您在什么情況下會用到虛方法?它與接口方法有什么不同?10.請列舉二個您用到過的設(shè)計模式?11.請列舉一些中支持?jǐn)?shù)據(jù)綁定的控件,您經(jīng)常使用哪些?12.頁面上有一個input框的名字為txtPrice,請在提交前驗證該控件中的內(nèi)容(不能為空,必須是整數(shù),用javascript驗證)。13.請問重定向頁面有幾種方法?你可以試著做做看,公司出的題應(yīng)該都不一樣的,希望對你有所幫助!
huzhanghua88
一、棧(Stack)、隊列(Queue)和向量(Vector)
1、單鏈表、雙向鏈表、環(huán)形鏈表、帶哨兵節(jié)點的鏈表。
2、棧的基本概念和性質(zhì),棧ADT及其順序,鏈接實現(xiàn),棧的應(yīng)用、棧與遞歸。
3、隊列的基本概念和性質(zhì),隊列ADT及其順序,鏈接實現(xiàn)。
4、隊列的應(yīng)用,環(huán)形隊列、雙向隊列。
5、向量基本概念和性質(zhì),向量ADT及其數(shù)組、鏈接實現(xiàn)。
二、樹
1、樹的基本概念和術(shù)語,樹的前序、中序、后序、層次序遍歷;
2、二叉樹及其性質(zhì),普通樹與二叉樹的轉(zhuǎn)換。
3、樹的存儲結(jié)構(gòu),標(biāo)準(zhǔn)形式。
4、完全樹(complete tree)的數(shù)組形式存儲。
5、空樹的表示;樹的應(yīng)用,Huffman樹的定義與應(yīng)用。
擴(kuò)展資料:
第二部分計算機(jī)系統(tǒng)基礎(chǔ)
一、?處理器體系結(jié)構(gòu)
內(nèi)容:CPU中的時序電路、單周期處理器的設(shè)計、流水線處理器的基本原理、Data Hazard的處理、流水線設(shè)計中的其他問題。
二、?優(yōu)化程序性能
內(nèi)容:優(yōu)化程序性能、優(yōu)化編譯器的能力和局限性以及表示程序性能、特定體系結(jié)構(gòu)或應(yīng)用特性的性能優(yōu)化、限制因素、確認(rèn)和消除性能瓶頸。
三、?存儲器結(jié)構(gòu)及虛擬存儲器
內(nèi)容:局部性、存儲器層級結(jié)構(gòu)、計算機(jī)高速緩存器原理、高速緩存對性能的影響、地址空間、虛擬存儲器、虛擬內(nèi)存的管理、翻譯和映射、TLB、動態(tài)存儲器分配和垃圾收集。
四、?鏈接、進(jìn)程及并發(fā)編程
內(nèi)容:靜態(tài)鏈接、目標(biāo)文件、符號和符號表、重定位和加載、動態(tài)鏈接庫、異常和進(jìn)程、進(jìn)程控制和信號、進(jìn)程間的通信、進(jìn)程間信號量的控制、信號量,各種并發(fā)編程模式,共享變量和線程同步,其他并行問題。
五、?系統(tǒng)級I/O和網(wǎng)絡(luò)編程
內(nèi)容:I/O相關(guān)概念、文件及文件操作、共享文件、網(wǎng)絡(luò)編程、客戶端-服務(wù)器模型,套接字接口、HTTP請求,Web服務(wù)器。
參考資料來源:百度百科-軟件水平考試
star小朋友
程序員測試題一、數(shù)據(jù)庫部分:數(shù)據(jù)庫中有以下幾個表Customers(客戶信息)列名稱含義數(shù)據(jù)類型可空是主鍵是外鍵默認(rèn)值Customer_ID客戶編號int(自動增長)NYN無Customer_Name客戶名稱nvarchar(30)NNN無Products(商品信息)列名稱含義數(shù)據(jù)類型可空是主鍵是外鍵默認(rèn)鍵Products_ID客戶編號int(自動增長)NYN無Products_Name客戶名稱nvarchar(100)NNN無Unit_Price單價decimal(7,2)NNN無Orders(訂單信息)列名稱含義數(shù)據(jù)類型可空是主鍵是外鍵默認(rèn)鍵Order_ID訂單編號int(自動增長)NYN無Order_Date訂單日期smalldatetimeNNNDETDATEOCustomer_Price客戶編號intNNY無OrderDetails(訂單詳細(xì)內(nèi)容)列名稱含義數(shù)據(jù)類型可空是主鍵是外鍵默認(rèn)鍵Order_ID訂單編號int(自動增長)NYY無Product_ID商品編號smalldatetimeNYY無Product_Quantity商品數(shù)量intNNN1問題如下表Order_Date字段的默認(rèn)值GETDATEO是什么意思?2.查詢商品信息表中的商品總數(shù)量,各種商品平均單價。3.查詢用戶名稱為“張三”,訂單日期為2005-8-30日的訂單總金額。4.查詢商品名稱為“聯(lián)想電腦”的商品在2005-7-1日至2005-7-31之間每天的銷售明細(xì)(要求顯示日期、當(dāng)日的銷售總量)。二、C#語法題中所有類的基類是什么?2.計算n+(n-1)+(n-2)+…+1(n=100)。3.請閱讀以下代碼,并求出結(jié)果。IntiResult=0;IntiTemp=0;for(inti=0;i+=2){iResult+=i;}While(iTemp<3){iResult-=iTemp;iTemp++;}請問iResult的值為多少?與重載有什么區(qū)別?5.閱讀以下代碼,然后回答問題PrivateintDivision(intx,inty){returnx/y;}請問該函數(shù)被調(diào)用時是否可能會出現(xiàn)問題?如果有問題請修改該函數(shù)。{privatestring_value=“”;publicA(stringvalue){;}}PublicclassB:A{//想在構(gòu)造類B的同時初始化類A中的_value字段?}想在構(gòu)造類B的同時初始化類A中的_value字段,是否可以實現(xiàn)?如果可以實現(xiàn),請補充類B的代碼。{……}請問代碼中的sealed是什么意思?8.請問Session和Application各在什么場合下使用(最好舉例說明)9.請問您在什么情況下會用到虛方法?它與接口方法有什么不同?10.請列舉二個您用到過的設(shè)計模式?11.請列舉一些中支持?jǐn)?shù)據(jù)綁定的控件,您經(jīng)常使用哪些?12.頁面上有一個input框的名字為txtPrice,請在提交前驗證該控件中的內(nèi)容(不能為空,必須是整數(shù),用javascript驗證)。13.請問重定向頁面有幾種方法?你可以試著做做看,公司出的題應(yīng)該都不一樣的,希望對你有所幫助!
水里漂浮的雨
程序員面試一直是社區(qū)樂于討論的熱門話題。這篇文章是站在面試官角度對于程序員面試問題的一個階段性反思和經(jīng)驗總結(jié)?!灸繕?biāo)】相信和不少朋友一樣,有了幾年工作經(jīng)驗成為Senior后就開始了面試別人的經(jīng)歷。作者在最初這個階段只是按照自己的想象把”找到基礎(chǔ)好的程序員“,”找到算法能力優(yōu)秀的程序員“,”找到有Android開發(fā)經(jīng)驗的程序員“等作為面試的目標(biāo)。但是,實際的經(jīng)歷告訴作者,尤其是按“基礎(chǔ)好”,“算法好”這些目標(biāo)招到的人最終效果并不好。比如,有的面試者基礎(chǔ)知識和算法掌握情況不錯,進(jìn)程、線程、內(nèi)存等概念清晰,基本的Hash,二叉樹,快速排序等數(shù)據(jù)結(jié)構(gòu)和算法也比較熟悉,但是進(jìn)公司后在實際工作中表現(xiàn)得很糟糕。后來,作者才發(fā)現(xiàn)原來是作者的面試目標(biāo)出了問題,作者原先的面試方法更像是大學(xué)的算法或操作系統(tǒng)期末考試,按照這種方法讓許多并不合適的人通過了面試,同時也可能錯過了許多合適的人。后來,作者的反思是,從公司的角度講,面試的根本目的是找到"能夠干好工作"的人,而“高學(xué)歷”,“算法好”,“基礎(chǔ)好”,“有經(jīng)驗”這些都是表象而不是根本,它們并不能直接和“工作好”劃等號?!痉椒ā磕繕?biāo)明確了,但接下來的問題是假設(shè)面試者是一個黑盒系統(tǒng),“工作好”不是直接可觀測變量,你所能直接觀測的變量是基礎(chǔ)、算法、經(jīng)驗、學(xué)歷、性格、談吐、年齡等等。所以,實際上,你只能從“基礎(chǔ)好”,“算法好”等可以直接觀測的量去推測“工作好”的概率,這就是一個在“X好“條件下"工作好“的條件概率問題:P(工作好 | X好)。根據(jù)這個模型,面試所應(yīng)該考察哪些方面就很明顯了,那就是選擇那種最具有區(qū)分性的方面來考察。比如,考察面試者的體型特征沒有太大意義,因為P(工作好|高),P(工作好|矮),P(工作好|胖),P(工作好|瘦)的概率都差不多;所以,體型特征不具有區(qū)分性,這不是面試所應(yīng)該關(guān)注的內(nèi)容。面試官應(yīng)當(dāng)結(jié)合職位的要求明確哪些因素具有比較好的區(qū)分性。比如,如果要招一名技術(shù)門檻比較高的3D游戲引擎開發(fā)工程師,面試者A具有3D游戲引擎開發(fā)的經(jīng)驗,但是在基礎(chǔ)知識和算法面試方面表現(xiàn)一般;面試者B相反,基礎(chǔ)知識和算法面試表現(xiàn)很好,但沒有游戲開發(fā)經(jīng)驗,而你只能選擇其一。你選誰呢?其實,這就是兩個條件概率問題P(工作好|經(jīng)驗好,基礎(chǔ)一般,算法一般)和P(工作好|沒經(jīng)驗,基礎(chǔ)好,算法好)。這個問題就留給面試官來判斷了,就作者個人而言,對于技術(shù)門檻較高需要技術(shù)積累的職位,經(jīng)驗更加說明問題,因此,作者更傾向于面試者A。下面,作者再結(jié)合自己的經(jīng)驗談?wù)剬γ嬖囍谐R姺矫娴目捶??!舅惴ā克惴ㄊ荊oogle和MS等大公司面試所重點考察的內(nèi)容。作者個人很喜歡算法,曾經(jīng)參加ACM/ICPC拿過北京賽區(qū)的13名。但是,就個人經(jīng)驗來看,作者所接觸過的絕大多數(shù)開發(fā)職位而言,算法都不適合作為考察面試者優(yōu)劣的主要因素。對于普通的非算法性開發(fā)職位,考察面試者的算法就相當(dāng)于考察他打乒乓球好不好一樣,與目標(biāo)“工作好”的相關(guān)性太低。就作者個人的經(jīng)驗來看,差不多P(工作好|算法好)=50%,也就是算法面試沒有太大的區(qū)分性。甚至,還有一種很不好的情況特別多地出現(xiàn)在算法好的面試者身上,作者稱之為“只磨刀,不砍柴”。什么意思呢?有類人只對什么A*算法,異步編程,JVM類加載機(jī)制這種純技術(shù)問題感興趣,對實現(xiàn)用戶需求毫無興趣。這類人看起來有一定的技術(shù)能力,但是對公司來講貢獻(xiàn)十分有限,甚至不如技術(shù)一般但認(rèn)真負(fù)責(zé)的人。所以,一旦遇到面試者算法好,作者就特別留意考察會不會是這種“只磨刀,不砍柴”的人。另外,雖然作者個人不了解Google和MS,但作者對于其特別重視考察算法能力的面試策略是持懷疑態(tài)度的。即使在這樣的世界級大公司,算法雖然重要,但可以想象在項目實施過程所遇到的各種各樣問題中,算法問題絕大多數(shù)時候不會是主要瓶頸,沒有到那種需要每個人都是算法高手的情況。實際上,絕大多數(shù)項目真正難點并不是一兩個算法瓶頸,甚至也不是單點的技術(shù)瓶頸,而是系統(tǒng)性的組織、協(xié)調(diào)、設(shè)計、開發(fā)問題,有大量的看起來不是那么有技術(shù)含量的臟活累活,也有許多問題是由于信息不足,并不是技術(shù)能力強(qiáng)就能克服這些困難。一個團(tuán)隊最好優(yōu)勢互補,有人算法強(qiáng),有人業(yè)務(wù)分析能力強(qiáng),有人擅長后端服務(wù),有人擅長前端界面,有人聰明,有人踏實,這是最好的。如果按照“算法好”的單一標(biāo)準(zhǔn)選材,必定會把許多優(yōu)秀的人才拒之門外。補充:在更多地了解了Google和Facebook等一流公司的面試細(xì)節(jié)之后,作者對這個問題的認(rèn)識有了一定的改變,實際上這些公司在面試過程中并不完全強(qiáng)調(diào)技巧性很強(qiáng)的算法,而是更加注重編碼(Coding)能力,只是在進(jìn)行編碼測試的過程中往往是通過一些簡單算法題來進(jìn)行的。作者對于這種面試方法越來越欣賞,并且也作為了作者們公司面試過程中的重點環(huán)節(jié),因為編碼能力的測試是十分必要的,它有著知識性問題無法取代的作用,如果一個面試者連“判斷一個字符串是否是另一個字符串的子串”這樣的題目都無法正確并快速地實現(xiàn),那么基本上可以直接排除了。作者這里所強(qiáng)調(diào)的是不必考察高難度的算法問題,并非不重視編碼能力測試,請讀者不要誤解【基礎(chǔ)】基礎(chǔ)面試是指考察諸如指針使用、進(jìn)程線程概念等基礎(chǔ)知識的面試,十分類似于大學(xué)期末考試題。作者曾經(jīng)以為基礎(chǔ)面試十分重要,但是現(xiàn)在不這么看了。在工作中基礎(chǔ)的確是重要的,但是在面試過程中,它必須具有區(qū)分性才有意義,也就是說P(工作好|基礎(chǔ)好)的概率要高,那么考察指針使用,進(jìn)程線程區(qū)別這樣的基礎(chǔ)題目才有它的意義。作者的實際經(jīng)驗是,基礎(chǔ)面試并不具有很好的區(qū)分性,和算法一樣, 差不多P(工作好|基礎(chǔ)好) = 50%。同時,基礎(chǔ)面試是最容易準(zhǔn)備的,中國人有長期的應(yīng)試教育經(jīng)驗,要準(zhǔn)備幾個把玩指針題目太容易了。作者曾經(jīng)遇到過這樣的面試者,他的C語言基礎(chǔ)和編譯、鏈接等原理掌握得非常好,給作者留下了深刻的印象,作者給的面試結(jié)論是:知識面不寬,只會C語言,但基礎(chǔ)很扎實,建議錄用。后來的事情證明了那個結(jié)論的前半部分是對的,但是”建議錄用“錯了。他在實際工作中表現(xiàn)得一塌糊涂,不理解需求,不理解整體架構(gòu);同時,上班時間不是花在項目上,而是花在閱讀諸如《程序員的自作者修養(yǎng)》之類的書籍上。最后,這位同事由于長期“不出活”離開了公司?;A(chǔ)不是不重要,而是“基礎(chǔ)好”不足以說明面試者能干好工作,因為基礎(chǔ)是屬于局部性知識,而實際工作需要綜合性能力,二者有天壤之別。C語言、操作系統(tǒng)能考高分,但是不會寫程序的人在大學(xué)作者們還見得少嗎? 軟件開發(fā)就像蓋房子,綜合能力是設(shè)計和搭骨架,基礎(chǔ)知識是碼磚。張小龍原先Foxmail是Delphi開發(fā)的,他它不懂C#,你如果要招聘一個開發(fā).NET Email客戶端的人,你考察他對CLR掌握得好不好有意義嗎? 讓張小龍來開發(fā)一個C#版的Foxmail真的會有困難嗎? 你招一個精通C#但沒有Email客戶端開發(fā)經(jīng)驗的人來真的比張小龍靠譜嗎?作者說基礎(chǔ)知識不重要,和古人說的“不積洼步無以至千里”是不是矛盾呢?不矛盾!“洼步”與“千里”是一種可累加關(guān)系,但再多的“基礎(chǔ)知識”都累加不成“綜合能力”。學(xué)習(xí)軟件開發(fā)要像持續(xù)集成一樣,一開始就是一個完整的系統(tǒng),雖然規(guī)模不大,問題很多,但它麻雀雖小五臟俱全,從小系統(tǒng)到大系統(tǒng),從簡單系統(tǒng)到復(fù)雜系統(tǒng)逐步演化。所以,基礎(chǔ)好本身不足以說明太多的問題,必須進(jìn)一步考察綜合能力。對于基礎(chǔ)面試表現(xiàn)不好的面試者,如果時間允許也要進(jìn)一步考察,有的面試者其實是有能力的,只是沒有進(jìn)行充分的準(zhǔn)備。最理想的狀態(tài)當(dāng)然是基礎(chǔ)和綜合能力俱佳,若不能兼顧,應(yīng)當(dāng)綜合能力優(yōu)先。【經(jīng)驗】這里所說的經(jīng)驗不是通過工作了多少年來衡量的,而主要是指面試者的經(jīng)歷,比如,是否完整地實現(xiàn)過一個軟件,或作為主要開發(fā)者完成過一個項目。經(jīng)驗的重要性在于它能說明一個人的綜合能力。從項目的性質(zhì)、規(guī)模和難度,面試官就可以大致判斷出面試者的綜合能力。如果一個面試者一直在大公司負(fù)責(zé)一個小模塊的開發(fā)維護(hù),那么基本可以判斷他不具備獨立或作為主要開發(fā)者承擔(dān)一個項目的能力,只適合在另一家大公司做類似的事情。對于門檻較高需要長期技術(shù)積累的職位,相關(guān)經(jīng)驗更顯得尤為重要,比如,Linux內(nèi)核開發(fā),JVM開發(fā),游戲引擎開發(fā),數(shù)據(jù)庫實現(xiàn),高級UX等。對于這類職位,沒有經(jīng)驗的面試者即使綜合素質(zhì)不錯也是需要長時間的學(xué)習(xí)和積累才能勝任。所以,基本上如果確定了你的職位屬于此類,那么相關(guān)經(jīng)驗毫無疑問應(yīng)該成為首選因素,換句話說,P(工作好 | 相關(guān)經(jīng)驗好)的概率是非常高的。通過項目經(jīng)驗判斷面試者的優(yōu)劣比通過基礎(chǔ)和算法測試更加靠譜,所以,面試過程中面試官應(yīng)該花比較多的時間聽面試者介紹項目經(jīng)驗,并進(jìn)行深入地探討交流,了解面試者的知識面、思維能力、表達(dá)能力等。同時,可以結(jié)合項目提一些基礎(chǔ)知識和算法的問題,比如,如果面試者做過C++相關(guān)的項目,那就可以問他如何進(jìn)行內(nèi)存管理?是否熟悉智能指針?如果面試者的回答不能令人滿意,那么就基本上可以判斷他的項目做得不是很好。要注意的是,經(jīng)驗也是一個多維度的事物。比如,C++股票交易中間件系統(tǒng),這就涉及(C++,中間件,股票) 3個維度。假如面試者A做過C++股票交易客戶端,面試者B做過C的股票交易中間件。從語言角度看,A最匹配,從項目性質(zhì)看,B最匹配,你如何選擇?這就是在多個維度中,哪個維度更重要的問題,就這個例子而言,作者個人更傾向于B,因為作者認(rèn)為中間件開發(fā)經(jīng)驗是主要矛盾,而從C切換到C++并不是問題。所以,面試官需要判斷哪一種經(jīng)驗是主要的,而哪一種經(jīng)驗是次要的。比如,作者們招聘Android應(yīng)用開發(fā),這個職位的Android技術(shù)門檻并不高,它的真正難點在于做出好的用戶體驗(UX)。所以,如果一個面試者沒有Android的經(jīng)驗作者們是可以接受的,但是作者希望他在UX方面有經(jīng)驗,至少做過其他平臺的移動應(yīng)用開發(fā)?!拘愿瘛楷F(xiàn)在,作者來談作者認(rèn)為最重要的因素:性格。這可能是許多初為面試官的朋友所難以想象的,怎么會是性格最重要呢?說實話,當(dāng)作者意識到這一點時,作者自己也很驚訝!說白了,還是 P(工作好|性格好)的概率最高啊。作者的實際經(jīng)驗是,如果一個人的性格好,他能把工作做好的可能性是最高的,性格好遠(yuǎn)比基礎(chǔ)好、算法好要靠譜。一個人如果技術(shù)上有缺陷,經(jīng)驗上有不足,但性格好,在團(tuán)隊中是很容易由其他人來補位的,他自己也很容易逐漸補起來;相反,如果一個人的性格不好,所有的技術(shù)優(yōu)勢經(jīng)驗優(yōu)勢都發(fā)揮不出來,甚至還會起到負(fù)作用,而且性格缺點很難改變。作者一直談到實際工作所需要的是綜合性的能力,這種綜合能力的發(fā)揮中性格是至關(guān)重要的。項目中不止會遇到技術(shù)問題,要涉及溝通、協(xié)調(diào),不同的人不同的部門既有合作又有磨擦,如何處理這些事情都需要一個良好的性格??梢哉f,在開發(fā)團(tuán)隊里讓你與眾不同的不是你從哪個學(xué)校畢業(yè),也不是你過去的經(jīng)驗,而是你的性格當(dāng)然,性格是一個復(fù)雜的東西,它包含了很多的方面,并非所有方面都是程序員面試所需要關(guān)注的。作者的經(jīng)驗是可以重點考察這些方面:1) 態(tài)度積極還是消極。有的面試者在談吐中就會自然給你一種積極上進(jìn)的感覺,或者你可以在他的經(jīng)歷中發(fā)現(xiàn)他積極的因素,這些都不是太難看出來的。相反,有的面試者你能明顯感覺到他的消極情緒。積極性在工作中是十分重要的,積極的人能給團(tuán)隊帶來朝氣,也更易于合作?;旧?,如果確定面試者屬于態(tài)度積極的,他通過作者這一關(guān)的可能性就會大大增加;相反,如果確定屬于態(tài)度消極的,即使技術(shù)能力不錯作者也會十分謹(jǐn)慎。2) IQ。作者的經(jīng)驗是,總體來看,聰明的人在工作中的表現(xiàn)更為優(yōu)秀。在面試中要考察一個人是否聰明并不一定要像Google和MS那樣找些專門測試IQ的智力題,其實,你只需要看他討論問題是不是很有邏輯性,思考和說話是不是反應(yīng)敏捷就可以做出大致的判斷。另外,眼睛是人心靈的窗戶,一個人聰明與否,眼睛是會說話的。不過,聰明也不完全是優(yōu)點,比如,當(dāng)公司或項目遇到困難時,往往是聰明人先跑掉了,堅守的往往是IQ一般的人。3) 語言表達(dá)能力。語言表達(dá)能力也是程序員十分重要的一項素質(zhì),它關(guān)系到項目中的溝通是否順暢。面試官可以看看面試者能否用簡明的語言介紹清楚曾經(jīng)做過的項目,能否抓住要點,能否考慮到聽者的相關(guān)背景。一般來講,語言表達(dá)能力強(qiáng)的人綜合能力都不會太差。(面試網(wǎng) )4) 是否具有用戶意識。有人說程序員是做研發(fā)的,哪來什么用戶?只有銷售、市場人員才會和用戶打交道。其實,這是完完全全的錯誤認(rèn)識。你寫一個模塊,甚至一個API,只要有別人用,他就是你的用戶。有的程序員設(shè)計一個模塊或是一個軟件總是習(xí)慣于從使用者的角度來考慮,盡量地方便使用者,這就是一種良好的用戶意識。具有良好的用戶意識的人更能考慮別人的感受和整體的需要,而不是單純地從自己和局部來思考問題。當(dāng)面試者談及過去的項目經(jīng)驗時,面試官可以常常站在用戶的角度對其進(jìn)行提問,從這個過程中觀察其是否具有良好的用戶意識。5) 如何應(yīng)對質(zhì)疑和壓力。面試官應(yīng)該對面試者的回答以及以往項目進(jìn)行合理的質(zhì)疑,看看他如何應(yīng)對。曾經(jīng)有一位面試者談到做游戲登錄服務(wù)器的經(jīng)歷,作者就問:“如果登錄服務(wù)器掛了,怎么辦呢”?他說原先雖然沒有考慮這個問題,但是可以怎么怎么改進(jìn)。其實,大家都理解項目中有各種不完美,這里面原因很多,只要面對質(zhì)疑和壓力能從容應(yīng)對努力往好的方向思考解決就可以了,不需要掩飾缺陷,更不應(yīng)該有情緒。作者遇到過有的面試者,一旦你對其項目提出質(zhì)疑,他馬上產(chǎn)生反抗情緒,或不高興,或不承認(rèn)有問題,這很容易一下子看出來他在工作中容不得質(zhì)疑和批評,這種人要想合作就很困難。6) 個性特點。許多面試者喜歡在簡歷上寫“精通C++/Linux“,這些字眼看得人麻木,如果有人寫”喜歡C++/Linux“,作者就會有一種眼前一亮的感覺。“精通”是沒有感情色彩的敘述,而“喜歡”包含了面試者的個性,作者更愿意看到面試者的個性。作者相信對某樣?xùn)|西真正的熱情遠(yuǎn)比你當(dāng)前對它的掌握程度更為重要。其實,N年的經(jīng)歷告訴作者們,同一個班的同學(xué),同一個項目組的同事,雖然每天所學(xué)的知識,所接觸的工作都是相同的,但其實每個人的成績和表現(xiàn)差異是十分明顯的。那么,到底本質(zhì)的差異是什么呢?其實,就是每個人的個性。是個性使得有的人業(yè)余時間去打球,有的人業(yè)余時間去看書,有的人喜歡Linux,有的人喜歡Mac。一個人在團(tuán)隊中扮演的角色也和他的個性有很大的關(guān)系。面試官應(yīng)該引導(dǎo)面試者展現(xiàn)自己的個性,并判斷其是否有益于團(tuán)隊?!究偨Y(jié)】最后總結(jié)起來,作者的經(jīng)驗是:1) 面試官的目標(biāo)是找到”工作好“的人,一定要圍繞這個目標(biāo)來進(jìn)行面試,如果把面試當(dāng)成了算法或操作系統(tǒng)期末考試這就走入了誤區(qū);2) 面試過程是通過學(xué)歷、性格、基礎(chǔ)、經(jīng)驗、算法等可以測試的因素去綜合判斷面試者“工作好”的概率;3) 在各種因素中,性格 > 經(jīng)驗 > 基礎(chǔ) > 算法。性格是最重要的,如果性格不好,所有技術(shù)能力都會大打折扣,而且技術(shù)缺陷容易彌補,性格缺陷很難改變;經(jīng)驗體現(xiàn)了一個人的綜合能力,你可以從面試者過去的經(jīng)歷中判斷他能從事哪種工作,不能從事哪種工作;基礎(chǔ)和算法則主要起到輔助參考的作用,基礎(chǔ)好的程序員一般適應(yīng)性比較強(qiáng),學(xué)新技術(shù)更快,但是切忌單純從基礎(chǔ)來判斷一個人的能力。 更多程序員面試問題請登陸楚湘人才網(wǎng)
優(yōu)質(zhì)工程師考試問答知識庫