程式設計師面試寶典(第4版)

書本簡介

編輯推薦

歷經前3版不斷完善,前後二十多次重印,數年各大圖書排行榜頂尖榮耀!

內容提要

本書是《程式設計師面試寶典》的第4版,在保留第3版的數據結構、面向對象、程式設計等主幹的基礎上,刪除了第3版的第21章,新增了第4版的第21、22、23、24章全新的試題分析內容,並且在第3版原有的20章中也使用各大IT公司及相關企業最新面試題替換和補充原內容,以反映自第3版以來兩年多的時間內所發生的變化。
本書取材於各大公司面試真題(筆試、口試、電話面試、英語面試,以及邏輯測試和智商測試),詳細分析了應聘程式設計師(含網路、測試等)職位的常見考點。本書不僅對傳統的C系語言考點做了詳盡解說,還根據外企出題最新特點,新增加了對友元、Static、圖形/音頻、樹、棧、ERP等問題的深入講解。最後本書著力講述了如何進行英語面試和電話面試,並對求職中簽約、毀約的注意事項及群體面試進行了解析。本書的面試題除了有詳細解析和答案外,對相關知識點還有擴展說明。真正做到了由點成線,舉一反三,對讀者從求職就業到提升計算機專業知識都有顯著幫助。
本書適合計算機相關專業應屆畢業生閱讀,也適合作為正在應聘軟體行業的相關就業人員和計算機愛好者的參考書。

書本目錄

第1部分求職過程

求職的過程就是一個提高和認識自我的過程,最後的成功根植於你本人一絲一毫的努力當中。也許真的像電影《肖申克的救贖》裡面說的那樣:“得救之道,就在其中。”
第1章應聘求職 2
1.1渠道 2
1.2流程 3
第2章簡曆書寫 4
2.1簡歷注意事項 4
2.2簡歷模板 8
第3章求職五步曲 11
3.1筆試 11
3.2電話面試 14
3.3面試 15
3.4簽約 16
3.5違約 20
第4章職業生涯發展規劃 22
4.1缺乏工作經驗的應屆畢業生 22
4.2更換工作的程式設計師們 24
4.3快樂地工作 25

第2部分C/C++程式設計

為什麼要選擇C系的語言呢?這是因為各大公司的程式語言絕大多數是C系的語言,雖然Java也占很大的比重,可是C++相對於Java來說更有區分度—C++是那種為每一個問題提供若干個答案的語言,遠比Java靈活。
第5章程式設計基本概念 29
作為一個求職者或應屆畢業生,公司除了對你的項目經驗有所問詢之外,最好的考量辦法就是你的基本功,包括你的編程風格,你對賦值語句、遞增語句、類型轉換、數據交換等程式設計基本概念的理解。
5.1賦值語句 29
5.2i++31
5.3編程風格 33
5.4類型轉換 34
5.5運算符問題 38
5.6a、b交換與比較40
5.7C和C++的關係 41
5.8程式設計的其他問題 42
第6章預處理、const與sizeof 44
6.1宏定義 44
6.2const 45
6.3sizeof 50
6.4內聯函式和宏定義 61
第7章指針與引用 63
指針是C系語言的特色,是C和C++的精華所在,也是C和C++中一個十分重要的概念。
7.1指針基本問題 63
7.2傳遞動態記憶體 65
7.3函式指針 74
7.4指針數組和數組指針 76
7.5迷途指針 79
7.6指針和句柄 81
7.7this指針 83
第8章循環、遞歸與機率 86
8.1遞歸基礎知識 86
8.2典型遞歸問題 89
8.3循環與數組問題 91
8.4螺旋佇列問題 95
8.5機率 98
第9章STL模板與容器 100
9.1向量容器 101
9.2泛型編程 105
9.3模板 106
第10章面向對象 110
有這樣一句話:“編程是在計算機中反映世界”,我覺得再貼切不過。面向對象(Object-
Oriented)對這種說法的體現也是最優秀的。
10.1面向對象的基本概念110
10.2類和結構 113
10.3成員變數 114
10.4構造函式和析構函式117
10.5拷貝構造函式和賦值函式119
10.6多態的概念124
10.7友元 127
10.8異常 129
第11章繼承與接口 133
整個C++程式設計全面圍繞面向對象的方式進行。類的繼承特性是C++的一個非常重要的機制。這一章的內容是C++面向對象程式設計的關鍵。
11.1覆蓋 134
11.2私有繼承 136
11.3虛函式繼承和虛繼承141
11.4多重繼承 145
11.5檢測並修改不適合的繼承148
11.6純虛函式 150
11.7運算符重載與RTTI 152
第12章位運算與嵌入式編程 160
12.1位制轉換 160
12.2嵌入式編程169
12.3static 176

第3部分數據結構和設計模式

