C 程序员进阶之路常备口袋的 10 个宝藏

虽然 Java 和 Python 等更现代的语言公认容易学习,但 C 基本上都是大学计算机类相关课程的入门语言。

为什么?这。。。

C 语言的重要性,有很多理由可以说服你。最重要的还是因为学习 C 是以后学习更高级语言的良好基础,绝大部分现代编程语言都是基于 C 语言来实现的。

当你使用其他语言做一些事情的时候,如果你了解 C 语言甚至更底层的汇编语言,你可以更好地了解你写的代码背地里到底干了什么勾当。另一个现实是,它也被广泛地使用于你离不开的各种基础软件系统,比如 Windows、Linux、MacOS、数据库、嵌入式软件等内部绝大部分代码都是用它编写。

算起来 C 语言差不多 50 岁高龄了,还很能干嘛!

如果你是刚学完 C 语言基础的入门者,或者刚从其它语言转过来,有些非常优秀的学习资料,进阶之路上,八戒希望你不错过它们。下面八戒将给大家介绍 10 个宝藏级的资源,无论是书籍、参考资料、开源项目等,都值得你收藏!

《C 编程语言》

书籍 / 在线, 作者:Kernighan and Ritchie

很久之前开始,《C编程语言》(或K&W书,有时被称为K&W书)一直被推荐为C程序员的参考手册。第一版于 1978 年发布,由 C 的原创设计人员共同编写,为了涵盖(当时新的)ANSI C,十年后发布了更新版本。

这本书无论阅读风格,或者现代性都强差人意,但在权威性上无可挑剔。如果你打算继续往 C 编程之路进发,真的应该把这本电子书下载到你的电脑上,或者买一本放在床头。

《现代 C 语言》

书籍 / 在线, 作者:Jens Gustedt

这本书比《C 编程语言》风格要明显容易阅读,而且是免费的,其中涵盖了现代 C 编程,提供的参考资料截至于 2018 年。书里内容分为几个级别,从入门到高级都有。在你使用 C 语言升级打怪积攒经验的路上,看看书中描述的初次相遇、相识和认知水平,可以拨云见日。

CS50x 计算机科学导论课

在线课程,作者:哈佛大学

这门由哈佛大学教授的在线课程,非常受欢迎,介绍了一系列计算机科学主题,包括相当多的 C 语言知识。

课程是免费提供的,包括九个长作业,需要动手实际操作完成,以及最终的一个实践项目。课程结束后,可以获得哈佛大学提供的签名证书,是不是很有面子?

基于项目的 C 语言教程

开源项目,作者:rby90

作为初学者,相信大多数的你都是通过直接看书或者研究示例代码段来学习 C 语言,这和实际项目开发还是有很大的差异。

正好,作者 rby90 开源了这个项目集合,包括基于项目的教程的分类列表,允许你构建小游戏、操作系统、编程语言、视频播放器等。

这些项目听起来有点令人不知所措,don't panic,也有很多非常容易上手的项目包含在其中。

CodeTriage

在线网站 作者:理查德·施尼曼(Richard Schneeman)

和学习绝大部分知识一样,学习 C 语言的最好方法同样是实际编写真实的项目。心理准备好了,身体还在偷懒,八戒也懂,如果你没有开始的行动,可以尝试参与 CodeTriage。

CodeTriage 是个简单的网站,将你指向需要你帮助的各种开源项目。你可以在上面找到一个看一眼就知道是专为你而设计的项目(或者闭上眼随意点击一下),查看它的问题列表,并尝试解决 bug 并回答问题。你的答案可能有错误,但是在一个更大的项目中积累实际动手的经验,真的很有启发性。

comp.lang.c 常见问题

在线网站

comp.lang.c 是一个问答列表,上面有很多老手 C 程序员提出的各种标准和有趣的奇怪问题,而且可读性非常好。

你可能会发现二十年前的 C 语言学习者就已经遇到了与现代学生相同的问题,真的太令人宽慰了。

《C 专业人士注意事项》

电子书,作者:彼得·拉涅利

这本免费公开的电子书,作为参考书内容非常详细,引导你了解从初级 C 程序员到高级工程师的各种主题,比如线程、原子、内存管理、常见 C 编程习惯用语、开发实践和陷阱的部分等。最初是基于 Stack Overflow 内容的汇编。

非常建议你将这本书放在电脑旁,可以经常翻阅。

Linux 内核编码风格

在线电子书,作者:Linus Torvalds

既然你都关注了八戒,不妨和八戒一起仰仗一下 Linux 内核的创建者 Linus Torvalds 吧。

Linus Torvalds 公开了一份电子文档《Linux Kernel Coding Style》,里边描述了长期以来流行的 C 语言代码编写风格,你可以据此和自己的代码作比较,文档里边概述的风格更具可读性,值得学习!

代码大战

项目

Codewars 是一个非常有趣的创意,把编程当成玩游戏,你接受其他学生的挑战来完成挑战,这些挑战被称呼为 kata,最终积累分数提高 kyu 的排名。除了支持 C 语言之外,还提供了多种其它语言。

《使用 GNU Make 管理项目》

书籍 / 在线电子档, 作者:梅克伦堡

入门的第一课一般都是教你使用编译器 gcc 直接编译写好的 main.c 文件,但很快随着编写代码的积累,全靠手动构建会越来越消耗精力,所以到了 makefile 派上用场的阶段。

《使用 GNU Make 管理项目》是一本关于巨著,里边事无巨细地介绍各种元素,对于掌握 C 或者其它语言都是颇有裨益的。

相关推荐
wdfk_prog3 小时前
嵌入式面试真题第 11 题:RTOS 优先级翻转与实时任务阻塞的通用治理
c语言·缓存·面试·职场和发展·架构
无相求码9 小时前
罪魁祸首:for 括号后面那个"隐形分号"
c语言
hy.z_7779 小时前
【C语言】11. 深入理解指针1
c语言·开发语言
ComputerInBook11 小时前
C & C++ 中的关键字 volatile 之详解
c语言·c++·volatile·编译器优化
智者知已应修善业12 小时前
【51单片机实现初始化数码管不显示按启动从0秒计时到60按暂停一次显示当前秒按2次恢复原始状态】2024-6-11
c语言·c++·经验分享·笔记·嵌入式硬件·算法·51单片机
小樱花的樱花12 小时前
Linux 多线程编程:互斥锁(Mutex)详解
linux·c语言·开发语言
noipp14 小时前
推荐题目:洛谷 P13554 【MX-X15-T1】奶龙龙
c语言·数据结构·c++·算法·编程·洛谷
aramae16 小时前
C++11:现代C++的里程碑
c语言·开发语言·c++·windows·git·后端
无相求码16 小时前
为什么你的第二个 scanf 还没输入就直接跳过了?C语言输入缓冲区陷阱
c语言·后端
文祐17 小时前
C语言利用数组计算矩阵乘法
c语言·开发语言·矩阵