84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
如題所示,咋樣才算是學習好了一門編程語言?就比如拿 swift 來說吧
標題和內容是兩個問題啊餵…
掌握(實用的)程式語言往往分為兩大塊,語言本身和周邊類庫/框架,這兩塊相輔相成缺一不可
就語言本身來說,最重要的是理解這門語言的抽象機制/程式設計範式:早期的語言可能相對單純,純過程式,純面向對象,而多數現代通用語言往往是多範式的,往往即支援物件導向又支援面向過程,還有或多或少的函數式,這種混合的比例和風格決定了整門語言的風格。有的語言會有一些“核心概念”,拿掉以後會直接洞穿整個根基的重要概念/機制(比如JS的原型,Java的接口,C的指針),那麼抓住這些核心概念突破是個好主意;而另一些語言可能沒有這樣明顯的核心,這類語言往往混合多種其他語言的特色,那麼可以透過他借鑒了哪些特性,做了哪些調整,又沒有借鑒哪些特性來入手。重要的是“味道”,寫Java就要有Java味道(而不是試圖用Java實現一個動態語言的子集),寫JS就要有JS的味道(而不是試圖搞接口,封裝之類)。而有些味道是所有語言共通追求的例如可讀可維護(恕我排除了brainfuck…),這也可以成為突破口(例如這門語言的哪些特性增強了可讀性?)
另外一塊就是周邊類庫包括工具集了,我經常用學英文打比方,前面那塊可能對應語法,而類庫就相當於詞彙了,這門語言的主要應用場景在哪裡,在這些場景下有哪些內建或開源的類別庫可以用,不同類別庫之間的優缺點如何,怎麼選擇合適的類別庫,怎麼讓幾個不同的類別庫在一起融洽地工作。什麼樣的程式碼適合抽離成類別庫,自己寫類別庫的時候要注意什麼。這門語言有哪些常見的輔助工具。
我覺得學好一門語言的主要標誌就是它從你的思考中消失了,你發現你考慮如何寫代碼的時候的思維過程和這門具體的語言沒有關係,“怎麼用XX實現YY”之類的問題從來沒有出現,更沒有打斷你的思路
掌握這些:
語言的背景與理念
基本文法與概念 從 hello world 開始,到小作品,小應用。
應用開發框架
技巧與陷阱
語言的實作 進一步加深對語言的理解。
我覺得是這樣:
想想你學它要做什麼 想想怎麼用它來做 學文法 了解API 做你要做的事
我覺得還是要關註一下與系統之間的關係,多了解一些系統呼叫
標題和內容是兩個問題啊餵…
掌握(實用的)程式語言往往分為兩大塊,語言本身和周邊類庫/框架,這兩塊相輔相成缺一不可
就語言本身來說,最重要的是理解這門語言的抽象機制/程式設計範式:早期的語言可能相對單純,純過程式,純面向對象,而多數現代通用語言往往是多範式的,往往即支援物件導向又支援面向過程,還有或多或少的函數式,這種混合的比例和風格決定了整門語言的風格。有的語言會有一些“核心概念”,拿掉以後會直接洞穿整個根基的重要概念/機制(比如JS的原型,Java的接口,C的指針),那麼抓住這些核心概念突破是個好主意;而另一些語言可能沒有這樣明顯的核心,這類語言往往混合多種其他語言的特色,那麼可以透過他借鑒了哪些特性,做了哪些調整,又沒有借鑒哪些特性來入手。重要的是“味道”,寫Java就要有Java味道(而不是試圖用Java實現一個動態語言的子集),寫JS就要有JS的味道(而不是試圖搞接口,封裝之類)。而有些味道是所有語言共通追求的例如可讀可維護(恕我排除了brainfuck…),這也可以成為突破口(例如這門語言的哪些特性增強了可讀性?)
另外一塊就是周邊類庫包括工具集了,我經常用學英文打比方,前面那塊可能對應語法,而類庫就相當於詞彙了,這門語言的主要應用場景在哪裡,在這些場景下有哪些內建或開源的類別庫可以用,不同類別庫之間的優缺點如何,怎麼選擇合適的類別庫,怎麼讓幾個不同的類別庫在一起融洽地工作。什麼樣的程式碼適合抽離成類別庫,自己寫類別庫的時候要注意什麼。這門語言有哪些常見的輔助工具。
我覺得學好一門語言的主要標誌就是它從你的思考中消失了,你發現你考慮如何寫代碼的時候的思維過程和這門具體的語言沒有關係,“怎麼用XX實現YY”之類的問題從來沒有出現,更沒有打斷你的思路
掌握這些:
語言的背景與理念
基本文法與概念
從 hello world 開始,到小作品,小應用。
應用開發框架
技巧與陷阱
語言的實作
進一步加深對語言的理解。
我覺得是這樣:
想想你學它要做什麼
想想怎麼用它來做
學文法
了解API
做你要做的事
我覺得還是要關註一下與系統之間的關係,多了解一些系統呼叫