正文 1 - 在开始编程之前
1. 什么是编程
1.1 定义
1.2 编程的两个起源
- 两个计算模型 图灵机 (Turing Machine) 和 lambda 演算 (Lambda-calculus)
- 命令式编程 (Imperative Programming) 和 函数式编程 (Functional Programming)
1.3 编程语言 (Programming Language)
- 编译型 (Compiled) 语言和 解释型 (Interpreted) 语言
- 主流编程语言
2. 学习编程的方法和建议
2.1 多敲代码
- 实践是检验真理的唯一标准
- 敲过才算学过
2.2 学会看报错,看日志文件 (Log)
2.3 使用搜索引擎 (Search Engine) 查找资料
2.4 博客
可以发博客分享自己的心得或提出自己的疑问
2.5 学会使用 GitHub
GitHub 是世界上最大的代码托管网站,上面有大量优秀的开源项目
2.6 关于
2.6.1 关于人工智能 (Artificial Intelligence, AI)
了解一下 Prompt Engineering
2.6.2 关于编程交流群
详见 编程交流群生存指南
2.6.3 关于手册 (Manual) 和标准文档
自然语言是注释,代码 更重要
2.6.4 关于黑子
C 有 很多 值得黑的地方,不过黑的话要拿出证据来(当然这些证据也 俯拾即是)
2.6.5 关于更高级的东西
txt
Talk is cheap, show me the code.
Code is cheap, show me the proof.
txt
Talk is not cheap.
3. 学习编程必需的能力
- 搜索引擎 的使用 主流搜索引擎见 2.3 使用搜索引擎查找资料
- 寻找 官方网站,注册账号,与下载 正版软件 的能力
- 基本的 英语 水平,要理解 报错信息 的内容
- 合理 提出问题 的能力,详见 编程交流群生存指南
4. 关于 C
4.1 发展历史
- 机器码
- 汇编
- ALGOL CPL BCPL
- C
4.2 标准
- ANSI C(被 ISO 采纳)
- 从 C89 到 C23(建议大家有空了看看标准)
4.3 编译 (Compile) 过程
- 8 个翻译阶段
- 预处理器 (Preprocessor)
- 编译器 (Compiler)
- 汇编器 (Assembler)
- 链接器 (Linker)
4.4 应用领域
- 系统编程:操作系统 (Operating System, OS),编译器 (Compiler),数据库 (Database, DB) 等
- 嵌入式开发,物联网 (Internet of Things, IoT)
- 网络编程
- 图形图像处理
4.5 推荐网站
- C++ 参考手册 学习 C 和 C++ 必备网站
- Compiler Explorer 在线编译器,支持 生成汇编 等多项功能,支持非常多的语言和多种编译器
- 牛客网(New Coder) 大量练习题,需要会员 点击 在线编程-语法篇-C 语言入门 点击 专项练习-编程语言,选择 C 语言
- Codewars 偏实际应用的题目,注重语言特性和实践,需要登录后使用 登录后初始化账号,鼠标移动到左边打开侧边栏,点击 practice
4.6 推荐的 C 书籍
C Primer Plus 第六版(中文版)
(这本书也有很多地方有问题,但找不太出来更好的书了)
习题答案暂时见 这里
注意 Primer 的 读音……
不读 “普瑞么”
5. 开发工具
5.1 编译器
- GCC
- Clang
- MSVC(充话费送的)
5.2 编辑器 (Compiler) 和 集成开发环境 (Integrated Development Environment, IDE)
别弄混代码编辑器 (Editor) 和编译器!!!(否则就等着群友骂你吧)
轻量编辑器 VS Code(Visual Studio Code,简称 VSC)但是需要自己配环境;如果官网下载特别慢的话,复制下载链接,把链接中的
az764295.vo.msecnd.net
换成vscode.cdn.azure.cn
普遍应用于 Linux 的最佳开源编辑器 Vim
什么是 IDE(Integrated Development Environment)
Dev-cpp 和 Code::Blocks(简称 C::B 或 CB)
Visual Studio(简称 VS)(十分庞大) 由于 VS 中集成的编译器 MSVC 对 C 的支持是“充话费送的”,不推荐 使用 VS 写 C 语言程序
JetBrains CLion 可以在官网或 JetBrains Toolbox App 下载
在线 IDE Lightly
5.3 CMake 和 XMake
5.4 debugger
IDE 一般会自带 debugger
6. 推荐阅读或学习
- SICP (Structure and Interpretation of Computer Programs) 第二版 (用 Scheme 写的那个版本,而不是 Python)
- UML
- pl-docs
- ISO C 标准文档 如果有精力,非常推荐阅读 C 语言标准,上面有丰富的示例和规范的说明 各版本 C 语言标准文档获取如下:
- 点开 cppreference
- 向下翻,找到 C 参考手册 的 外部链接
- C 语言及库参考 中的 PDF 就是标准文档,编号(n 后面的数)越大越新