本文不是原創(chuàng)船万,總結(jié)王銀某文的主要內(nèi)容,該篇適合在programming路上糾結(jié)徘徊的你(妳)啸盏。
學(xué)習(xí)編程重贺,應(yīng)該重視語言特性,而不是語言回懦。任何一種“語言”气笙,都是各種“語言特性”的組合。舉一些語言特性的例子:
- 變量定義
- 算術(shù)運(yùn)算
- for 循環(huán)語句怯晕,while循環(huán)語句
- 函數(shù)定義潜圃,函數(shù)調(diào)用
- 遞歸
- 靜態(tài)類型系統(tǒng)
- 類型推到
- lamda函數(shù)
- 面向?qū)ο?/li>
- 垃圾回收
- 指針?biāo)銛?shù)
- goto語句
每一種程序語言里面必然有一套“通用”的特性。比如變量舟茶、函數(shù)秉犹,整數(shù)和浮點(diǎn)數(shù)運(yùn)算等。這些是每個通用程序語言里面都必須有的稚晚,一個都不能少崇堵。首先使用一種語言掌握“通用”特性,剩下的就是某些語言的“特有”的特性客燕。研究語言的人都知道鸳劳,要設(shè)計(jì)出來新的、好的也搓、無害的特性赏廓,是非常困難的涵紊。所以一般來說,一種好的語言幔摸,它所特有的新特性摸柄,終究不會超過一兩種。如果有個語言號稱自己有超過5個新特性既忆,那可能是災(zāi)難驱负。
選擇合理的入門語言,避免使用“腳本語言”作為入門語言患雇,腳本語言往往是把一些系統(tǒng)工具性質(zhì)的東西(比如正則表達(dá)式跃脊,web概念)加入語法里面,導(dǎo)致初學(xué)者抓不住重點(diǎn)苛吱,不能理解編程最關(guān)鍵的概念:變量酪术,函數(shù),遞歸翠储,類型…… 推薦的合理入門語言绘雁,Scheme,C援所,Java咧七,Python,JavaScript任斋。
掌握關(guān)鍵語言特性继阻,忽略次要特性。重點(diǎn)去理解變量废酷、函數(shù)瘟檩、算術(shù)語句、循環(huán)語句的用法澈蟆,而不是糾dai結(jié)苦苦銘記%d,%f墨辛,%.2f的含義。
自己動手實(shí)現(xiàn)語言特性 在基本學(xué)會語言特性后趴俘,能用它們來寫代碼之后睹簇,下一步的進(jìn)階就是去實(shí)現(xiàn)它們。只有實(shí)現(xiàn)了各種語言特性寥闪,你才能完全地?fù)碛兴鼈兲荩蔀樗鼈兊闹魅恕7駝t疲憋,你就是它們的使用者凿渊,會被語言的設(shè)計(jì)者牽著鼻子走。