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 或者其它语言都是颇有裨益的。

相关推荐
~yY…s<#>1 小时前
【刷题17】最小栈、栈的压入弹出、逆波兰表达式
c语言·数据结构·c++·算法·leetcode
EricWang13583 小时前
[OS] 项目三-2-proc.c: exit(int status)
服务器·c语言·前端
我是谁??3 小时前
C/C++使用AddressSanitizer检测内存错误
c语言·c++
希言JY4 小时前
C字符串 | 字符串处理函数 | 使用 | 原理 | 实现
c语言·开发语言
午言若4 小时前
C语言比较两个字符串是否相同
c语言
TeYiToKu6 小时前
笔记整理—linux驱动开发部分(9)framebuffer驱动框架
linux·c语言·arm开发·驱动开发·笔记·嵌入式硬件·arm
互联网打工人no16 小时前
每日一题——第一百二十四题
c语言
爱吃生蚝的于勒6 小时前
深入学习指针(5)!!!!!!!!!!!!!!!
c语言·开发语言·数据结构·学习·计算机网络·算法
羊小猪~~6 小时前
数据结构C语言描述2(图文结合)--有头单链表,无头单链表(两种方法),链表反转、有序链表构建、排序等操作,考研可看
c语言·数据结构·c++·考研·算法·链表·visual studio
洋2406 小时前
C语言常用标准库函数
c语言·开发语言