本文不是原創(chuàng),總結(jié)王銀某文的主要內(nèi)容,該篇適合在programming路上糾結(jié)徘徊的你(妳)。
學習編程,應(yīng)該重視語言特性,而不是語言。任何一種“語言”,都是各種“語言特性”的組合。舉一些語言特性的例子:
- 變量定義
- 算術(shù)運算
- for 循環(huán)語句,while循環(huán)語句
- 函數(shù)定義,函數(shù)調(diào)用
- 遞歸
- 靜態(tài)類型系統(tǒng)
- 類型推到
- lamda函數(shù)
- 面向?qū)ο?/li>
- 垃圾回收
- 指針算數(shù)
- goto語句
每一種程序語言里面必然有一套“通用”的特性。比如變量、函數(shù),整數(shù)和浮點數(shù)運算等。這些是每個通用程序語言里面都必須有的,一個都不能少。首先使用一種語言掌握“通用”特性,剩下的就是某些語言的“特有”的特性。研究語言的人都知道,要設(shè)計出來新的、好的、無害的特性,是非常困難的。所以一般來說,一種好的語言,它所特有的新特性,終究不會超過一兩種。如果有個語言號稱自己有超過5個新特性,那可能是災(zāi)難。
選擇合理的入門語言,避免使用“腳本語言”作為入門語言,腳本語言往往是把一些系統(tǒng)工具性質(zhì)的東西(比如正則表達式,web概念)加入語法里面,導致初學者抓不住重點,不能理解編程最關(guān)鍵的概念:變量,函數(shù),遞歸,類型…… 推薦的合理入門語言,Scheme,C,Java,Python,JavaScript。
掌握關(guān)鍵語言特性,忽略次要特性。重點去理解變量、函數(shù)、算術(shù)語句、循環(huán)語句的用法,而不是糾dai結(jié)苦苦銘記%d,%f,%.2f的含義。
自己動手實現(xiàn)語言特性 在基本學會語言特性后,能用它們來寫代碼之后,下一步的進階就是去實現(xiàn)它們。只有實現(xiàn)了各種語言特性,你才能完全地擁有它們,成為它們的主人。否則,你就是它們的使用者,會被語言的設(shè)計者牽著鼻子走。