引言
我们处于一个计算机网络高度发达,万物互联的时代,程序设计的理论和实践也在飞速发展。C 语言作为一门历史悠久且易学的语言,时至今日在许多领域仍被广泛使用。许多本科计算机专业甚至非计算机专业开设 C 语言程序设计的课程。
然而,当今部分 C 语言课程和教程乃至其他程序设计相关的课程和教程,存在一些不容忽视、亟待解决的问题。 从知识体系完整性的角度,忽视编程语言理论 (Programming Language Theory, PLT) 教学的情况比比皆是;从教学内容和教材内容的角度,谬误、过时理论和混淆观点不在少数;从程序开发工具的角度,使用过时或低效的工具链 (Toolchain) 、编辑器 (Editor) 和集成开发环境 (Integrated Development Environment, IDE) 进行教学的现象极为普遍……更多问题,暂不在此一一枚举。 上述问题的缓解直至解决,需要多方人士长期努力。 为在这一进程中做出尽可能大的贡献,Mdr-C-Tutorial 编写团队经过几年磨砺,精心编写了这套《梦猫大典:C 语言程序设计原理与实践》(英文名 DreaMeoWand: Programming Principle and Practice using C Language),供初学至中等水平的学生和从事相关工作的程序员学习或参考。
本系列教程共四册:
语法和标准库:讲解 C 语言的语言特性和标准库。 数据结构与算法:讲解常见数据结构与常用算法的原理和(侵入性和非侵入性)C 语言实现。 项目案例:聚焦 C 语言的应用领域,开发应用程序。 嵌入式:使用 C 语言及其变体开发嵌入式程序。
下面是关于本书和如何使用它的一些常见问题和解答。
你是谁?你有编写教程的资历吗?
我是个平凡的编程爱好者,梦想着用认真的心做出超越平凡的事,希望用自己的努力推动本领域的发展。
人人都可以编写教程,唯一需要的是足够的能力。我在编写过程中不断提升自己,并与各路高手共同执笔,且研究了相当多初学者的学习过程。我有信心提供一份严谨且便于读者理解的教程。
在阅读本书前,我需要具备哪些条件?
- 一台能用的电脑。运行内存不少于 8 GB,搭载未停止支持的操作系统。
- 对中文白话的理解能力和逻辑思维能力。
本书内容如此之多,我该按照什么顺序阅读?
如果一部教程只能按照页码顺序阅读,那是一种悲哀。
多数情况下,各个语言特性间、各个数据结构与算法间、各个项目间,不存在“一个是另一个的前置知识”这种关系,自然没有阅读顺序要求。
但有下列几点建议:
- 在阅读
前,确保掌握 的 1~12 章的内容。 的 1~12 章, 的 10~12 章, 的 1~5 章, 的各个项目,最好按照顺序阅读。
- 在阅读
本书的阅读重点是什么?
代码。绝大部分自然语言在代码面前都是注释。
中具有同等地位的还有证明过程。本书适合用多长时间学习?
据笔者预估,掌握每册全部内容所需时长约为:
100h, 150h。考虑到某些内容会被因人而异地跳过,所需时长可能更短。
本书可以当作教材使用吗?
完全可以。经笔者多年来对市面上流传的各个教材的了解,本书在内容的全面性和正确性上优于多数现有教材。
本书和教材内容冲突时怎么办?
多数情况下,是你的教材表述有误;但不排除本书表述错误的可能,请反馈给我们。
侧边留白中的图标有什么用?
用于说明这部分内容的某些属性,为读者阅读提供便利。
如果图标正对某个标题,则修饰该标题下的所有内容;如果正对某一自然段,则修饰该段内容。
- (logo)表明这里非常重要。
- (logo)表明这部分内容供进阶阅读。
- (logo)表明这部分内容长期被部分教程或博客错误地表述。本书说法(相对)准确。
如何获取习题答案?
习题答案代码较多,故不附在书后。可在 链接 获取(实时更新)。
有什么能帮助学习的其他形式资料?
- 参考文档:https://zh.cppreference.com/w/c
- Mdr-C-Tutorial 出品视频教程:(链接)
- Stack Overflow:https://stackoverflow.com/
如何应对相关考试?
如何反馈书中的错误?
- 官网:(链接)
- GitHub:(链接)
感谢您为本书做出的贡献。
在此感谢本书所有编写者和审校者,以及排版人员和封面设计师。哪怕缺少了你们当中任何一人的付出,本书都不会有完整的内容和灵魂。
虽经团队成员多年努力,但编写工作繁杂,我们能力有限,书中难免出现错误或疏漏之处,请广大读者不吝赐教。
向着星辰与深渊,欢迎来到梦猫大典!
星梦猫 2024.10.27