《計算機是怎樣跑起來的》讀書筆記

第一章 計算機的三大原則

  1. 計算機是執(zhí)行輸入鹅髓、運算舞竿、輸出的機器。
  2. 程序是指令和數據的集合窿冯。
  3. 計算機的處理方式有時與人類的思維習慣不同
  • 輸入骗奖、運算、輸出是計算機硬件的基礎,輸入执桌、輸出的都是數據鄙皇,運算是對數據的計算、加工處理仰挣。
  • 對計算機來說什么都是數字伴逸,然后通過編碼技術才能轉換成人類能直接識別的信息。
  • 任何新技術的產生都離不開計算機的三大原則膘壶,為提升效率而貼合人類習慣错蝴。

第二章 試著制作一臺計算機吧

第二章內容看的是云里來霧里去,各種IC元件組裝成一臺微型計算機颓芭,主要的三大件是CPU顷锰、內存I/O亡问,其他元件都是輔助作用官紫。計算機中最小的信息單位是比特,二進制數中一位就是1比特玛界,信息中基本單位是字節(jié)万矾,1字節(jié)=8比特,K=2^10=1024慎框,2K字節(jié)=8×1024×2

第三章 體驗一次手工匯編

匯編:一種使用助記符的編程語言良狈,很簡單,但不適合編寫大型程序笨枯,因為計算機三大件的每步操作都要處理非常細致薪丁。
助記符:每種CPU都可能有不同的操作指令,而且CPU所能識別的任何指令合數據都是二進制格式馅精,很不便于人們記憶和識別严嗜,所以就用固定的英文單詞符號表示每個指令(為什么是英文?因為是說英語的人發(fā)明的)洲敢。手工匯編就需要對照CPU說明書漫玄,每個指令所對應的二進制格式,然后在計算機中運行压彭。

第四章 程序像流水一樣流動著

  • 程序執(zhí)行流程:順序睦优、循環(huán)、分支
  • VBScript小游戲:石頭剪刀布.vbs
Dim gesture(2)
gesture(0) = "石頭"
gesture(1) = "剪刀"
gesture(2) = "布"
wins = 0
Randomize
MsgBox "石頭剪刀布游戲 Ver.1.00 by Eugene"
For i = 1 To 5
    user = CInt(InputBox("0:石頭壮不。1:剪刀汗盘。2:布"))
    computer = CInt(Rnd * 2)
    s ="玩家:" & gesture(user) & "、計算機:" & gesture(computer)
    If user = computer Then
        MsgBox s & "...平局询一!"
    ElseIf computer = (user+1) Mod 3 Then
        MsgBox s & "……玩家獲勝隐孽!"
        wins = wins + 1
    Else
        MsgBox s & "……計算機獲勝!"
    End If
Next
MsgBox "玩家獲勝次數: " & wins
  • 流程圖(Flowchart)


    石頭剪刀布.png
  • 結構化程序設計:良好的程序設計都是通過程序的基本三大操作流程完成癌椿,但是CPU中存在跳轉操作指令goto,會導致程序變得混亂菱阵,所以在很早就有學者戴克斯特拉結構化程序設計**思想踢俄。但其本意并不是摒棄CPU的goto指令,而是在一些高級語言中不推薦有類似的功能語法送粱,比如Java中的goto語句褪贵,只是保留了這個關鍵字,但是并沒有用到抗俄。
  • 特殊的程序流程:
    • 中斷處理:Interrupt脆丁,計算機硬件具有的一種處理中斷的能力。
    • 事件驅動:這是一種適用于GUI編程的一種設計風格动雹,通過事件的產生觸發(fā)程序的執(zhí)行槽卫。

