Language
以下是我喜欢并且常用的编程语言:
- Golang: 简洁高效,静态编译,适合开发并发程序,云原生语言。缺点是语法表达能力弱。
- Rust: 零成本抽象,内存安全,静态编译,强类型系统,系统编程新宠。缺点是语法较为繁琐。
- Python: 简单,动态类型系统,适用于脚本、人工智能、云计算、web应用。缺点是不适合开发大型程序。
- Cpp/C: 快速、简单/复杂、底层,弱静态类型系统,适用于系统、嵌入式开发。
- Datalog: 声明式语言,适用于数据分析、程序静态分析。生态太弱,不符合一般人的正常思维方式。
了解一些常用的标记语言,也会间接的对我们的编程有所帮助:
- HTML - 超文本标记语言,用于网页及网络内容的结构和布局。现在最新的版本是HTML5。
- XML - 可扩展标记语言。用于存储和传输数据,也常用于配置文件。提供扩展性和结构性。
- Markdown - 一种轻量级标记语言,非常简单,用于编写文档并最终转换成HTML。
- YAML - 一种直观的能够被电脑识别的数据序列化格式。常用于配置文件和数据存储。
- JSON - 一种用于数据交换的文本格式,广泛用于客户端和服务器之间的数据传输。
- LaTeX - 一种用于科技及学术类型文档排版的标记语言。
很多DSL实际上也很重要,例如SQL。
由于这些语言学习的笔记是在我已经熟悉了他们之后做的,所以笔记并不求面面俱到,而是融汇一些个人的思考。主要内容包括
- 基础:语言的一些技术细节
- 实践:一些最佳实践
- 如何错误处理
- 如何编写并发程序
- 库:常用标准库、第三方库介绍。这里介绍的都是最基本的库,顶级的框架(如Golang的web库gin)会在开发的相应章节中介绍,一些特殊的库用到了可能会稍作记录。
- 基本数据结构
- 如何处理字符串
- 如何处理时间
- 如何打日志
- 如何读写文件
- 如何访问网络
- 构建:工具链介绍
- 如何引入、管理第三方代码
- 如何编译