本文不是原创,总结王银某文的主要内容,该篇适合在programming路上纠结徘徊的你(妳)。
学习编程,应该重视语言特性,而不是语言。任何一种“语言”,都是各种“语言特性”的组合。举一些语言特性的例子:
- 变量定义
- 算术运算
- for 循环语句,while循环语句
- 函数定义,函数调用
- 递归
- 静态类型系统
- 类型推到
- lamda函数
- 面向对象
- 垃圾回收
- 指针算数
- goto语句
每一种程序语言里面必然有一套“通用”的特性。比如变量、函数,整数和浮点数运算等。这些是每个通用程序语言里面都必须有的,一个都不能少。首先使用一种语言掌握“通用”特性,剩下的就是某些语言的“特有”的特性。研究语言的人都知道,要设计出来新的、好的、无害的特性,是非常困难的。所以一般来说,一种好的语言,它所特有的新特性,终究不会超过一两种。如果有个语言号称自己有超过5个新特性,那可能是灾难。
选择合理的入门语言,避免使用“脚本语言”作为入门语言,脚本语言往往是把一些系统工具性质的东西(比如正则表达式,web概念)加入语法里面,导致初学者抓不住重点,不能理解编程最关键的概念:变量,函数,递归,类型…… 推荐的合理入门语言,Scheme,C,Java,Python,JavaScript。
掌握关键语言特性,忽略次要特性。重点去理解变量、函数、算术语句、循环语句的用法,而不是纠dai结苦苦铭记%d,%f,%.2f的含义。
自己动手实现语言特性 在基本学会语言特性后,能用它们来写代码之后,下一步的进阶就是去实现它们。只有实现了各种语言特性,你才能完全地拥有它们,成为它们的主人。否则,你就是它们的使用者,会被语言的设计者牵着鼻子走。