程式設計師如何提高抽象能力

gurudk發表於2009-02-18

 

     之前寫過一篇文章,講合格程式設計師應該具備的能力,你是合格的程式設計師嗎?—合格程式設計師應該具備的12種能力。

 

    裡面提到了抽象能力,就我看來,抽象能力是軟體從業人員最應該具備的能力。因為軟體開發領域涉及到的概念太多。正如Brooks所說,為了獲得概念完整性,需要我們具備很強的抽象能力,需要我們運用抽象能力去簡化場景,遮蔽複雜性。

 

    那麼究竟什麼是抽象能力?舉個例子,我們所說的人,就是一個抽象的概念,不是指具體的男人,女人,高矮胖瘦什麼東西都不具體。但比如“奧巴馬”就是一個具體的人。

 

    如果我來定義,抽象能力就是發現事物之間相同點或隱含聯絡的能力。

 

    我們經常說軟體複用,就是因為我們發現了不同場景下相同的東西,抽象出來而成為共用的元件,框架,平臺。

 

    那麼如何培養這種能力的,抽象能力本身是一種思維能力,也就是說你只有不斷的進行思維鍛鍊才能獲得。

 

    我現在總結出的一個技巧就是:隨意挑選兩個事物,可能是軟體領域中的概念,也可能不是。竭盡所能的去找出他們之間的聯絡。我寫的兩篇文章就是關於這個方面的嘗試,大家可以試一下。不要淺嘗輒止,努力去思考,也可以google查一些資料。鍛鍊最好選取軟體領域的概念。下面是我思考的兩個例子:   

 

 足球與軟體開發

 

廁所與網站

 

   要想去打鐵,就得去打鐵。

 

   這是一句法國諺語,要想提高抽象能力,就得不斷的思考。

相關文章