如何学习一门编程语言

本文列了一个通用大纲。用来梳理所有编程语言的知识结构。

支持哪些平台

这门语言可以在哪些操作系统或平台程序里运行?

开发环境的安装与配置

初始化项目

编译

运行

包管理器

包管理平台

包管理机制

导入

导出

发布

多版本

基本语法

注释

变量与常量的声明和定义

类型系统

基本数据类型

复合数据类型

是否支持类型推导

流程控制

条件判断

  • if
  • if else
  • switch

循环语句

  • for
  • while

跳转语句

  • return
  • break
  • continue
  • goto

运算符

  • 算术运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符

字符串处理

  • 字符串提取
  • 字符串拼接
  • 格式化字符串
  • 正则表达式

函数

  • 是否支持多返回值
  • 是否支持函数传参
  • 是否支持匿名函数
  • 是否支持递归
    • 是否支持尾递归优化

其他内置符号

模块与包

零值判断

真值判断

异常处理

单元测试

IO 操作

  • 网络
  • 硬盘
  • 内存
  • 输入设备
  • 输出设备

进程间通信

是否支持异步

是否支持继承

是否支持抽象

  • 泛型
  • 抽象类
  • 接口

是否支持流式处理

是否支持 GC

是否支持指针

是否支持内存管理

是否支持多线程

是否支持协程

是否支持元编程

  • 反射

是否支持汇编

语言专属特性

设计理念

标准库

排序

编码与解码

序列化与反序列化

操作系统

网络

社区热门框架和工具

Web

CLI

ORM

科学计算

数据分析