前言
今天看書的時候,突然有了一個想法,就是將自己看書的筆記(內容大部分是摘抄)以博客的形式分享給大家。
原因有三:
一是因爲筆記的內容較少,適合碎片化閱讀;
二是書籍中的知識,多多少少都有智慧的內容,我以自身的角度,將這些我認爲的“智慧的語言”整理出來,也算是一種小小的自我鍛鍊;
三是希望大家看到文章的內容後,可以有些啓發。當然受到的啓發全是由於書籍作者的功勞,我並未盡功勞。
以下內容來自於《編程高手箴言》一書,作者是樑肇新。
第一章 程序點滴
-
一個程序員的成長的六個階段:
第一階段: 此階段主要是能熟練地使用某種語言。這就相當於練武中的套路和架式這些表面的東西。
第二階段:此階段能精通基於某種平臺的接口以及所對應語言的自身的庫函數。到達這個階段後,也就相當於可以進行真實散打對練了,可以真正地在實踐中做些應用。
第三階段:此階段能深入地瞭解某個平臺系統的底層,已經具有初級的內功的能力,也就是“手中有劍,心中無劍”。
第四階段:此階段能直接在平臺上進行比較深層次的開發。基本上,能達到這個層次就可以說是進入了高層次。這時進入了高級內功的修煉。比如能進行操作系統內核的修改。
第五階段:此階段就已經不再侷限於簡單的技術上的問題了,而是能從全局上把握和設計一個比較大的系統體系結構,從內核到外層界面。可以說是“手中無劍,心中有劍”。到了這個階段以後,能對市面上的任何軟件進行剖析,並能按自己的要求進行設計,就算是MS Word這樣的大型軟件,只要有充足的時間,也一定會設計出來。
第六階段:此階段也是最高的境界,達到“無招勝有招”。這時候,任何問題就純粹變成了一個思路的問題,不是用什麼代碼就能表示的。也就是“手中無劍,心中也無劍。”
-
正確的程序設計思路就是成對編碼。
-
代碼一定不能亂,一定要格式非常清楚。
-
有價值的代碼一定是不僅格式非常規範,而且還要有很詳細的設計思路和註釋。
-
真正要做一個有價值的程序,開發程序的思維就很重要,這種思維的具體體現就在註釋及規範的代碼本身。
-
如果不懂調試,則永遠成不了高手。在學習調試的過程中,對彙編語言、體系結構會有進一步的瞭解。
-
要具備開放性思維,就必須瞭解包括從CPU的執行方法,到Windows平臺的運轉,到你的程序的調試,最後到你要實現的功能這一整套的內容,只有做到這樣,才能真正提高。
-
任何一個問題,如果你能把它拆開來思考,這就是簡單的開放性思維。
-
如果把一個複雜的函數分成很多小的函數,每個小的函數的出錯機率就會很小,那麼組合起來的整個程序的出錯機率就很小。
-
不存在沒有BUG的編譯器。
-
有了動態庫,當你要改進某一項功能的時候,你可以不動任何其他的地方,只要改其中你拆出來的這一塊。
-
從症狀就能判斷出是那些代碼產生了問題,這就是可預測性。
-
所有的代碼必須是經過測試的,必須是一步一步調試過的。
-
要達到可預測性,代碼在彙編級是怎麼執行的,你都得非常清楚。代碼對哪個部分進行了什麼操作,你都得知道。如果達不到這點,你的可預測性就很差。
-
開放性思維非常重要,你必須從最低層到最上層都要清楚。