如何学习一门编程语言

之前从没有认真思考过这个问题。

把思绪调回学校,看看当时的课本怎样设计。计算机相关专业或多或少学习过一门基本的编程语言,比如谭浩强版本的《C程序设计》,这本书的目录结构

第一章:程序设计和C语言

第二章:算法——程序的灵魂

第三章:最简单的C程序设计——顺序程序设计

第四章:选择结构程序设计

第五章:循环结构程序设计

第六章:利用数组处理批量数据

第七章:用函数实现模块化程序设计

第八章:善于利用指针

第九章:用户自己建立数据类型

第十章:对文件的输入输出

对这几章内容做个分类,前两章相当于楔子,告诉大家什么是编程语言,编程语言的产生和发展。第三章到第五章,介绍C语言程序的结构,第六章到第九章,介绍C语言的语法,第十章,介绍类库。

课本面向的是初学者,受众是从未接触过编程的同学。如果已经有一定的编程基础,想再去系统学习一门新的语言,应该关注哪些方面呢?

参照课本的设计思路,再完善一下,我觉得可以从这几方面入手。

编程范式

这个世界上已经存在各种各样的的编程语言,不同的编程语言设计之初想要解决的问题也不尽相同,不过语言的设计是源于现实世界,是大师对现实世界表达的规范化,形式化,更重要的,抽象化。

语言分类有多种方式,按照语言的结构抽象来分类,可以分成过程式编程,函数式编程,面向对象编程(这里引用一篇高人的博文进行解释炒菜模型——各种编程范式 - 窗户 - 博客园)。

按照和计算机的交互方式分类,可以分成命令式编程,声明式编程。

命令式编程需要向计算机描述程序执行的过程,即命令计算机先做什么,再做什么。这种范式其实是面向过程的,命令式编程的基本思想是一件事情的发展是有时序和步骤的,通过对步骤的描述来完成一个目标。我们常用的高级语言,比如C,JAVA,PYTHON等都可以认为是命令式编程。

声明式编程就是告诉计算机,我想要什么结果,只关心计算过程和结果,不关心执行步骤,最典型的语言是SQL,HTML和CSS。

基本结构

如何是面向对象语言,首先搞清楚类,对象和方法,继承等概念以及语法定义。定义这些基本概念的的过程中,还会涉及访问控制,命名空间,成员变量,赋值语句,标识符,方法调用。如果是函数式,还要知道如何定义函数。有方法或者函数,就涉及到参数,涉及到引用传递和值传递。此外控制结构也属于程序的基本结构

语法特性

语法特性包括的内容比较多,涉及编程语言的方方面面。有一种方式,可以从关键字开始学起。每种编程语言都有自己独特的语法,通常,这些语法都需要关键字来进行声明。逐个了解一门语言的关键字,可以基本扫除一门语言的语法盲点。此外,泛型编程及类型机制,是非常重要的语法内容,很多命令式编程语言都支持泛型编程。还有多线程,不过这部分内容多数是和常用类库结合起来学习。

常用类库

常用的类库有集合,并发,IO,类型机制(反射)。学习类库,首先需要梳理清楚各个类型之间的关系,基类是谁,子类是谁,把整个框架图勾勒出来。其次,如果同一基类下有不同实现,要弄清楚他们之间有什么区别,分别适用什么场景。这部分内容的学习需要阅读源代码。

通过以上几个方面,相信就能够掌握一门编程语言了。再结合其他方面的知识,比如面向对象编程中掌握设计模式,就能写出足够优秀的,能够改变世界的代码了。

你可能感兴趣的:(如何学习一门编程语言)