作者矢澤久雄膛虫,YAZAWA股份有限公司董事長兼總經(jīng)理。本書是“計算機科學概論”圖解趣味版撩独,蹲著馬桶就能看懂的硬件與軟件基礎知識综膀。本書適合:菜鳥程序員入門進階局齿、中級程序員查漏補缺项炼、高手程序員向家人普及計算機知識示绊。讀完本書,可以了解有關計算機的“基礎中的基礎知識”拌禾、“知識范圍”以及“目標”展哭。
一湃窍、基礎中的基礎知識
1、計算機的三大原則
現(xiàn)在的計算機看起來好像是種高度復雜的機器匪傍,可是基本的構造卻簡單得令人驚訝您市。大約50年前的第一代計算機到現(xiàn)在,計算機并沒有發(fā)生什么改變役衡。在認識計算機時茵休,需要把握的最基礎的要點只有三個,我們稱之為“計算機的三大原則”手蝎。無論多么高深榕莺、多么難懂的最新技術,都可以對照著這三大原則來解釋棵介。
1)計算機時執(zhí)行輸入、運算邮辽、輸出的機器
2)程序是指令和數(shù)據(jù)的集合
3)計算機的處理方式有時與人們的思維習慣不同
硬件和軟件
2唠雕、試著制造一臺計算機吧
要徹底掌握計算機的工作原理贸营,最好的方法就是自己搜集零件,自己組裝一臺微型計算機及塘,微型計算機(MicroCom)是Micro Computer的縮寫莽使,字面含義是微小的計算機,但一般也可用于指代IC(Intergrated Circuit笙僚,集成電路)元件外露的芳肌、用于控制的計算機。
3肋层、體驗一次手工匯編
通過編寫程序使諸位親身體驗計算機的運行機制亿笤,為了達到這個目的,就需要使用一種叫做“匯編語言”的編程語言來編寫程序栋猖,然后再把編好的程序通過手工作業(yè)轉換成CPU可以直接執(zhí)行的機器語言净薛。這樣的轉換工作叫做“手工匯編”(HandAssemble)。體驗過后蒲拉,應該能加深諸位對計算機的理解肃拜,不僅能因“我能看懂程序了”,而獲得成就感雌团,更能因發(fā)現(xiàn)“計算機原來很簡單啊”而信心倍增燃领。
二、知識范圍
編程
4锦援、程序河水一樣流動著
本章的主題是程序的流程猛蔽,程序員一般都是先考慮程序的流程再開始編寫程序的。只有編寫過程序的人才能體會到“程序是流動著的”灵寺,一個人編寫的程序如果不能按照預期運行曼库,就說明他還沒有很好地掌握“程序是流動著的”這一概念。作為計算機大腦的CPU在同一時刻基本上只能夠解釋略板、執(zhí)行一條指令毁枯,把指令和作為指令操作對象的數(shù)據(jù)排列起來就形成了程序。
5叮称、與算法成為好朋友的七個要點
程序是用來在計算機上實現(xiàn)世界中的業(yè)務和娛樂活動的后众,為了達到這個目的,程序員們需要結合計算機的特性颅拦,用程序來表示現(xiàn)實世界中對問題的處理步驟蒂誉,即處理流程。在絕大多數(shù)情況下距帅,為了達到某個目標的需要進行若干步處理右锨,而這些處理步驟就被稱為算法。要點1:算法中解決問題的步驟是明確且有限的碌秸;要點2:計算機不靠直覺而是機械地解決問題绍移;問題3:了解并應用典型算法悄窃;要點4:利用計算機的處理速度;要點5:使用編程技巧提升程序執(zhí)行速度蹂窖;要點6:找出數(shù)字間的規(guī)律轧抗;要點7:先在紙上考慮算法。
6瞬测、與數(shù)據(jù)結構成為好朋友的七個要點
程序員有必要把算法(處理問題的步驟)和數(shù)據(jù)結構(處理對象的數(shù)據(jù)的排列方式)兩者放在一起考慮横媚,選用的算法和數(shù)據(jù)結構兩者要相互匹配這一點很重要。要點1:了解內存和變量的關系月趟;要點2:了解作為數(shù)據(jù)結構基礎的數(shù)組灯蝴;要點3:了解數(shù)組的應用--作為典型算法的數(shù)據(jù)結構;要點4:了解并掌握典型數(shù)據(jù)結構的類型和概念孝宗;要點5:了解棧和隊列的實現(xiàn)方法穷躁;要點6:了解結構體的組成;要點7:了解鏈表和二叉樹的實現(xiàn)方法因妇。
7问潭、成為面向對象編程的程序員吧
面向對象編程(OOP,Object Oriented Programming)是一種編寫程序的方法婚被,旨在提升開發(fā)大型程序的效率睦授,使程序易于維護。觀點1:OOP通過把組件拼裝到一起構建程序摔寨;觀點2:OOP能夠提升程序開發(fā)效率和可維護性;觀點3:OOP是適用于大型程序的開發(fā)方法怖辆;觀點4:OOP就是在為現(xiàn)實世界建模是复;觀點5:OOP可以借助UML設計程序;觀點6:OOP通過在對象間傳遞消息驅動程序竖螃;觀點7:在OOP中使用繼承淑廊、封裝和多態(tài)。
數(shù)據(jù)庫
8特咆、一用就會的數(shù)據(jù)庫
所謂數(shù)據(jù)庫(Database)就是數(shù)據(jù)(Data)的基地(Base)季惩。計算機是一種工具,它可以執(zhí)行輸入腻格、計算画拾、輸出三種操作,并可以通過這一系列的操作處理某種數(shù)據(jù)菜职。因此可以說計算機就是處理數(shù)據(jù)的裝置青抛。因為,可以說計算機基本上就是被當作數(shù)據(jù)庫來利用的酬核,只要不是游戲程序蜜另,幾乎所有的應用程序中适室,人們都在巧妙地運用著數(shù)據(jù)庫。為了了解計算機举瑰,數(shù)據(jù)庫是門必修課捣辆。
網(wǎng)絡
9、通過七個簡單的實驗理解TCP/IP網(wǎng)絡
通常此迅,人們把通過連接多臺計算機所組成的汽畴、可用于交換信息的系統(tǒng)稱為“網(wǎng)絡”(Network)∮势ǎ互聯(lián)網(wǎng)作為網(wǎng)絡的一種整袁,可以使我們計算機和遠在千里之外的計算機連接在一起,而用于把全世界的計算機彼此相連的網(wǎng)線已然交織成了一張網(wǎng)佑吝。因為信息可以以電信號的形成在網(wǎng)線中傳播坐昙,所以計算機彼此之間就能進行信息交換。但為了交換信息芋忿,還必須在發(fā)送者和接收者之間事先確定發(fā)送方式炸客,這種對信息發(fā)送方式的規(guī)定或約束就稱為“協(xié)議”(Protocol)。小到公司內部網(wǎng)絡戈钢,大到互聯(lián)網(wǎng)痹仙,TCP/IP(Transmission Control Protocol/Internet Protocol)協(xié)議已然成為了現(xiàn)行的標準。
10殉了、試著加密數(shù)據(jù)吧
對于公司內部網(wǎng)絡而言开仰,由于只是將員工的電腦彼此相連,可能就不太需要對其間傳輸?shù)臄?shù)據(jù)進行加密薪铜。但在互聯(lián)網(wǎng)中众弓,由于它聯(lián)結的是全世界范圍的企業(yè)和個人,所以會面臨很多需要對數(shù)據(jù)進行加密處理的情況隔箍。舉例來說谓娃,在網(wǎng)購時用戶輸入的信用卡卡號,就是應該被加密傳輸?shù)拇硇詳?shù)據(jù)蜒滩。假設卡號未經(jīng)加密就被發(fā)送出去滨达,那么就會面臨卡號被同樣接入互聯(lián)網(wǎng)的某人盜取,信用卡被其用來肆意購物的危險俯艰。因為像這種網(wǎng)店頁面的URL捡遍,通常都是https://開頭,表示數(shù)據(jù)正在使用加密的方式進行傳輸竹握。
11稽莉、XML究竟是什么
XML是eXtensible Markup Language的縮寫,譯為可擴展標記語言。只有在像互聯(lián)網(wǎng)那樣的環(huán)境中污秆,運行在不同機器中的不同應用程序相互連接劈猪,XML才會大有作為。在分布式計算中良拼,如果由不同種類的機器互聯(lián)組成的系統(tǒng)战得,那么使用基于XML的SOAP才有意義。反之如果環(huán)境中的機器和應用程序全部來自同一廠商庸推,那么使用廠商自定義的格式而并非XML的格式常侦,反而可以更加快捷的處理信息。XML是通用的贬媒,但不是萬能的聋亡。
三、目標
12际乘、SE負責監(jiān)管計算機系統(tǒng)的構建
SE(System Engineer坡倔,系統(tǒng)工程師),負責構建計算機系統(tǒng)脖含。SE的地位比程序員的高嗎罪塔?不一定,想當一輩子程序員也很好养葵,但要立志成為計算機行業(yè)的專家征堪,就不能僅僅關注技術。雖然有懂技術又懂計算機確實讓人感到興奮关拒,但如果只是這樣的話佃蚜,早晚有一天工作就會變得沒那么有意義了。有些人在30左右就會選擇離開計算機行業(yè)着绊,不是因為他們追趕不上技術前進的步伐谐算,而是因為他們感到工作變得無聊了。專家也好普通人也罷畔柔,只有為社會作出貢獻才能有成就感,才會覺得工作有意義臣樱。
總結:能夠很好的系統(tǒng)的重新認識計算機靶擦,以前知道會用,但是不了解它的基本原理雇毫;讀完此書后玄捕,能全面的了解計算機,包括它的實現(xiàn)邏輯棚放,及運用場景等枚粘。印象最深刻的是關于網(wǎng)絡和和數(shù)據(jù)加密這塊,讓我明白了什么是MAC地址飘蚯、IP地址馍迄、子網(wǎng)掩碼福也,以及RSA加密和MD5加密,有一種恍然大悟的感覺攀圈。