developer_nyuhuhuu

當說到開發人員知識的半衰期,較有根據及普遍卜認同的說法是5年,換句話說一個程式設計的知識5年後其價值只及最初時的一半。甚至有更無奈的說法指「程式設計是多餘的,因為幾年前學習的現在已經不管用了」。

5年半衰期這說法好像有它的理由,因為程式語言不斷推陳出新,設備、技術及用戶的需求也不斷轉變。但這並不是事實的全部,程式設計知識比任何人想像還更長壽。

語法並不艱難

對於非開發人員要學習新的編寫語言,例如一個懂JAVA的人去學Python聽起來像是用英語來學法語,但程式語言不能與人類語言作類比,即刻有新的語法要學,但這只是表面上的難題,編程核心的概念仍然是一樣。

用任何語言來寫程式都是運用著相同的基本功,例如邏輯、數據結構及變數類型,對於了解甚麼是booleans、integers、floats及strings,新的語言也會利用這些,數據結構如lists、sets、dictionaries及trees的概念都是一樣,邏輯的算術、IF、Loop、function calls等。

編程的重要技巧例如算式結構、分析問題,甚至是函數的命名都是任何語言都合用的,有了這些通用的技巧就很容易掌握多種語言。讓筆者引用《No Silver Bullet》的名言:語法只是不重要的知識,如何編寫程式才是重要知識。

程式庫及工具都一樣是一里通百里明,如果不懂新語言一些正規的表達式,但要知道一定有支援工具,解決如何使用語法並不難,難度在於怎麼使用它們,這才是真學識。像IDEs這類工具,你可能不詳細了解卻知道它能夠做甚麼。學習新語言並不是甚麼大事,但如果轉職的話,便會有更多新事物等你去學。嘗試一下由多層次考慮知識這回事。

不同的知識層次

編程:這關於編程語言、範式、技術和工具,即使語法不同,當中很多核心概念其實一樣。

領域:這是你對開發環境的認識,例如程式是用於通訊的,你會了解不同的protocols、明白信息的處理過程,服務收費的計算及監控都該暸如指拳。從事任何行業日子越久,這專門的知識會越多,這額外的知識更具價值。

代碼庫:這是企業內部獨特的資源,當你在同一公司任職了相當的時間,會更了解你不同代碼中的意義所在,哪部份是棘手、難以判斷的以及開發歷程中留下來的語法的原因。

持續學習

作為編程人員,在以上三個層次皆有涉獵的話會是有相當價值的,如果無可避免要轉工的話,第二及第三層次的知識會變得陌生,這才是需要重新學習。編程知名和領域知識在你轉工時仍然有價值,懂得多種語言可以給予你指標去了解不同辦事方法。如果有時間花點精神鑽研多些有關常用軟件開發的書籍,例如Code Complete、Clean Code、The Pragmatic Programmer。

結論:

開發軟件的吸引之處是你有機會學習新事物,不斷學習才會不覺沉悶,這是開發人員的必經之路,即使新語言年年更新。


 何懼新程式語言 技術才是開發人員身價

 https://www.facebook.com/hkitblog