亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

軟件開發(fā)者面試百問

時間:2024-09-30 04:03:41 綜合指導(dǎo) 我要投稿
  • 相關(guān)推薦

軟件開發(fā)者面試百問

  軟件開發(fā)者面試百問

軟件開發(fā)者面試百問

  以下為文章全文:

  想雇到搞軟件開發(fā)的聰明人可不容易。萬一一不小心,就會搞到一堆低能大狒狒。我去年就碰到這種事了。你肯定不想這樣吧。聽我的,沒錯。在樹上開站立會議門都沒有。 問點有難度的問題能幫你把聰明人跟狒狒們分開。我決定把我自己整理出來的軟件開發(fā)者面試百問發(fā)出來,希望能幫到你們的忙。

  這個列表涵蓋了軟件工程知識體系中定義的大多數(shù)知識域。當(dāng)然,如果你只想找出類拔萃的程序員,便只需涉及結(jié)構(gòu)、算法、數(shù)據(jù)結(jié)構(gòu)、測試這幾個話題。如果想雇架構(gòu)師,也可以只考慮需求、功能設(shè)計、技術(shù)設(shè)計這些地方。

  不過不管你怎么做,都要牢記一點:

  這里大多數(shù)問題的答案都沒有對錯之分!

  你可以把我的這些問題作為引子,展開討論。例如下面有個問題是使用靜態(tài)方法或是單例的緣由。如果那個面試的就此展開長篇大論,那他很有可能是個聰明能干的家伙!如果他一臉茫然的看著你,發(fā)出這種聲音,很明顯這就是只狒狒了。同樣,想知道一個數(shù)是不是2的乘方也有很多方法,不過要是面試的人想用mod運算符,嗯??你知道我的意思吧。

  一、 需求

  (一) 你能給出一些非功能性(或者質(zhì)量)需求的例子么?

  (二) 如果客戶需要高性能、使用極其方便而又高度安全,你會給他什么建議?

  (三) 你能給出一些用來描述需求的不同技術(shù)么?它們各自適用于什么場景?

  (四) 需求跟蹤是什么意思?什么是向前追溯,什么是向后追溯?

  (五) 你喜歡用什么工具跟蹤需求?

  (六) 你怎么看待需求變化?它是好是壞?給出你的理由。

  (七) 你怎樣研究需求,發(fā)現(xiàn)需求?有哪些資源可以用到?

  (八) 你怎么給需求制定優(yōu)先級?有哪些技術(shù)?

  (九) 在需求過程中,用戶、客戶、開發(fā)人員各自的職責(zé)是什么?

  (十) 你怎么對待不完整或是令人費解的需求?

  二、 功能設(shè)計

  1. 在功能設(shè)計中有哪些隱喻?給出幾個成功的例子。

  2. 如果有些功能的執(zhí)行時間很長,怎么能讓用戶感覺不到太長的等待?

  3. 如果用戶必須要在一個很小的區(qū)域內(nèi),從一個常常的列表中選擇多個條目,你會用什么控件?

  4. 有哪些方法可以保證數(shù)據(jù)項的完整?

  5. 建立系統(tǒng)原型有哪些技術(shù)?

  6. 應(yīng)用程序怎樣建立對用戶行為的預(yù)期?給出一些例子。

  7. 如何入手設(shè)計一組數(shù)量龐大而又復(fù)雜的特性,你能舉出一些設(shè)計思路嗎?

  8. 有一個列表,其中有10個元素,每個元素都有20個字段可以編輯,你怎樣設(shè)計這種情況?如果是1000個元素,每個元素有3個字段呢?

  9. 用不同的顏色對一段文本中的文字標(biāo)記高亮,這種做法有什么問題?

  10. Web環(huán)境和Windows環(huán)境各有些什么限制?

  三、 技術(shù)設(shè)計

  什么是低耦合和高聚合?封裝原則又是什么意思? 在Web應(yīng)用中,你怎樣避免幾個人編輯同一段數(shù)據(jù)所造成的沖突? 你知道設(shè)計模式嗎?你用過哪些設(shè)計模式?在什么場合下用的? 是否了解什么是無狀態(tài)的業(yè)務(wù)層?長事務(wù)如何與之相適應(yīng)? 在搭建一個架構(gòu),或是技術(shù)設(shè)計時,你用過幾種圖? 在N層架構(gòu)中都有哪些層?它們各自的職責(zé)是什么? 有哪些方法可以確保架構(gòu)中數(shù)據(jù)的正確和健壯? 面向?qū)ο笤O(shè)計和面向組件設(shè)計有哪些不同之處? 怎樣在數(shù)據(jù)庫中對用戶授權(quán)、用戶配置、權(quán)限管理這幾項功能建模? 怎樣按照等級制度給動物王國(包括各種物種和各自的行為)建模?

  四、 程序設(shè)計

  你怎樣保證你的代碼可以處理各種錯誤事件? 解釋一下什么是測試驅(qū)動開發(fā),舉出極限編程中的一些原則。 看別人代碼的時候,你最關(guān)心什么地方? 什么時候使用抽象類,什么時候使用接口? 除了IDE以外,你還喜歡哪些必不可少的工具? 你怎么保證代碼執(zhí)行速度快,而又不出問題? 什么時候用多態(tài),什么時候用委派? 什么時候使用帶有靜態(tài)成員的類,什么時候使用單例? 你在代碼里面怎么提前處理需求的變化?給一些例子。 描述一下實現(xiàn)一段代碼的過程,從需求到最終交付。

  五、 算法

  怎樣知道一個數(shù)字是不是2的乘方?怎樣判斷一個數(shù)是不是奇數(shù)? 怎樣找出鏈表中間的元素? 怎樣改變10,000個靜態(tài)HTML頁面中所有電話號碼的格式? 舉出一個你所用過的遞歸的例子。 在散列表和排序后的列表中找一個元素,哪個查找速度最快? 不管是書、雜志還是網(wǎng)絡(luò),你從中所學(xué)到的最后一點算法知識是什么? 怎樣把字符串反轉(zhuǎn)?你能不用臨時的字符串么? 你愿意用什么類型的語言來編寫復(fù)雜的算法? 有一個數(shù)組,里面是從1到1,000,000的整數(shù),其中有一個數(shù)字出現(xiàn)了兩次,你怎么找出那個重復(fù)的數(shù)字?

  10. 你知道“旅行商問題(Traveling Salesman Problem)”么?

  六、 數(shù)據(jù)結(jié)構(gòu)

  怎樣在內(nèi)存中實現(xiàn)倫敦地鐵的結(jié)構(gòu)? 怎樣以最有效的方式在數(shù)據(jù)庫中存儲顏色值? 隊列和堆棧區(qū)別是什么? 用堆或者棧存儲數(shù)據(jù)的區(qū)別是什么? 怎樣在數(shù)據(jù)庫中存儲N維向量? 你傾向于用哪種類型的語言編寫復(fù)雜的數(shù)據(jù)結(jié)構(gòu)? 21的二進制值是什么?十六制值呢? 不管是書、雜志還是網(wǎng)絡(luò),你從中所學(xué)到的最后一點數(shù)據(jù)結(jié)構(gòu)的知識是什么? 怎樣在XML文檔中存儲足球比賽結(jié)果(包括隊伍和比分)? 有哪些文本格式可以保存Unicode字符?

  七、測試 什么是回歸測試?怎樣知道新引入的變化沒有給現(xiàn)有的功能造成破壞? 如果業(yè)務(wù)層和數(shù)據(jù)層之間有依賴關(guān)系,你該怎么寫單元測試? 你用哪些工具測試代碼質(zhì)量? 在產(chǎn)品部署之后,你最常碰到的是什么類型的問題? 什么是代碼覆蓋率?有多少種代碼覆蓋率? 功能測試和探索性測試的區(qū)別是什么?你怎么對網(wǎng)站進行測試? 測試套件、測試用例、測試計劃,這三者之間的區(qū)別是什么?你怎么組織測試? 要對電子商務(wù)網(wǎng)站做冒煙測試,你會做哪些類型的測試? 客戶在驗收測試中會發(fā)現(xiàn)不滿意的東西,怎樣減少這種情況的發(fā)生? 你去年在測試和質(zhì)量保證方面學(xué)到了哪些東西?

  七、 維護 你用哪些工具在維護階段對產(chǎn)品進行監(jiān)控? 要想對一個正在產(chǎn)品環(huán)境中被使用的產(chǎn)品進行升級,該注意哪些重要事項? 如果在一個龐大的文件中有錯誤,而代碼又無法逐步跟蹤,你怎么找出錯誤? 你怎樣保證代碼中的變化不會影響產(chǎn)品的其他部分? 你怎樣為產(chǎn)品編寫技術(shù)文檔? 你用過哪些方式保證軟件產(chǎn)品容易維護? 怎樣在產(chǎn)品運行的環(huán)境中進行系統(tǒng)調(diào)試? 什么是負(fù)載均衡?負(fù)載均衡的方式有哪些種? 為什么在應(yīng)用程序的生命周期中,軟件維護費用所占的份額最高? 再造工程(re-engineering)和逆向工程(reverse engineering)的區(qū)別是什么?

  九、配置管理

  你知道配置管理中基線的含義么?怎樣把項目中某個重要的時刻凍結(jié)? 你一般會把哪些東西納入版本控制? 怎樣可以保證團隊中每個人都知道誰改變了哪些東西? Tag和Branch的區(qū)別是什么?在什么情況下該使用tag,什么時候用branch? 怎樣管理技術(shù)文檔如產(chǎn)品架構(gòu)文檔的變化? 你用什么工具管理項目中所有數(shù)字信息的狀態(tài)?你最喜歡哪種工具? 如果客戶想要對一款已經(jīng)發(fā)布的產(chǎn)品做出變動,你怎么處理? 版本管理和發(fā)布管理有什么差異? 對文

  十、項目管理

  范圍、時間、成本,這三項中哪些是可以由客戶控制的? 誰該對項目中所要付出的一切做出估算?誰有權(quán)設(shè)置最后期限? 減少交付的次數(shù),或是減少每個每個交付中的工作量,你喜歡哪種做法? 你喜歡用哪種圖來跟蹤項目進度? 迭代和增量的區(qū)別在哪里? 試著解釋一下風(fēng)險管理中用到的實踐。風(fēng)險該如何管理? 你喜歡任務(wù)分解還是滾動式計劃? 你需要哪些東西幫助你判斷項目是否符合時間要求,在預(yù)算范圍內(nèi)運作? DSDM、Prince2、Scrum,這三者之間有哪些區(qū)別? 如果客戶想要的東西太多,你在范圍和時間上怎樣跟他達(dá)成一致呢?

【軟件開發(fā)者面試百問】相關(guān)文章:

百事西安電話面試中問的問題!11-20

面試常問11-20

面試英語的10問11-19

面試技巧:最后一問不該問什么11-26

面試哪些該問哪些不該問社交禮儀11-22

英國留學(xué)面試常問11-19

電工面試常問的問題06-10

面試HR會問什么11-19

問對問題:讓你的面試與眾不同11-13

面試官常問的問題11-26