1. 程式人生 > >劍指Offer 名企面試官精講典型程式設計題

劍指Offer 名企面試官精講典型程式設計題

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

劍指Offer:名企面試官精講典型程式設計題 

何海濤 編著

ISBN978-7-121-14875-0

2012年1月出版

定價:45.00元

16開

272頁

宣傳語:面試官的視角   50餘道程式設計題

       系統的解題方法  超寫實體驗與感悟

內 容 簡 介

本書剖析了50個典型的程式設計師面試題,從基礎知識、程式碼質量、解題思路、優化效率和綜合能力五個方面系統整理了影響面試的5個要點。全書分為7章,主要包括面試的流程,討論面試流程中每一環節需要注意的問題;面試需要的基礎知識,從程式語言、資料結構及演算法三方面總結了程式設計師面試的知識點;高質量的程式碼,討論影響程式碼質量的的3個要素(規範性、完整性和魯棒性),強調高質量的程式碼除了能夠完成基本的功能之外,還能考慮到特殊情況並對非法輸入進行合理的處理;解決面試題的思路,總結在程式設計面試中解決難題的常用思路,如果在面試過程中遇到了複雜的難題,應聘者可以利用畫圖、舉例和分解複雜問題3種方法化繁為簡,先形成清晰的思路再動手程式設計;優化時間和空間效率,介紹如何優化程式碼的時間效率和空間效率,讀完這一章讀者將學會常用的優化時間效率及空間換時間的常用演算法,從而在面試中找到最優的解法;面試中的各種能力,本章總結應聘者在面試過程中如何表現學習能力和溝通能力,並通過具體的面試題討論如何培養知識遷移能力、抽象建模能力和發散思維能力;兩個面試案例,這兩個案例總結了應聘者在面試過程中哪些舉動是不好的行為,而哪些表現又是面試官所期待的行為。

本書適合即將走向工作崗位的大學生閱讀,也適合作為正在應聘軟體行業的相關就業人員和計算機愛好者的參考書。

推薦序

海濤2008年在我的團隊做過軟體開發工程師。他是一個很細心的員工,對面試這個話題很感興趣,經常和我及其他員工討論,積累了很多面試方面的技巧和經驗。他曾跟我提過想要寫本有關面試的書,三年過後他把書寫出來了!他是一個有目標、有耐心和持久力的人。

我在微軟做了很多年的面試官,後面七年多作為把關面試官也面試了很多應聘者。應聘者要想做好面試,確實應把面試當作一門技巧來學習,更重要的是要提高自身的能力。我遇到很多應試者可能自身能力也不差但因為不懂得怎樣回答提問,不能很好發揮。也有很多校園來的應聘者也學過資料結構和演算法分析,可是到處理具體問題時不能用學過的知識來有效地解決問題。這些朋友讀讀海濤的這本書,會很受益,在面試中的發揮也會有很大提高。這本書也可以作為很好的教學補充資料,讓學生不只學到書本知識,也學到解決問題的能力。

在向我彙報的員工中有面試發揮很好但工作平平的,也有面試一般但工作優秀的。對於追求職業發展的人來說,通過面試只是邁過一個門檻而不是目的,真正的較量是在入職後的成長。就像學釣魚,你可能在有經驗的垂釣者的指導下能釣到幾條魚,但如果沒有學到垂釣的真諦,離開了指導者你可能就很難釣到很多魚。我希望讀這本書的朋友不要只學一些技巧來對付面試,而是通過學習如何解決面試中的難題來提高自己的程式設計和解決問題的能力,進而提高自信心,在職場中能迅速成長。

徐鵬陽(Pung Xu)

Principal Development Manager, Search TechnologyCenter Asia

Microsoft

 

 

前  言

