怎樣纔算會一門編程語言

今天, 同事問我會不會Python, 我猶豫了一下:不會。

 

實際上我曾經學習過這個語言,當時還用它寫了些小工具, 可現在我對這個語言的印象只剩下它那特殊的縮進格式了。

 

由此思考怎樣纔算會一門語言?我想每個程序員都接觸過多門語言 , 那麼究竟怎樣纔算會這門語言了呢? 

 

會一門語言, 當需要它時, 應該能很快用該語言解決某個問題, 這個是最基本的。

 

如果深入一點, 真正會一門語言, 我覺得需要滿足以下幾點:
a. 有超過一年的實踐經驗
b. 理解語言背後的機制, 最好閱讀過該語言標準庫的部分源碼
c. 在最近一年裏還經常使用它

 

儘管我工作後只跳過一次槽,接觸的東西也比較有限, 但是細想一下, 也接觸過不少語言:
Masm: 有段時間玩破解, 研究了下
C/C++: 工組中一直用
Objective-C:有段時間想搞跨平臺的界面庫,研究過這個語言
C#: Win8  Metro下應用程序拿它做界面
VB:剛工作的2年,用它開發過發證系統和一些小工具
Java,JSP, HTML, JS: 學得都不深入,當時邊學邊用, 單獨做一個B/S架構的電話會議系統
Python: 自學的, 但是後來沒怎麼用
au3:當時學得還挺深入, 看了不少語言標準庫的源碼,用它寫過一套自動測試框架

 

發現自己除了函數式語言(Lisp, F#, Erlang, Haskell等), 其他的編程範型語言都有接觸, 當然函數式編程思想其實也有接觸,因爲C++模板元編程也有函數式編程的影子。

 

但是如果按照上面會一門語言的標準, 發現自己算的上"會"的語言只有一門C++, 其他語言多則使用近2年,少則使用過3個月, 大部分是用完之後就扔了, 只有C++是在工作中持續使用的。

 

爲什麼我要定義上面的條件纔算會一門語言?

 

因爲學習一門語言的語法其實很容易, 大部分語言語法可以一個月內掌握, 如果從C++轉到C#, 學習語言的基本語法部分甚至只需一兩天。學習一門語言最費時的部分是語言的框架和庫的學習, 這些部分沒有對該語言一兩年的編程實踐是很難深入的。比如C#語法本身是很簡單的 ,但是建立在該語言之上的各種框架和庫卻非常龐大和複雜, 比如你要成爲WPF或是WCF的專家, 夠你研究三五年了。很多時候我們所謂的"會"某個語言可能只是會用這個語言寫些"hello word"式的入門程序, 根本就不理解背後的機制,如果真正懂一門語言,這門語言應該對你的編程風格(思想)產生影響。另外編程是項實踐活動,需要一直使用纔不會生疏, 我們發現一門語言如果一年沒有使用, 對該語言的印象就僅剩語法部分了,如果連續3年沒有使用,就僅剩該語言的名字了。很多開發人員轉管理一兩年後想轉回寫代碼, 發現很難再回去了, 沒有敲代碼的感覺了。

 

所以如果你已經會了一門語言, 並且想一直會這門語言, 請在工作持續使用。如果沒有機會使用, 自己給自己創造機會。

 

作爲一名C++程序員, 應該掌握哪些語言?

 

個人覺得C++程序員除了C++之外, 最好再深入掌握一門腳本語言, 一來作爲輔助工具,二來可以理解動態語言的一些特性。具體什麼腳本語言看自己選擇了。一般入如果是遊戲程序員, 當然首選Lua,因爲它基本上是遊戲的內定腳本語言。隨着Html5的流行,本來僅僅是瀏覽器使用的JS現在也是越來越受歡迎了。JS本身不支持面向對象,但是現在已經比較成熟的JS面向對象解決方案了。儘管隨着V8 的成功, Node.js興起, JS庫也越來越強大,但也僅限於服務端, 如果JS作爲客戶端工具語言就不適合了。Python和Perl都是不錯的腳本語言, 如果你不是寫專業的字符處理腳本, 個人推薦學習Python, 因爲它簡單易學, 格式清晰,面向對象,最重要的是它有強大的庫支持(包括GUI), 另外Python與C++ 交互也已經有很成熟的解決方案。

如果你有精力,可以再學一門函數式編程語言 , 據說它會顛覆你的編程思想。

 

簡單總結下, 語言不在多,在精。經常使用你覺得有價值的語言。深入掌握一門腳本。

轉載於:https://www.cnblogs.com/weiym/p/3265008.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章