隨著外企研發機構大量內遷我國,在外企的面試中,軟體工程的知識,包括設計模式、UML、敏捷軟體開發,以及.NET技術和完全面向對象語言C#的面試題目將會有增無減。
第13章數據結構基礎 179
面試時間一般有2小時,其中至少有約20~30分鐘是用來回答數據結構相關問題的。鍊表、數組的排序和逆置是必考的內容之一。
13.1單鍊表179
13.2雙鍊表184
13.3循環鍊表 185
13.4佇列 186
13.5棧188
13.6堆191
13.7樹、圖、哈希表201
13.8排序 209
13.9時間複雜度222
第14章字元串 229
14.1整數字元串轉化229
14.2字元數組和strcpy 230
14.3數組初始化和數組越界 234
14.4數字流和數組聲明 236
14.5字元串其他問題237
14.6字元子串問題 242
第15章設計模式與軟體測試 244
“地上本沒有路,走的人多了也就成了路”。設計模式如同此理,它是經驗的傳承,並非體系。它是被前人發現,經過總結形成的一套某一類問題的一般性解決方案,而不是被設計出來的定性規則。
15.1設計模式 245
15.2軟體測試基礎 251
15.3黑盒測試 253
15.4白盒測試 258

第4部分作業系統、資料庫和網路

本部分主要介紹求職面試過程中出現的第三個重要的板塊—作業系統、資料庫和網路知識。這些內容雖不是面試題目中的主流,但仍然具有重要的意義。
第16章作業系統 265
16.1進程 265
16.2執行緒 270
16.3記憶體管理 276
第17章資料庫與SQL語言 279
17.1資料庫理論279
17.2SQL語言 283
17.3SQL語言客觀題285
17.4SQL語言主觀題288
第18章計算機網路及分散式系統 294
18.1網路結構 294
18.2網路協定問題 296
18.3網路安全問題 298
18.4網路其他問題 300
第5部分綜合面試題
英語面試、電話面試和智力測試,是除技術面試之外另外的大模組。本部分教你如何精心地為這些內容做好準備,以讓你在整個面試過程中的表現更加完美。
第19章英語面試 305
這裡的英語面試不同於普通的英語面試。就一個程式設計師而言,最好能夠做到用英文流利地介紹自己的求職經歷,這是進外企非常重要的一步。有些問題即便是中文你都很難回答,更何況是用英文去回答。但是求職過程本身就是一個準備的過程,精心地準備等待機會,機會總是垂青那些精心準備的人。
19.1面試過程和技巧305
19.2關於工作(About Job) 307
19.3關於個人(About Person) 310
19.4關於未來(About Future) 312
第20章電話面試 314
20.1電話面試之前的準備工作314
20.2電話面試交流常見的問題315
第21章數字類題目分析 324
21.1數字規律類題目324
21.2數字填充類題目327
21.3數字運算類題目328
21.4套用數學類題目329
第22章圖表類題目分析 336
22.1圖形變換類題目336
22.2表格分析類題目342
第23章智力類題目分析 344
23.1推理類題目344
23.2博弈論346
23.3機率 348
第24章無領導小組討論題目分析 351
24.1題目介紹 351
24.2無領導小組討論特點351
24.3無領導小組階段分析353
24.4無領導小組角色分析357
24.5無領導小組評分標準分析361
24.6群面實錄 362
附錄A面試經歷總結366

書本試讀

第1章:
古人云:凡事預則立,不預則廢。機會都是垂青有準備的人的。為了得到一份滿意的工作,大家一定要對整個求職過程有清醒的了解。把能夠預見的、必須做的事情早一些做完,這樣在大規模招聘開始的時候就可以專心地為面試做準備。求職過程中會發生很多預料不到的事情,當你的計畫被這些事情打亂之後,要做的事會越堆越多,一步落後,步步落後。如果能夠儘早把能做的事做完,即便有計畫外事件發生,也不會產生太嚴重的影響。努力地使事態的發展處在自己能控制的範圍之內,這樣無論發生任何事都能有應對之策......
第5章:
通過查看各大公司C/C++面試題目,從技術上分析問題的內涵。為什麼要選擇C系的語言呢?這是因為各大公司的程式語言絕大多數是C系語言,雖然Java也占很大的比重,可是C++相對於Java來說更有區分度——C++是那種為每一個問題提供若干個答案的語言,遠比Java靈活,所以面試考題絕大多數以C/C++為主。許多面試題看似簡單,卻需要深厚的基本功才能給出完美的解答。企業要求面試者寫一個最簡單的strcpy函式就可看出面試者在技術上究竟達到了怎樣的水平。我們能真正寫好一個strcpy函式嗎?我們都覺得自己能,可是我們寫出的strcpy很可能只能拿到10分中的2分。讀者可從本部分中關於C++的幾個常用考點,看看自己屬於什麼樣的層次......
第24章
雖然有一句話叫“沉默是金”,但是這句話要有一個前提,那就是“該沉默的時候,沉默才是金”。小組討論的時候,一定要積極發言。甚少出聲的,基本都會被否決。有的同學不愛說話無外乎兩種原因:
①肚裡沒貨,說不出來;
②性格比較內向,雖然有一些Idea(想法),但不願搶話。
對於第一種情況的同學會感覺在群面中始終不能跟上別人的節奏。總是慢一拍,於是整個過程都輸了。這種提升不是一朝一夕的,平時要多做閱讀,提高自己看問題的深度,尤其像《南方周末》這樣的報紙,做到“內強素質,外樹形象”。
對於第二種情況的同學,一些比較內向的人可能會在群面時就比較吃虧。如果你真的想獲得這份工作,那你就該努力地適應環境改變慣性。雖然性格很難改變,但是性格也絕不是理由,結合自己的特點發揮出自己的優勢,讓自己的長處更加顯著吧。例如,可以提高自己思想的深度,讓自己在表達觀點時出彩。總之,你一定要有一個突出點,讓HR留意到......

