本書倡導(dǎo)在計(jì)算機(jī)迅速發(fā)展、技術(shù)不斷革新的今天,回歸到計(jì)算機(jī)的基礎(chǔ)知識(shí)上。通過探究計(jì)算機(jī)的本質(zhì),工程師將提升對計(jì)算機(jī)的興趣,在面對復(fù)雜的新技術(shù)時(shí),能夠迅速掌握其要點(diǎn)并靈活運(yùn)用。本書以圖配文,以計(jì)算機(jī)的三大原則為開端,相繼介紹了計(jì)算機(jī)的結(jié)構(gòu)、手工匯編、程序流程、算法、數(shù)據(jù)結(jié)構(gòu)、面向?qū)ο缶幊、?shù)據(jù)庫、TCP/IP網(wǎng)絡(luò)、數(shù)據(jù)加密、XML、計(jì)算機(jī)系統(tǒng)開發(fā)以及SE的相關(guān)知識(shí)。第2版的部分程序改用Python來呈現(xiàn),數(shù)據(jù)庫改用MySQL,并對加密部分做了升級(jí)。
※ 在紙上體驗(yàn)計(jì)算機(jī)模型的制作過程,排除對硬件的恐懼
※ 體驗(yàn)匯編語言,加深對計(jì)算機(jī)的理解
※ 理解程序的流程、面向?qū)ο蟮木幊、?shù)據(jù)庫以及XML
※ 抓住7個(gè)要點(diǎn),與算法和數(shù)據(jù)結(jié)構(gòu)成為好朋友
※ 通過7個(gè)實(shí)驗(yàn),理解TCP/IP網(wǎng)絡(luò)協(xié)議
原來,計(jì)算機(jī)并不難!
★ 以圖配文,深入講解硬件&軟件基礎(chǔ)知識(shí)
★ 語言通俗,即使是文科生也能看得懂
★ 特設(shè)“來自企業(yè)培訓(xùn)現(xiàn)場”專欄,生動(dòng)有趣
[日]矢澤久雄,YAZAWA股份有限公司董事長兼總經(jīng)理。GrapeCity信息技術(shù)集團(tuán)顧問。曾在某大型電子公司從事過電腦生產(chǎn),在Software House做過程序員,現(xiàn)主要從事軟件開發(fā)工作。工作之余筆耕不輟,從電路到編程語言均有涉及。代表作有《程序是怎樣跑起來的》等。自稱軟件藝人。
【譯者介紹】
Web后端工程師,技術(shù)圖書譯者。譯有《圖解量子計(jì)算機(jī)》《自制搜索引擎》和《圖解云計(jì)算架構(gòu):基礎(chǔ)設(shè)施和API》。
第 1章 計(jì)算機(jī)的三大原則 1
1.1 計(jì)算機(jī)的三大原則 3
1.2 輸入、運(yùn)算和輸出是硬件的基礎(chǔ) 4
1.3 軟件是指令和數(shù)據(jù)的集合 6
1.4 對計(jì)算機(jī)來說一切都是數(shù)字 8
1.5 為了貼近人類,計(jì)算機(jī)在不斷進(jìn)化 9
1.6 預(yù)習(xí)一下第 2章 12
第 2章 制作一臺(tái)計(jì)算機(jī) 15
2.1 計(jì)算機(jī)的組成元件 17
2.2 CPU、內(nèi)存和I/O內(nèi)部的存儲(chǔ)單元 19
2.3 電路圖的讀法 22
2.4 連接電源電路 23
2.5 連接數(shù)據(jù)總線 24
2.6 連接地址總線 26
2.7 連接控制總線 29
2.8 連接剩余的電路 30
2.9 大功告成 32
第3章 體驗(yàn)匯編語言 35
3.1 高級(jí)語言和低級(jí)語言 37
3.2 用匯編語言編程時(shí)需要了解的硬件知識(shí) 39
3.3 Intel CPU的寄存器 40
3.4 匯編語言的語法只有一條 42
3.5 逐行分析“計(jì)算1+2”的代碼 44
3.6 安裝匯編語言編程工具SASM 46
3.7 使用SASM編寫并運(yùn)行“計(jì)算1+2”的程序 52
3.8 查看匯編語言對應(yīng)的機(jī)器語言 54
3.9 查看CPU和內(nèi)存之間的數(shù)據(jù)傳輸方式 56
3.10 指令順序執(zhí)行的機(jī)制 62
第4章 程序像河水一樣流動(dòng) 67
4.1 程序的流程分為3種 69
4.2 用流程圖表示程序的流程 73
4.3 表示循環(huán)程序塊的“帽子”和“短褲” 75
4.4 結(jié)構(gòu)化程序設(shè)計(jì) 80
4.5 邊畫流程圖邊設(shè)計(jì)算法 81
4.6 特殊的程序流程——事件驅(qū)動(dòng) 83
COLUMN 來自企業(yè)培訓(xùn)現(xiàn)場
拆解計(jì)算機(jī)的練習(xí) 87
第5章 與算法成為好朋友的7個(gè)要點(diǎn) 89
5.1 算法是編程語言中的“常用語” 91
5.2 要點(diǎn) 1:解決問題的步驟必須明確且有限 92
5.3 要點(diǎn) 2:計(jì)算機(jī)不靠直覺,只會(huì)機(jī)械地解決問題 93
5.4 要點(diǎn) 3:掌握經(jīng)典算法 95
5.5 要點(diǎn) 4:利用計(jì)算機(jī)的處理速度 96
5.6 要點(diǎn) 5:使用編程技巧提升程序執(zhí)行速度 98
5.7 要點(diǎn) 6:找出數(shù)字間的規(guī)律 102
5.8 要點(diǎn) 7:先在紙上設(shè)計(jì)算法 104
第6章 與數(shù)據(jù)結(jié)構(gòu)成為好朋友的7個(gè)要點(diǎn) 107
6.1 要點(diǎn) 1:了解內(nèi)存和變量的關(guān)系 109
6.2 要點(diǎn) 2:了解作為數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)的數(shù)組 112
6.3 要點(diǎn) 3:了解數(shù)組在經(jīng)典算法中的應(yīng)用 113
6.4 要點(diǎn) 4:了解經(jīng)典數(shù)據(jù)結(jié)構(gòu)的特點(diǎn) 115
6.5 要點(diǎn) 5:了解棧和隊(duì)列的實(shí)現(xiàn)方法 118
6.6 要點(diǎn) 6:了解結(jié)構(gòu)體的構(gòu)成 122
6.7 要點(diǎn) 7:了解鏈表和二叉樹的實(shí)現(xiàn)方法 123
第7章 做一個(gè)面向?qū)ο缶幊痰某绦騿T 129
7.1 面向?qū)ο缶幊?131
7.2 面向?qū)ο缶幊逃卸喾N理解方法 132
7.3 觀點(diǎn)1:面向?qū)ο缶幊掏ㄟ^將組件拼裝到一起構(gòu)建程序 133
7.4 觀點(diǎn)2:面向?qū)ο缶幊棠軌蛱嵘绦虻拈_發(fā)效率和可維護(hù)性 135
7.5 觀點(diǎn)3:面向?qū)ο缶幊踢m用于大型程序的開發(fā) 137
7.6 觀點(diǎn)4:面向?qū)ο缶幊叹褪窃谀M現(xiàn)實(shí)世界 137
7.7 觀點(diǎn)5:面向?qū)ο缶幊炭梢越柚鶸ML設(shè)計(jì)程序 138
7.8 觀點(diǎn)6:面向?qū)ο缶幊掏ㄟ^在對象間傳遞消息驅(qū)動(dòng)程序 140
7.9 觀點(diǎn)7:面向?qū)ο缶幊痰娜筇匦?143
7.10 類和對象的區(qū)別 144
7.11 類的3種使用方法 145
COLUMN 來自企業(yè)培訓(xùn)現(xiàn)場
新手程序員適合學(xué)習(xí)哪些編程語言? 149
第8章 一用就會(huì)的數(shù)據(jù)庫 151
8.1 數(shù)據(jù)庫是數(shù)據(jù)的基地 153
8.2 數(shù)據(jù)文件、DBMS和數(shù)據(jù)庫應(yīng)用程序 155
8.3 設(shè)計(jì)數(shù)據(jù)庫 158
8.4 數(shù)據(jù)庫規(guī)范化 160
8.5 用主鍵和外鍵將表連接在一起 162
8.6 索引能夠提升數(shù)據(jù)的檢索速度 165
8.7 在MySQL中創(chuàng)建酒鋪數(shù)據(jù)庫 166
8.8 向MySQL發(fā)送增刪改查的SQL語句 169
8.9 事務(wù)控制也可以交給DBMS處理 171
第9章 使用網(wǎng)絡(luò)命令來探索網(wǎng)絡(luò)的機(jī)制 175
9.1 什么是網(wǎng)絡(luò)命令 177
9.2 實(shí)驗(yàn) 1:查看MAC地址 179
9.3 實(shí)驗(yàn) 2:查看IP地址和子網(wǎng)掩碼 180
9.4 實(shí)驗(yàn) 3:了解DHCP服務(wù)器的作用 182
9.5 實(shí)驗(yàn) 4:PING默認(rèn)網(wǎng)關(guān) 184
9.6 實(shí)驗(yàn) 5:了解TTL的作用 185
9.7 實(shí)驗(yàn) 6:了解DNS服務(wù)器的作用 187
9.8 實(shí)驗(yàn) 7:查看IP地址和MAC地址的對應(yīng)關(guān)系 188
9.9 TCP的作用及TCP/IP網(wǎng)絡(luò)的層級(jí)模型 190
第 10章 加密與解密 193
10.1 什么是加密 195
10.2 通過平移字符編碼加密 197
10.3 密鑰越長,破解越困難 200
10.4 使用“公開密鑰加密”方式加密和解密 202
10.5 基于公開密鑰加密的數(shù)字簽名 205
第 11章 XML究竟是什么 209
11.1 XML是標(biāo)記語言 211
11.2 XML是可擴(kuò)展的標(biāo)記語言 213
11.3 XML是元語言 214
11.4 XML可以為數(shù)據(jù)賦予意義 217
11.5 XML是通用的數(shù)據(jù)格式 219
11.6 為XML標(biāo)簽設(shè)定命名空間 222
11.7 嚴(yán)格定義XML實(shí)例的結(jié)構(gòu) 223
11.8 用于解析XML的程序組件 225
11.9 XML適用于各種領(lǐng)域 226
第 12章 SE負(fù)責(zé)監(jiān)管計(jì)算機(jī)系統(tǒng)的開發(fā) 229
12.1 SE是自始至終參與系統(tǒng)開發(fā)過程的工程師 231
12.2 SE未必是程序員出身 233
12.3 系統(tǒng)開發(fā)過程的規(guī)范 233
12.4 各個(gè)階段的工作內(nèi)容及文檔 235
12.5 所謂設(shè)計(jì),就是拆解 237
12.6 技術(shù)能力和溝通能力 239
12.7 IT不等于引進(jìn)計(jì)算機(jī) 240
12.8 計(jì)算機(jī)系統(tǒng)的成功與失敗 241
12.9 大幅提升可用性的多機(jī)備份 243