2011年9月份以來,我的面試題部落格(http://zhedahht.blog.163.com/)點選率上升很快,累計點選量超過了70萬,並且平均每天還會增加約3000次點選。每一年隨著秋季新學期的開始,新一輪招聘高峰也即將來到。這不禁讓我想起幾年前自己找工作的情形。那個時候的我,也是在網路的各個角落搜尋面試經驗,儘可能多地收集各個公司的面試題。

當時網上的面試經驗還很零散,應聘者如果想系統地收集面試題,需要付出很大的努力。於是我萌生了一個念頭,在部落格上系統地收集、整理有代表性的面試題,這樣可以極大地方便後來人。經過一段時間的準備,我於2007年2月在網易部落格上發表了第一篇關於程式設計面試題的部落格。

在過去4年多的日子裡,我陸續發表了60餘篇關於面試題的部落格。隨著部落格數目的增加,我也逐漸意識到一篇篇部落格仍然是零散的。一篇部落格只是單純地分析一個面試題,但對解題思路缺乏系統性的梳理。於是在2010年10月我有了把部落格整理成一本書的想法。經過一年的努力,這本書終於和讀者見面了。

本書內容

全書分為7章,各章的主要內容如下:

第1章介紹面試的流程。通常整個面試過程可以分為電話面試、共享桌面遠端面試和現場面試3個階段,每一輪面試又可以分為行為面試、技術面試和應聘者提問3個環節。本章詳細討論了面試中每一環節需要注意的問題。其中第1.3.2節深入討論了技術面試中的5個要素,是全書的大綱,接下來的第2~6章逐一討論每個要點。

第2章梳理應聘者接受技術面試時需要用到的基礎知識。本章從程式語言、資料結構及演算法三方面總結了程式設計師面試的知識點。

第3章討論應聘者在面試時寫出高質量程式碼的3個要點。通常面試官除了期待應聘者寫出的程式碼能夠完成基本的功能之外,還能應對特殊情況並對非法輸入進行合理的處理。讀完這一章,讀者將學會如何從規範性、完整性和魯棒性3個方面提高程式碼的質量。

第4章總結在程式設計面試中解決難題的常用思路。如果在面試過程中遇到複雜的難題,應聘者最好在寫程式碼之前形成清晰的思路。讀者在讀完這一章之後將學會如何用畫圖、舉例和分解複雜問題3種思路來解決問題。

第5章介紹如何優化程式碼的時間效率和空間效率。如果一個問題有多種解法,面試官總是期待應聘者能找到最優的解法。讀完這一章,讀者將學會優化時間效率及空間換時間的常用演算法。

第6章總結面試中的各項能力。面試官在面試過程中會一直關注應聘者的學習能力和溝通能力。除此之外,有些面試官還喜歡考查應聘者的知識遷移能力、抽象建模能力和發散思維能力。讀完這一章,讀者將學會如何培養和運用這些能力。

第7章是兩個面試的案例。在這兩個案例中,我們將看到應聘者在面試過程中的哪些舉動是不好的行為,而哪些表現又是面試官所期待的行為。衷心地希望應聘者能在面試時少犯甚至不犯錯誤,完美地表現出自己的綜合素質,最終拿到心儀的Offer。

本書特色

正如前面提到的那樣,本書的原型是我過去4年多陸陸續續發表的幾十篇部落格,但這本書也不僅僅是這些部落格的總和,它在部落格的基礎上添加了如下內容。

本書試圖以面試官的視角來剖析面試題。本書前6章的第一節都是“面試官談面試”,收錄了分佈在不同IT企業(或者IT部門)的面試官們對程式碼質量、應聘者如何形成及表達解題思路等方面的理解。在本書中穿插著幾十條“面試小提示”,是我作為面試官給應聘者在面試方法、技巧方面的建議。在第7章的案例中,“面試官心理”揭示了面試官在聽到應聘者不同回答時的心理活動。應聘者如果能瞭解面試官的心理活動,無疑能在面試時更好地表現自己。

本書總結了解決面試難題的常用方法,而不僅僅只是解決一道道零散的題目。在仔細分析、解決了幾十道典型的面試題之後,我發現其實是有一些通用的方法可以在面試的時候幫助我們解題的。舉個例子,如果面試的時候遇到的題目很難,我們可以試圖把一個大的複雜的問題分解成若干個小的簡單的子問題,然後遞迴地去解決這些子問題。再比如,我們可以用陣列實現一個簡單的雜湊表解決一系列與字串相關的面試題。在詳細分析了一道面試題之後,很多章節都會在“相關題目”中列舉出同類型的面試題,並在“舉一反三”中總結解決這一型別題目的方法和要點。

本書收集的面試題是都是各大公司的程式設計面試題,極具實戰意義。包括谷歌、微軟在內的知名IT企業在招聘的時候,都非常重視應聘者的程式設計能力,程式設計技術面試也是整個面試流程中最為重要的一個環節。本書選取的題目都是被各大公司面試官反覆採用的程式設計題。如果讀者一開始覺得書中的有些題目比較難,那也正常,沒有必要感到氣餒,因為像谷歌、微軟這樣的大企業的面試本身就不簡單。讀者逐步掌握了書中總結的解題方法之後,程式設計能力和分析複雜問題的能力將會得到很大的提升,再去大公司面試將會輕鬆很多。

本書附帶提供了50道程式設計題的完整的原始碼,其中包含了每道題的測試用例。很多面試官在應聘者寫完程式之後,都會要求應聘者自己想一些測試用例來測試自己的程式碼,一些沒有實際專案開發經驗的應聘者不知道如何做單元測試。相信讀者朋友在讀完這本書之後就會知道如何從基本功能測試、邊界值測試、效能測試等方面去設計測試用例,從而提高編寫高質量程式碼的能力。

本書體例

在本書的正文中間或者章節的末尾,穿插了不少特殊體例。這些體例或用來給應聘者提出建議,或用來總結解題方法,希望能夠引起讀者的注意。

  面試小提示:

本條目是從面試官的角度對應聘者的建議或者希望應聘者能夠注意到的細節。

  原始碼:

讀者將在本條目中看到一個格式為XX_YYYYY或者XX_Y_ZZZZZ的專案名稱,該名稱與用Visual Studio開啟檔案InterviewQuestions.sln之後看到的專案名稱對應。本書附帶的原始碼請到電子工業出版社的官方網站下載。讀者下載原始碼並解壓縮之後,請用Visual Studio 2008或者更新的版本閱讀或者執行程式碼。

  測試用例:

本條目列舉應聘者在面試時可以用來測試程式碼是否完整、魯棒的單元測試用例。通常本書從基本功能、邊界值、無效的輸入等方面測試程式碼的完整性和魯棒性,針對在時間效率或者空間效率有要求的面試題還包含效能測試的測試用例。

  本題考點:

本條目總結面試官採用一道面試題的考查要點。

  相關題目:

本條目列舉一些和詳細分析的面試例題相關或者類似的面試題。

  舉一反三:

本條目從解決面試例題中提煉出常用的解題方法。這些解題方法能夠應用到解決其他同類型的問題中去,達到舉一反三的目的。

  面試官心理:

在第七章的面試案例中,本條目用來模擬面試官聽到應聘者的回答之後的心理活動。

關於遺漏的問題

由於時間倉促,再加上筆者的能力有限,書中難免會有一些遺漏。今後一旦發現遺漏的問題,我將第一時間在部落格(http://zhedahht.blog.163.com/)上公佈勘誤資訊。讀者如果發現任何問題或者有任何建議,也請在部落格上留言、評論,或者通過微博(http://weibo.com/zhedahht)和我聯絡。

致謝

在寫部落格及把部落格整理成書的過程中,我得到了很多人的幫助。沒有他們,也就沒有這本書。因此,我想在這裡對他們誠摯地說一聲:謝謝!

首先我要謝謝個人部落格上的讀者。網友們的鼓勵讓我在部落格上的寫作從2007年2月開始堅持到了現在。也正是由於網友們的鼓勵,我最終下定決心把部落格整理成一本書。

在本書的寫作過程中,我得到了很多同學、同事的幫忙,包括Autodesk的馬凌洲、劉景勇、王海波,支付寶殷焰,百度的張珺、張曉禹,Intel的尹彥,交通銀行的朱麟,淘寶的堯敏,微軟的陳黎明、田超,NVidia的吳斌,SAP的何幸傑和華為的韓偉東(在書稿寫作階段他還在盛大工作)。感謝他們和大家分享了對程式設計面試的理解和思考。同時還要感謝GlaxoSmithKline Investment的Recruitment & HRIS Manager蔡詠來(也是2008年把我招進微軟的HR)和大家分享了微軟所推崇的STAR簡歷模型。還要感謝在微軟期間我的兩個老闆徐鵬陽和Matt Gibbs,他們都是在微軟有十幾年面試經驗的資深面試官,對面試有著深刻的理解。感謝二位在百忙之中抽時間為本書寫序,為本書增色不少。

我同樣要感謝現在思科的老闆Min Lu及TQSG上海團隊的同事王劦、趙斌和朱波對我的理解。他們在我寫作期間替我分擔了大量的工作,讓我能夠集中更多的精力來寫書。

感謝電子工業出版社的工作人員,尤其是張春雨和趙樹剛的幫助。兩位編輯大到全書的構架,小到文字的推敲,都給予了我極大的幫助,從而使本書的質量有了極大的提升。

本書還得到了很多朋友的支援和幫助,限於篇幅,雖然不能在此一一說出他們的名字,但我一樣對他們心存感激。

最後,我要衷心地感謝我的愛人劉素雲。感謝她在過去一年中對我的理解和支援,為我營造了一個溫馨而又浪漫的家,讓我能夠心無旁騖地寫書。我無以為謝,謹以此書獻給她及我們尚未出生的小寶寶。

 

 

何海濤

2011年9月8日清晨於上海三涇南宅

2

           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述