# 怎樣才算學會一個程式語言呢？

前幾天一位網友說：『他花了五年學會 C++ ，然後花了五天學會 LISP』。

這讓我想要自己學程式過程中的另一個困惑，到底怎樣才算學會一個程式語言呢？

從 1990 年開始學習 C 語言到現在，也經過了 25 個年頭了，我到底學會 C 語言了沒呢？

我覺得我應該是會了，但是當過看到 Jserv, Linus Torvalds, Fabrice Bellard 等人寫的程式之後，我又覺得自己好像不太瞭解 C 語言了。

對於 C++ 我就更不能說學會了，因為我上一次真正用 C++ 寫程式是在 2001 年於松下 PTL 的時候了，事實上我從 1998 年離開中研院許聞廉實驗室後就很少用 C++ 寫程式了。我手上最新的 C++ 書籍還是 22 年前買的。

然後、雖然我現在最常用的程式語言是 javascript，而最常用的程式開發工具是 node.js，但是我能說自己學會 javascript 了嗎？

我沒有把握！

JavaScript 的基本語法我在 1997 年時就已經接觸到了，然後 2000 年之後差不多就把他丟在一邊了。接著在 2013 年我因為 node.js 又重新學習了 javascript 直到現在，也寫過好幾個專案了，但是我能很有把握地告訴別人說：『我會 javascript ，我會 node.js 嗎？』

我還真的很難講出這句話！

在 1988 年的我學 Pascal 的時候，我們只要唸一本書就足以清楚理解 Turbo Pascal 了，後來幾年我也只要唸一本書外加一本手冊就能說我會 C 語言了。

直到今天，C語言的標準函式庫還是可以用一本書完全表達，但是這樣就夠了嗎？

當 windows 出來之後，光是系統函數就可以寫上八大冊，然後是數十冊，接著就沒人會買這些書了，大家都直接看微軟的 MSDN 輔助說明，而且應該沒有任何人看得完 MSDN。

今天、光是 node.js 的官方 npm 上登錄的安裝套件就有數十萬筆，這還不包含那些沒有納入 npm ，只在 github 上出現的套件。在這種情況下，我應該會多少才算學會 node.js 呢？我又應該學會多少才算是會 javascript 呢？

但是、如果你說我不會 javascript、或者說我不會 node.js ，那我也是不能服氣的，程式的世界雖然只有 0 與 1 ，但是會不會某個程式語言這件事情，卻已經很難用 0 或 1 來表達了。

各位看倌，請問你到底會甚麼程式語言呢？

## 參考

* [facebook 原始貼文](https://www.facebook.com/notes/%E9%99%B3%E9%8D%BE%E8%AA%A0/%E6%80%8E%E6%A8%A3%E6%89%8D%E7%AE%97%E5%AD%B8%E6%9C%83%E4%B8%80%E5%80%8B%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/10153650814376893)