作者簡介

歐立奇國際商業機器有限公司大中華區高級軟體工程師,對程式設計師筆試、面試、智力測試有著多年深入廣泛地研究。除本書外,還著有《JAVA程式設計師面試寶典》,《IT求職寶典》等。

媒體評論

目前市場上針對性最強的一本好書,對畢業生找工作確實有指導意義!

書本前言

本書是程式設計師面試寶典的第4版。
第4版主要是更新,在保留原書數據結構,程式設計等主幹的基礎上,大量地更新了程式面試題目,取材於2012年至2013年各大公司面試題,替換了原版的大量面試題,以反映自第 3版以來兩年多的時間內所發生的變化。並且修正了兩年多以來讀者反饋的書中的一些錯誤和描述不當的地方,以幫助求職者們更好地處理一些新問題,新變化。
本書相對於上一版的新變化主要有:
1.把第3版第21章智力測試進行分解,擴展增加了如下章節:第21章數字類題目分析、第22章圖表類題目分析、第23章智力類題目分析、第24章無領導小組討論題目分析,並修正合併了一些內容,以更好地幫助求職者應對求職過程中出現的一些細節和麻煩;
2.針對程式設計這一塊,我們更新了絕大部分的例題。隨著網際網路相關面試題的頻繁出現,我們新增並更新了如下知識點:Trie樹,圖的遍歷,動態規划算法。但本書對一個類型的問題不是簡單地加以重複,而是採用循序漸進的辦法:一是將重要概念加以複習;二是完善解題思路,而不是僅僅給出答案;
3.針對兩年多來面試過程中出現的新題型,本書補充了新的章節,如作業系統的記憶體管理問題,黑盒白盒測試問題,數據結構中的樹、圖、哈希表問題,智力測試中的博弈測試、遊戲測試等。就第3版而言,本書更加貼近市場的變化,更加與時俱進。
《程式設計師面試寶典》不同於同類書籍的主要特點如下。

中國軟體企業比較小,面試涉及的方面比較多、比較基礎,比如常會考到一些編程基礎性的面試例題,而原有的面試書籍對此方面鮮有觸及。本書把面試國內公司最易考到的基礎考點,放在第2部分C/C++程式設計裡面,希望能切切實實地解決實際面試問題。

面試題是通過一道題考查一個專類的能力,比如關鍵字volatile的面試例題是考查嵌入式編程。從面試官的角度來講,一個測試也許能從多方面揭示應試者的素質及水平。正因為如此,本書將考點細緻分類(嵌入式編程類、基礎代碼類、面向對象類、模板類等),通過面試例題提升讀者對這些方面的掌握能力,達到有的放矢、舉一反三的效果。

求職者應聘的職位,一般有3種:網路工程師、測試工程師、軟體開發人員。諸如趨勢科技、華為3COM、思科等公司,對程式、網路方面的考題日趨增加;此外,隨著全球五百強企業的進入,外企對設計模式、軟體度量等方面試題的喜愛有增無減,而市面上的書籍卻鮮有綜述。本書結合大量考題分析其特點並詳述應試方案,以適應市場需求。

第4版在保留原書主幹的基礎上,內容非常新,可以當做面試者求職前的一份全真模擬。同時作者將求職中的細節問題(簡歷、招聘、簽約、違約),以及筆試、面試中的感悟融會在書中,給求職者以最真切的人文關懷。真情實感,娓娓道來,指引讀者走上理想的工作崗位。本書不是一本萬能書籍,但卻肯定是您工作與求職的好助手、好夥伴!
本書主要由歐立奇編著,其他參與編寫的人員有劉洋、段韜、秦曉東、李啟高、馬雪、馬煜、胥虎軍、李富星、牛永潔等。
編著者

熱門詞條

聯絡我們