# C 语言前置概念学习 如何学习 C 语言?第一步:Throw away the textbook。也许你可以通过以下途径: 以下方式难度由易到难,但并不意味着收获由小到大: 1.Video:[B 站翁恺的 C 语言课程](https://www.bilibili.com/video/BV19W411B7w1?spm_id_from=333.337.search-card.all.click&vd_source=da5a5affb1b0c71c0d7e410b1d1a3c17)(非常基础,缺点是只看视频学的过浅) 2.MOOC:[翁凯 C 课程的 MOOC 慕课](https://www.icourse163.org/course/ZJU-9001)(同上,慕课的习题和 Projects 性价比不高,几乎没有差别) 3.Web:[菜鸟教程](https://www.runoob.com/cprogramming/c-tutorial.html)(基础但是覆盖面较广,不够深入) 4.Web:[CNote](https://github.com/coderit666/CNote)(例子密集,学习曲线平滑,覆盖面广且具有深度) 5.Book:教材替换用书——《C Primer Plus》!(基础且深入的恰到好处,有一定拓展,可能后面的章节有点难懂,是一本不可多得的好书,不要忽视课本习题及 Projects) 6.MOOC:[Introductory C Programming 专项课程](https://www.coursera.org/specializations/c-programming)(全英文,好处是涉及到计算机思维,包含许多常用 tools 的教学例如 git、make、emacs、gdb,视频讲解结合文档阅读,对于 C 的重要核心知识讲解透彻,难度颇高,建议用作提升) 7.Web:[LinuxC 一站式编程](https://akaedu.github.io/book/)(难度大,枯燥硬核,收获多,基于 linux) ### 学习建议:可以选择其一或多种学习。 - 对于缺乏计算机基础(这里的基础指的是计算机的日常使用)的同学,(1、2)是不错的选择,但在学完后要选择 4、5、6 进行补充巩固提高。 - 对于有一定计算机基础的同学,直接上手 4、5、6 都是很不错的选择。 - 对于有一定 linux 基础以及计算机基础的同学,或是同时想同步学习 linux 的同学,7 是可选择的。 关于“6.Introductory C Programming 专项课程”的一些思考 该课程的免费修读需要在 coursera 上申请助学金(并不困难)[申请教程](https://zhuanlan.zhihu.com/p/394479617)。 对于以上几种方式,6 有其特殊性,6 不仅仅是对于 C 语言的学习,其其中包含的计算机思维,Tools 的使用等等都有其普遍适用性。对比其他方式(包含学校课程)不难发现,对于计算机思维的训练与提升,在一定程度上,我们存在着缺失,但它又是极其重要的,如果你希望在学习 C 的同时又有其他多方面的提升,强烈建议你试试该课程(不要被英语劝退![2.6 以理工科的方式阅读英语](https://gw9u39xwqi.feishu.cn/wiki/wikcnlNoFdSGx5FYGa0x2FtCX6g) )。 当然你也可以通过其他方式培养计算机思维以及学习 Tools 的使用。但是越早培养,越有优势。 计算机思维与计算机科学与编码能力 ![](static/Hqzbbs6iYobnxWxz11Ocfa9gnHd.png) ### CS education is more than just “learning how to code”!