一道或許可以通吃的面試題
前段時間我面試了乙個朋友,前面當然也是問了一些常規的問題。可能是他實在不太合適我們的需要,又感覺人家大老遠的趕來,如果幾分鐘就結束實在也不合適。於是我突發其想的問了乙個(嚴格來說是兩個)問題。過後回顧,發現這個問題可大可小,有值得深思的地方。所以就寫出來與大家分享一下,雖然沒有標準答案,但是回答得好壞與否還是很好判斷的。
以下對話內容大半真實,部分搞笑屬於虛構。
伍迷:現在我有乙個專案想交給你做,是寫乙個資訊發布的**。要求很簡單,就是有個後台有個可以增刪改查資訊的管理頁面。前台是乙個檢視資訊列表和檢視資訊內容的頁面。給你一天時間,你打算如何做?
面試者:只有一天,不太可能吧?
伍迷:一切皆有可能!
伍迷:啊?,你說得沒錯,不過我的意思其實是……
面試者:我知道,你是要我自己寫。我自己寫,一天估計是不行,三天差不多吧,可以寫出來。
伍迷:你如何做呢?
面試者:先建資料庫,再寫後台的介面,拖拉一些文字框和按鈕控制項,然後把這些表單的資料通過sql語句存入資料庫。修改也是同樣的,刪除就在列表那個頁面進行,列表用的是select。前台顯示用select查詢到的結果繫結到控制項就可以了。
伍迷:ok,可這些工作為什麼要三天,如果我想讓你半天就完成任務,你如何辦?
伍迷:,我還沒有問你,如果只給你一小時,你如何辦呢?
面試者:一小時!你不會還有一分鐘的需求吧?
面試者:嘿嘿!完成任務就行。
面試者:一年時間是不是太長了點?我用不著。
伍迷:。對這個**要求也許會高很多,我希望它可以被任何做資訊發布的**使用。
面試者:人家早就有了,不需要的!
伍迷:嗨!,我是在出題,又不是要你真的去做!
伍迷:哈,好,可以詳細談談嗎?
面試者:…………
寫乙個資訊發布的**。就是有個後台有個可以增刪改查資訊的管理頁面。前台是乙個檢視資訊列表和檢視資訊內容的頁面。給你一天時間,你打算如何做?(其中一天只是表示時間短的意思,對沒經驗者可以是一周,對有一年經驗者,是一到三天,對兩三年及以上經驗者,應該是半天甚至乙個小時。)
寫乙個資訊發布的**,給你50萬的專案經費,給你一年的時間,希望它做到可以被任何做資訊發布的**使用,你打算如何做?
顯然這兩個問題不會有標準答案,不過大家討論一下,這個問題要深入下去,應該有很多可討論的地方。比如第乙個題目可以考查面試者的基本功,可以細化到sql語句是拼接字串還是用引數傳遞,用控制項繫結還是生成html,甚至是否考慮過ide的那些sqldatasource控制項來進行資料連線達到不寫一行**實現功能的目的。而第二個題目就考察得更廣了,如何專案管理,比如成本,時間,人員招聘,團隊建設等,如何需求調研,需求分析,系統如何設計,系統如何架構,如何分層,需不需要分布式,開發時如何源**管理,中期如何單元測試,後期如何功能測試和效能測試,軟體如何推廣等等,我也很難說全。不過看似乙個小題目,我覺得它的確可以考查乙個面試者的各方面的綜合素質。
來吧,還等什麼,做題試試看!
備註:
由於本文引起了很大的爭議,所以不得不在此做些補充宣告。
這個面試者,有五年多的程式設計工作經驗,有一年多的專案管理經驗,所以不是大家所謂的菜鳥。開始面試時,我也是按照先自我介紹,然後談談自己的專案經歷的傳統方式進行。可是幾個問答後,發現水平和簡歷中所寫的相差很大,我也不清楚他到底水平如何。於是突發其想了這兩個問題。可能是我的文章題目或者是當中的一些小小搞笑的語言讓讀者感覺我對此次面試非常不嚴肅,在玩弄這位面試者。那這些誤解的讀者真是錯了,上面的表述中,有很大的虛構成分,現實中沒有任何戲弄的成分。事實上,這位面試者不但沒有很生氣的離開,反而應該更清楚的認識到自己的不足(至少應該讓他覺得沒有白跑一趟)。和一些讓面試者大冬天請假跑很遠過來只是筆試幾道題就讓人家等回音的面試,我覺得我做得還可以。本文只是乙個想法,並不是要真的推廣這種面試題,請較真的人放鬆放鬆,沒必要這麼認真。「資訊發布**」這個詞的確太寬泛,不夠準確,其實我的本意是企業級內容管理系統(cms),我承諾有誤,謝謝指正。
一道面試題
一道面試題 射擊運動員10發打中90環有多少種可能,請編寫程式計算出來,並列印出結果,0環和10環均有效。打中90環就是沒打中10環,所以打中90環跟打中10環的可能性是一樣的。然後開始遞迴狂打槍,一到10就記錄 if params i 10 在迴圈的控制中已經排除了大於10的可能性 i 10 pa...
一道面試題
前些時候在找工作,就在準備結束此次找工作歷程的時候,去了一家公司面試,去了之後技術經理直接帶到一台電腦旁,給了一張紙條,上面是這樣的題目 用c或c 來實現 1 建立一棵樹,該樹的深度是隨機的,每個節點的位元組點數是隨機的。2 給每個節點分配一段隨機大小的記憶體空間,給每個節點賦乙個隨機數。3 遍歷這...
一道面試題
如果n為偶數,則將它除以2,如果n為奇數,則將它加1或者減1。問對於乙個給定的n,怎樣才能用最少的步驟將它變到1。例如 n 61 n 60 n 2 30 n 2 15 n 16 n 2 8 n 2 4 n 2 2 n 2 1 public class myclass public static vo...