第五章、第六章 算法與數據結構

  • 從計算機的機械式的工作方式介紹了算法胰蝠、數據結構的作用歼培,介紹了典型的算法,最基本的數據結構:數組和鏈表茸塞,還介紹的哨兵技巧躲庄,是在線性查找中所使用的一種技巧。
  • 算法:計算機的工作方式不能跟人比钾虐,只能依靠數據機械式的盡量邏輯推理噪窘,所以算法并不是單純的數學公式,一段簡單的代碼程序也可以稱為算法效扫,但是有了數學公式的基礎可以實現更為高效的代碼程序倔监。
  • 數據結構:計算機的存儲是靠連續(xù)的物理介質存儲的,比如最基礎的數組鏈表類型數據結構菌仁,為什么它們在不同的數據操作性能完全不同浩习,最主要的原因就是數組存儲在連續(xù)的物理內存中,而鏈表不需要济丘,只需要隨機存儲谱秽,依靠指針相連,數組雖然查找數據很快摹迷,但是如果想插入數據弯院,則需要挪動插入位置后面的所有數據,甚至可能需要重新分配連續(xù)的內存空間泪掀,這個開銷還是很大的,而鏈表性能表現則是想反的颂碘,當然也是跟它的數據存儲根本方式有直接的原因异赫。

第七章 面向對象編程

  • 這本書已經很老了椅挣,以至于在讀這個章節(jié)的時候回覺得面向對象編程才剛剛開始……
  • 面向對象:三大特性:繼承、封裝塔拳、多態(tài)鼠证。書中也截取了很多學者的領悟,來闡述什么是面向對象靠抑。面向對象只是一種編程思想量九,主要是為了解決大工程項目那已維護和擴展的問題,就好像與其對立的面向過程編程思想颂碧,在項目達到一定規(guī)模就會變得難以維護荠列,而面向對象則會充分體現出它的特性的優(yōu)勢,不論是是分工協作還是代碼組織上都會變得簡單可行载城,正是有了這種編程思想才有了眾多出色的面向對象編程語言肌似,最具代表性的就是Java語言,經久不衰這么多年诉瓦,似乎也快被Kotlin所替代川队,個人也體驗了一段時間,確實比Java靈活睬澡、便捷固额、安全,我覺得他的精髓就在于類型推導煞聪,才能寫出各種靈活便捷的lamda高階函數斗躏,以及各種便捷的語法特性。

第八章 數據庫

想當初在學校的時候SQL語句還是很6的米绕,如今都還給老師了……

  • DBMS:Data Base Management System瑟捣,數據庫管理系統(tǒng),用于協助應用程序對數據庫進行操作栅干,保證數據一致且安全的存儲迈套。
  • 數據庫設計:拆表實現規(guī)范化、設置主鍵和外鍵碱鳞、確保沒有多對多的關系(連接表實現一對多)桑李、根據需要設置參照完整性(數據安全機制)和索引(提升排序和檢索效率)。
  • CRUD:CREAT窿给、REFER(SELETE)贵白、UPDATE、DELETE
  • 事務控制:由多條SQL語句構成數據庫操作崩泡,為防止意外發(fā)生禁荒,可以保證數據一致性,事務操作主要有:BEGIN TRANSACTION(開啟事務)角撞、COMMIT(提交事務)呛伴、ROLL BACK(事務回滾)

