程式語言學習之我見

一劍平江湖發表於2013-10-24
   自04年畢業以來,從事的工作中,接觸的語言各類很多,有C++,Delphi,C#,Java,(Javascript,Html,css這三者基本是一體的)。竊以為語言其實只是一種實現你想法的工具而已,不要有門戶派別之見。每種語言都有它的長處與缺點。以已之長較彼之短是自欺欺人,以已之短較彼之長屬妄自菲薄。結合實際情況,選擇合適的語言來做適合的事情才是上上之策。
  要學習一種程式語言,首先一定要有興趣才行,魯迅說過“興趣是最好的老師”。只有你對它感興趣,想(或者說需要)學才可以。
  我自高中學習Basic語言開始,在大學裡除了老師講授的c++,Java基礎知識外,基本上Delphi,vc++,c++Builder,Java都是我利用業餘時間自學的。而學一門語言不是簡單的瞭解它的語法就可以了。還要學習相當一部分的函式庫或類庫才行,雖說不用全部記信其用法,但大部分常用的函式或類還是要相當熟悉的,這就需要在實踐中多練習了,這個我記得國外有篇博文說的很好,要想快速的學習一門語言的類庫的方法就是應用它方法有二,
其一,將其直接應用到你的真實專案中,只有這樣你才會有足夠的壓力與動力去學習它,
其二,將其應用到你的週末專案中,這個概念很好,因為與工作相對應的是週末,你可以利用週末或者業餘時間來做一個簡單的小專案,可以是一個簡單的***系統。
  個人認為,一個優秀的程式設計師不應該只學一種語言,至少應該精通兩種語言,並且熟悉其它語言,而這兩種語言中,至少要有一種直接訪問記憶體語言(就是不用虛擬機器來管理記憶體,而是程式設計師在程式中用來管理記憶體),學習它是為了讓你瞭解計算機是怎樣來管理資源的以及養成一種有申請必有釋放資源的好習慣,另一種語言最好應為託管語言(c#或java)是為了更高效的完成工作,而這種工作大部分是在服務端。
  而一門語言中包含的入門資訊,主要分為以下幾大部分:
  1 基本資料型別
  2 基本語法格式
  3 流程控制
  4 I/O控制
  5 資料庫與網路
  前四種是屬於語言的基礎知識,而最後一種往往以函式庫或類庫的方式來實現。而瞭解這些知識,基本上一週左右就夠了(每天的練習,再加上週末專案,基本上可以讓你一窺該語言的門徑,而要登堂入室,則還需下功夫才行)。
要想登堂入室,則還需接著往下看,
  開源是個好東西,你在專案裡所需要的東西,往往在開源專案裡可以找到。但它也是把雙刃劍,用好了可以省去你不少功夫,但是有時出的錯誤也會讓你無所適從,摸不著頭腦。所以你在專案中應用開源專案時,一定要慎重,最好利用時間把它的程式碼大概過一遍,這樣就算專案出錯時,也會心裡有底,知道錯誤大概是什麼原因造成的。
  6,做一個真正實用的軟體

       學到這一步,相信你對這一門語言已經有了一定的瞭解了。程式語言主要就是用來解決問題的,如果沒有問題,那就建立一個問題。你可以寫一個你平時可以用得上的軟體,例如一個類似lanchy的可以簡化你開啟程式步驟的軟體,也可以是一個彩票選號軟體(如果你喜歡買彩票的話,我在09年曾經用delphi寫過一個與500wan類似的彩票選號軟體,用著還行,不比它的執行效率差。現在也一直在用著它,只是很少更新了),然後要堅持更新它,直到你覺得滿意為止。        

     至於學習多門語言的問題,讓我想到了《天龍八部》中的鳩摩智,其人天賦異稟,也很用功。內功修為也很強,只是很貪心,各種奇門武功都想學,不想著使自己的內功更上一層樓。而喬峰內功修為與他差不多,但他只修降龍十八掌,並將其運用到隨心所欲的境界。所以鳩摩智一直打不過喬峰。其實武功與程式設計有相通之處。內功就好比程式設計中的程式設計思想(其由設計模式+程式設計經驗等組成),外功就好比實現程式設計思想的程式語言,可以多學一兩門語言,但不可貪多,因為人的精力是有限的。再深一步講軟體中的專案管理與武俠中的一派掌門或者教主管理門中事務也有相似之處,關於這些的討論詳見我的另一篇博文《閒談武俠與軟體開發》。

相關文章