一定要好好学习C语言

提到 C 语言,很多人的第一反应是:C 语言,不都过时了?还有必要研究吗?

当然有必要。用一个词来形容:C 生万物

203ddd4416c61f5343c243ca5476d2a7.png

大量重量级软件都是C写的,比如

操作系统:Linux,UNIX,IOS内核,windows内核,Android内核

虚拟机:jvm虚拟机,CPython

后台服务器:Nginx,libev

中间件缓存:Redis,Memcached

数据库:MySQL,SQLite

编译器:GCC,GDB等

云计算laaS: 计算-kvm/qemu,网络-Linux/DPDK,存储-Linux/SPDK等

可以看到,整个世界的基础架构都是在 C 语言之上运行的,C语言是你必须学习的语言。因为这个世界上绝大多数编程语言都是 C-like 的语言,也是在不同的方面来解决 C 语言的各种问题。学习C语言是一个合格的后端程序员的必经之路

d96822b9ea3baab4ff9a734de9a80594.png

主流操作系统是 C 写的,绝大多数语言的编译器也是 C 写的,数据库、网络、硬件驱动、服务器应用等等,都是 C 写的。说霸气点儿,这个世界就是在 C 语言之上运行的。而且在这些领域,C 语言是完全的“垄断”,连竞争者都没有。

所以,扎心的就来了——“会不会 C 语言是软件工程师和社畜的分界线” 。毕竟,真正的高手,就得掌握计算机是如何组成的,程序是如何运行的,编译器是如何把高级语言转化成 CPU 指令的,网络设备是如何传送数据的...等等,而这些,都要跟 C 语言打交道,说白了,C 语言就是内功。

而且众所周知,现如今几乎所有的编程语言,都是以 C 语言为基础拓展的:C++、Java、Go、Python、JS 等等,所以你会发现,学好了 C 语言,别的语言都很容易上手,更不会因为“语言层出不穷”而焦虑。当然,你也可以跳过 C 语言学其他的语言,不过,技术债迟早是要还的

不夸张地说,想要成为高手,就必须吃透 C 语言。只有如此,你的技术之路才能走得更远。

所以,与其吐槽说 C 语言“过时”,不如想想,如何更好地拥抱、使用它。毕竟,大部分人学 C 之路都颇为坎坷,会遇到很多困难,比如:

  • C 语言的的语法很基础,但学完又感觉什么都不会?

  • 指针是如何灵活使用内存的?

  • 如何编写高性能代码?

  • 编译器在链接程序时发生了什么?

  • ....

我的经验,学好C语言,除了简单的语法外,更重要的是要搞懂 C 程序从编写到编译,再到被运⾏的整个细节。分享我当初的学习路径:

  • 掌握基本语法,理解 C 程序的运行细节;

  • 掌握标准库,性能优化以及工程化内容,搞懂如何写一个可以用在生产实践中的 C 程序

  • 掌握编译、链接、加载以及和操作系统的交互,搞懂 C 程序是如何运⾏起来的。

当年我啃的时候并不容易,难点在于系统性的资料不好找,市面上所谓“0 元送、免费”的资料,不仅只有基础语法,更是零散不成体系,学了一堆跟没学一样,云里雾里的。

体系化这个层面,我还是比较推荐老朋友「极客时间」的,他们最近出了个专栏 ——深入 C 语言和程序运行原理》,早在专栏打磨阶段,我就参与了调研,现在上线了,读了几篇,还不错,想跟大家分享一下,先来看专栏总结的学习路线图,建议收藏👇

b15e09678d5b993486785956a27d212e.png

这个专栏最大的感触是 —— 完全按照程序员的学习痛点来设计的:

先聚焦于 C 语言的核心语法,带大家了解编译器是如何在机器指令层面实现它们的;其次介绍现代 C 语言标准库中的一些重要功能,及背后的运作机制;接着详解适合编写高性能的 C 代码,也是工程化相关的重要内容。最后,探讨二进制可执行程序是如何在与操作系统的协同工作下被运行。

从这 4 个层面,跟着看下来,你就能深入理解 C 程序的完整生命周期。原价 129 元,用极客时间「隐藏优惠」到手¥89

扫码看目录、免费试读👇🏻

12247493caf8398603b8a408ee7f3b54.png

早鸟+口令「cyuyan666」

到手仅¥89

新人无需口令,¥59 拿下

C 语言高效学习路径

专栏作者是「于航」,PayPal 技术专家,也是 QCon 和 GMTC 大会优秀讲师和出品人。18 年那会,还深度参与了 Emscripten 编译器工具链项目的研发工作,在推动国内 Wasm 技术的发展和落地实践方面出了不少力。

最早是在极客时间的「每日一课」里看到他出的视频,对他提到的 C 语言的学习方式,印象非常深刻,而这次专栏的设计逻辑就是:聚焦 C 语言核心语法实现C 项目工程化技巧 → 深入 C 程序运行。

主要分为四个模块:

  • 前置篇

专栏中涉及到了计算机体系结构、汇编语言等较为底层的基础知识,为避免读者的知识盲区,所以会快速带你了解汇编语言、寄存器等内容,并且回顾一个 C 程序从编写到运行的完整过程;还会用一个比较复杂的 C 程序,带大家快速回顾 C 语言的核心语法。

  • C 核心语法实现篇

梳理 C 语言7大核心语法“背后的故事”,带你了解编译器如何在汇编层面实现这些语法。通过这一模块的学习,你会对 C 程序的运行细节有着更深刻的理解,从而可以更好地掌握并优化程序运行。

  • C 工程实战篇

介绍 C 语言在大型工程实战的必备技巧。包括:

  • 快速掌握 C 标准库的重要功能,以及这些功能背后的实现原理;

  • 掌握编写高性能C 代码、编码规范、结构化测试与编译等,这些 C 项目工程化的实用技巧。

  • C 程序运行原理篇

介绍 C 程序是如何通过编译,并最终被操作系统运行的。程序的运行涉及到众多与操作系统的交互细节,你将在这个模块里详细了解。

说了这么多,一起来看下目录吧下面👇🏻

40408044bd130b27150301c9edb312c0.png

再说一遍优惠:

原价 129 元

早鸟+口令「cyuyan666」

到手仅需¥89

新人无需口令,¥59 拿下

扫码看免费试读👇🏻

9adab79124d14ae1569b5aff7ea0d067.png

时至今日,C 语言作为最“古老”的编程语言之一,仍然“老当益壮”、生生不息。这一切靠的不是巧合,而是绝对的实力。

而要发挥 C 语言的最大威力,我们就不应该只简单了解它的语法,而应该在此基础上进一步了解代码如何被编译,程序如何被运行。只有当完整的“链路”建立在脑海中时,你才对程序有了最完全的把控。

点击「阅读原文」👇🏻,这次吃透 C 语言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值