第九章 TCP/IP

  • 通過幾個小實驗勃痴,了解計算機網絡大概全貌,計算機網絡大致分為局域網热康、城際網沛申、廣域網等等,不論哪種計算機網絡姐军,最終都是通過線纜將計算機設備連接到一起铁材,而且從物理形態(tài)或虛擬形態(tài)看都是切切實實的網狀,每個交叉節(jié)點或是一臺計算機奕锌、或是集線器著觉、或是路由器初家。
  • 網絡有了辛孵,計算機互相之間想要通信就需要有規(guī)則,而TCP/IP就是這個規(guī)則之一洛心,規(guī)則就好像漢語缴守、英語等語法葬毫,說不同語言的人就好比是計算機,如果想互相溝通無障礙屡穗,就得按規(guī)則進行表達發(fā)音贴捡,這里的發(fā)音就好比是網卡將數字信息轉化出的電信號,然后通過集線器村砂、路由器傳達給其他計算機烂斋。
  • 其實網絡通信協議非常復雜,而書只是蜻蜓點水的對協議進行描述础废,如果想了解網絡數據是如何從計算機1->運營商網絡->計算機2汛骂,可以先看一下《網絡是怎樣連接的》,如果只想了解通信協議评腺,可以看其他TCP/IP系列叢書帘瞭。
  • TCP/IP實際上是兩個協議,IP是計算機的地址協議蒿讥,是一個虛擬地址蝶念,最終信號傳輸還需要通過物理(MAC)地址進行確認,舉個例子:快遞員第一次去你家送快遞芋绸,但是找不到門媒殉,就會打電話聯系你確認具體地址怎么找,然后問清楚之后就會把快遞送給你摔敛。這里的電話就好比IP地址廷蓉,而具體地址就好比MAC地址。

第十章 加密數據

  • 對稱加密:在加密和解密過程中共用同一個秘鑰串马昙,秘鑰的安全性決定了數據的安全性苦酱。
  • 非對稱加密:加密過程中使用公鑰售貌,解密過程用私鑰,公鑰需要被公開使用疫萤,私鑰只能是授權人才能獲取,安全性相比對稱加密要安全敢伸。
  • 數字簽名:數字簽名可以驗證發(fā)送方身份扯饶,以及數據的完整性,防止收到未授權用戶或者被串改的數據池颈。

第十一章 XML

  • Extensible Markup Language尾序,可擴展的標記語言。HTML就是其中一種躯砰,可以用html編寫網頁每币,XML是標記語言的元語言,可以定義各種新語言琢歇。W3C組織為其制定了一系列標準兰怠,還退出了XHTML網頁標記語言。XML也可以用于通用數據格式在互聯網中傳輸李茫,早期還有CSV(Comma Separated Value揭保,逗號分隔值),但是CSV不便于解讀魄宏,不如XML每個字段值都定義標簽秸侣,為其賦予意義,但是如今有更火的JSON數據格式宠互,json結合了XML和CSV的優(yōu)點味榛,便于解讀,數據體量小予跌。
  • 適用領域
名稱 用途
XSL 為XML中的信息提供顯示格式
MathML 描述數學算式
SML 把多媒體數據嵌入到網頁中
MML 描述電子病歷
SVG 用向量表示圖形數據
JepaX 表示電子書
WML 表示移動終端上的數據
CHTML 表示手機上的內容
XHTML 用XML定義HTML4.0
SOAP 實現分布式計算

