1、 《計算機科學概論》第九章—面向對象設計與高級程序設計語言java
(一) 面向對象方法python
自頂向下設計的重點就是任務。相反的,面向對象的設計方法使用叫「對象」的獨立實體生成解決方案。一旦收集全了全部問題中的對象,就能構成問題的解決方案。程序員
1. 面向對象算法
(1) 對象(object)在問題背景中相關的事物或實體express
(2) 對象類,簡稱類(object class or class)一組具備類似的屬性和行爲的對象的描述異步
(3) 域(field)類中的特定項,能夠是數據或子程序async
(4) 方法(method)定義了類的一種行爲的特定算法。函數
2. 設計方法spa
(1) 集體討論:肯定可能須要的對象類翻譯
(2) 過濾:篩選整合,集體討論的成果
(3) 場景:明確對象類的責任(管什麼的)(動詞),「若是。。。將會。。。」
(4) 責任算法:爲責任編寫算法
(5) 總結:在軟件的設計說明書上,關注動詞—程序性;關注名詞—面向對象
(二) 翻譯過程
1. 編譯器(compiler)把用高級語言編寫的程序翻譯成機器碼的程序
2. 解釋器(interpreter)輸入高級語言編寫的程序,指導計算機執行每一個語句制定的動做的程序
3. 解釋執行,一般比編譯執行慢
(1) 解釋器(interpreter)輸入高級語言編寫的程序,指導計算機執行每一個語句指定的動做的程序
(2) 字節碼(bytecode) 編譯java源代碼使用的標準機器語言
(3) 標準化的語言提供的可移植性(在有該語言編譯器的電腦上可直接運行)、與、解釋字節碼提供的可移植性(在有JVM的電腦上可直接運行),不一樣。
(三) 程序設計語言的規範
1. 命令式範性
描述解決問題的必要處理,具備順序執行指令的特徵
(1) 面向過程的範性:程序是子程序分層次構成的
(2) 面向對象的範性:對象和操做對象的代碼綁在一塊兒,使得每一個對象負責控制本身的操做。Java、Python,C++既有面向對象的部分,又有面向過程的特色。
2. 聲明式範性
描述結果
(1) 函數式:基本原理是函數的求值,而不是變量和賦值語句。
① Lisp、Scheme、ML
(2) 邏輯式:基於象徵邏輯的原則。
(四) 高級程序設計語言的功能性
分支結構、循環結構是命令式語言的標誌。
1. 布爾表達式(boolean expression)一個標識符序列,標識符之間有相容的運算符隔開,求得的值是true or false
2. 數據歸類
(1) 強類型化(strong typing)每個變量都有一個類型,只有這種類型的值才能被存儲到該變量裏面
(2) 數據類型(data type)一組值以及可以應用於這種類型的值的基本操做集合的說明。
(3) 數據類型:整數、實數、字符、布爾型、字符串、
(4) 聲明(declaration)把變量、動做、語言中其餘實體和標誌符關聯起來的語句,使程序員能夠經過名字引用這些項目。??註釋??
(5) 保留字(reserved word)具備特殊意義的字,不能用做標誌符
(6) 區分大小寫(case sensitive)
3. 輸入/輸出
4. 控制結構
(1) Control structure:肯定程序中的其餘指令的執行順序的指令
① 重複、選擇、子程序
(2) 嵌套邏輯
(3) 異步處理:也叫做事件驅動處理。這樣的處理是背程序指令序列之外發生的事件所控制的。
① 異步(asynchronous)不與計算機中其餘操做同時發生;換句話說,與計算機的動做不一樣步
② 異步處理常常出如今Java和VB中,而不多出如今別的語言中。
(五) 面嚮對象語言的功能性
1. 封裝(encapsulation)實施信息隱蔽。把數據和動做打包在一個袋子裏。對其餘的對象一無所知,若是一個對象須要另外一個對象的信息,他必須向另外一個對象請求。
(1) 對象類(object class)問題求解階段:屬性和行爲類似的一組對象的說明,是與問題背景相關的事物或實體
(2) 對象,實現階段,是對象類的一個實例
(3) 類,實現階段,對象的模式
2. 類
(1) 實例化:建立類的對象
3. 繼承(inheritance)獲取其餘類的屬性(數據域和方法)的機制
4. 多態(polymorphism)一種語言的繼承體系結構中具備兩個同名方法且可以根據對象應用合適的方法的能力。
(六) 雜問
1. 結構化程序設計原則
2. Java、python只能使用值參?VB、C++會使用引用參數?
2、《自學是一門手藝》
第十二章—刻意思考
這東西能用在哪?
主動找活幹,「能者多勞」這話沒錯,但「勞者多能」也許更準確一點,沒機會聯繫,就主動製造機會,以用代替練
幹活要有產出
更進一步,這東西還能用在哪裏?
所謂舉一反三,活學活用,就是把知識方法,內化爲能力思想,從而實現極高的「可移植性」
第十三章—打敗難點
困難幻覺:事實上,全部的難點均可以拆解成更小的單元,並逐一突破。
把一切都當作一門手藝的好處之一就是心態平和。覺得你知道,手藝不考天分和智商,它考靠另外幾樣東西:不混時間,刻意思考,刻意練習。
天下無難事,只怕有心人。其實世間全部的事情都是同樣的,只是你在不一樣方面的手藝,有熟練有沒入門的區別而已。
不管學什麼都同樣,難的部分不學會,就等於整個沒學。爲何恰恰要把本身學成一個半吊子?
開始自學,和開始斷奶,實際上是一回事。自學自己就是枯燥的,就像「人生本無心義,有意義的人生都是本身活出來的」同樣。
可以耐心讀完那麼多在別人看來「極度枯燥」的資料是自學者所擅長的。可在別人看來「無與倫比」的耐心,到底是從哪裏來的,又是如何造就的?沒斷奶的人想象不出來。
很簡答。首先,平靜的接受自學枯燥的本質。其次,「不管多枯燥,總能讀完;不管多難,多讀幾遍總能讀懂」,因而,到最後,只不過是習慣了而已
那一點點的差別,卻造就了後來這麼大的差距。看破苦難幻想,決心斷奶,接受自學枯燥的本質,多給一些預算,多給一些耐心,沒有什麼速成。