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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/325007.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

excel统计分析——两因素无重复方差分析

参考资料:生物统计学 从严格意义上讲,两因素试验都应当设置重复观测值,以便检验交互作用是否真实存在,对试验误差有更准确的估计,从而提高检验效率。但根据专业知识或先前的试验已经证明两个因素不存在交互作用时&…

万界星空科技MES系统中的设备管理模块

随时工厂数字化建设的大力推进,设备管理的效率得到了很大的提升,特别是作为机加工企业,设备是整个企业非常重要的核心资产。 MES系统主要包含了生产计划、生产过程管理、质量管理、物料管理、设备维护等多个模块,各个模块之间相互…

C++结合OpenCV:图像的基本表示方法

1.二值图像 二值图像是指仅仅包含黑色和白色两种颜色的图像。在计算机中,通过一个栅格状排列的数据集(矩阵)来表示和处理图像。例如,图1是一个字母A的图像,计算机在处理该图像时,会首先将其划分为一个个的小…

网络名称解读 -入门5

WAN: Wide Area Network(跨区域),LAN: Local Area NetworkWAN MAC, 用来连接上级网络, LAN MAC, 用于内部网路。 LAN & WAN 3.1,LAN表示子网,通过掩码来筛选子网内主机数量&…

JS/JQ实现小程序/H5验证码页面

话不多说&#xff0c;先上效果图 核心代码 1、html/css关键代码 <div class"obtain-verification-code"><div class"obtain-verification-code-input-content"><input id"input-0" class"verification-code-input" m…

Nodejs+express后端学习笔记(1)

1 Node.js安装 1、下载安装包&#xff1a;进入官网&#xff08;https://nodejs.org/en&#xff09;&#xff0c;下载左侧的稳定版。 2、选择安装位置&#xff0c;不用勾选自动安装必要工具。 其他都默认Next。 配置环境&#xff0c;具体参考本文章&#xff1a; https://blo…

Java学习笔记(四)——正则表达式

文章目录 正则表达式基本规则字符类(只匹配一个字符)预定义字符(只匹配一个字符)数量词练习正则表达式插件 爬虫利用正则表达式获取想要的内容爬取网络信息练习有条件的爬取贪婪爬取非贪婪爬取正则表达式在字符串中的使用 分组捕获分组正则表达式外部使用非捕获分组正则表达式忽…

Kodi 开源多媒体播放器

Kodi (原名 XBMC) 是一款经典开源免费、跨平台且极其强大专业的多媒体影音播放器&#xff0c;包含专业的影音内容管理以及解码播放功能于一体&#xff0c;提供适合在手机/电视/投影/大屏幕上显示的全屏界面&#xff0c;无线手机遥控操作方式&#xff0c;以及功能相当丰富的插件…

vue icon 本地正常 线上打包失败变乱码

出现这个原因是因为sass解析的问题 Node版本高的话可以通过升级sass版本 并且配置vue.config规避这个问题 //给sass配置的东西 这个对应的版本是sass 1.39.0 本人node版本v14 升级sass版本后出现报错css: {loaderOptions: {scss: {additionalData: import "/styles/var…

CSS新增文本描边-text-stroke属性

-webkit-text-stroke属性 概念&#xff1a;-webkit-text-stroke属性为文本添加描边效果。所谓的描边效果&#xff0c;指的是给文字添加边框 语法&#xff1a; -webkit-text-stroke:width color;Chrome和Firefox这两个浏览器都只能识别带有-webkit前缀的text-stroke属性 -web…

代码随想录刷题第三十九天| 62.不同路径 ● 63. 不同路径 II

代码随想录刷题第三十九天 不同路径 (LC 62) 题目思路&#xff1a; 代码实现&#xff1a; class Solution:def uniquePaths(self, m: int, n: int) -> int:dp [[0 for _ in range(n1)] for _ in range(m1)]dp[0][1] 1for i in range(1,m1):for j in range(1, n1):dp[i]…

​电脑技巧:​笔记本电脑电流声的原因和解决方案

目录 一、音频设备接口接触不良 二、笔记本电源问题 三、笔记本电脑驱动程序问题 四、音频硬件问题 五、操作系统内部电磁干扰 六、最后总结 大家在日常生活当中&#xff0c;笔记本电脑已经成为我们工作、学习和娱乐的重要工具。但有时我们在使用过程中可能会遇到一个令人…