第十二章 SE負責監(jiān)管計算機系統(tǒng)的構建

  • SE:system engineer搏色,系統(tǒng)工程師∝暗茫《日經計算機術語辭典2002》解釋:SE指的是在進行業(yè)務信息化時继榆,負責調查、分析業(yè)務內容汁掠,確定計算機基礎設計及其詳細規(guī)格的技術人員略吨。同時SE也負責系統(tǒng)開發(fā)的項目管理和軟件的開發(fā)管理、維護管理工作考阱。由于主要的工作是基礎設計翠忠,所以不同于編寫程序的程序員,SE需要具備從硬件結構乞榨、軟件的構建方法乃至橫跨整個業(yè)務的廣泛知識以及項目管理的經驗秽之。也就是說SE未必寫過程序当娱,但要對計算機相關知識有一定了解,比如前十一個章節(jié)的內容考榨,然而更多的是對項目需求的分析跨细、設計和管理。
  • IT:information technology河质,信息技術冀惭。很多時候提到IT這個詞更多想到的是計算機(電腦),畢竟計算機的普及掀鹅,代替和提高了很多行業(yè)中手動處理信息的方式散休,但事實上計算機并不能代表IT,任何一個能有效處理信息的工具和方法都可以稱為IT乐尊,只不過當今最廣泛所使用的就是計算機戚丸。如果哪天量子技術或生物技術有了突破,計算機可能還叫計算機扔嵌,但形態(tài)和組成未必是現在的樣子限府。(想想都覺得科幻??)
  • 軟件開發(fā)過程模型:瀑布模型、螺旋模型对人、原型模型等等谣殊。書中主要以瀑布模型為例進行講解,回想實際工作中的規(guī)范流程牺弄,似乎大部分都是從瀑布模型演變而來姻几,盡管并沒有完全按照規(guī)范執(zhí)行,但規(guī)范畢竟是規(guī)范势告。瀑布模型流程:開始->需求分析->外部設計->內部設計->程序設計->編碼實現->測試->部署蛇捌、維護->目標。需要說明的可能主要是外部和內部設計咱台,外部設計主要是面向用戶的設計络拌,比如UI(用戶界面)、功能流程等等回溺,內部設計主要面向程序員春贸,比如架構模型、技術選型等遗遵。
  • 設計:所謂設計萍恕,就是拆解。任何事物流程都可以拆解成細小的子任務车要,然后再將每個子任務組合起來允粤,并且能有效地運作起來,這便能成為系統(tǒng)。但是否是一個成功的系統(tǒng)并不是系統(tǒng)實現有多完美类垫,而是系統(tǒng)能否解決用戶問題司光,這就取決于最開始的需求分析,老話說得好悉患,萬事開頭難残家。設計方法也有很多種:
設計方法 拆解時關注的事物
通用功能分割法 在整個系統(tǒng)中通用的功能
STS法 數據流(輸入、變換购撼、輸出)
TR法 事務(數據的處理單位)
Jackson法 輸入數據和輸出數據
Warnier法 輸入數據
面向對象法 構成計算機系統(tǒng)的事物(對象)

一個結論:將計算機系統(tǒng)的構成要素設計成多機備份跪削,可以大幅提升設備利用率。
例如:90%利用率設備a ?? 80%設備利用率b = 72%整體設備利用率
(90%利用率設備a??2) ?? (80%設備利用率b??2) = 95%整體設備利用率

?著作權歸作者所有,轉載或內容合作請聯系作者
禁止轉載迂求,如需轉載請通過簡信或評論聯系作者。
  • 序言:七十年代末晃跺,一起剝皮案震驚了整個濱河市揩局,隨后出現的幾起案子,更是在濱河造成了極大的恐慌掀虎,老刑警劉巖凌盯,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異烹玉,居然都是意外死亡驰怎,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門二打,熙熙樓的掌柜王于貴愁眉苦臉地迎上來县忌,“玉大人,你說我怎么就攤上這事继效≈⑿樱” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵瑞信,是天一觀的道長厉颤。 經常有香客問我,道長凡简,這世上最難降的妖魔是什么逼友? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮秤涩,結果婚禮上帜乞,老公的妹妹穿的比我還像新娘。我一直安慰自己溉仑,他們只是感情好挖函,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般怨喘。 火紅的嫁衣襯著肌膚如雪津畸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天必怜,我揣著相機與錄音肉拓,去河邊找鬼。 笑死梳庆,一個胖子當著我的面吹牛暖途,可吹牛的內容都是我干的。 我是一名探鬼主播膏执,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼驻售,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了更米?” 一聲冷哼從身側響起欺栗,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎征峦,沒想到半個月后迟几,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡栏笆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年类腮,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蛉加。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡蚜枢,死狀恐怖,靈堂內的尸體忽然破棺而出七婴,到底是詐尸還是另有隱情祟偷,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布打厘,位于F島的核電站修肠,受9級特大地震影響,放射性物質發(fā)生泄漏户盯。R本人自食惡果不足惜嵌施,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望莽鸭。 院中可真熱鬧吗伤,春花似錦、人聲如沸硫眨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至巧号,卻和暖如春族奢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背丹鸿。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工越走, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人靠欢。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓廊敌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親门怪。 傳聞我的和親對象是個殘疾皇子骡澈,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359