如果你在大学学习计算机科学,课程大纲通常首先是 C 编程语言。
C让你成为一个好的算法工程师
刷过算法的同学都知道,算法试题可以使用多种语言来解决,但是对于培养算法思维,最好的语言就是c语言,因为它的简陋,因为它的灵活,很多其它语言提供的库函数或者常用功能,你都需要自己去实现,而在实现的过程中,你往往能够加深对算法的理解,加深对数据结构的理解,而编程本质上就是算法加上数据结构。
C让你离操作系统硬件更近
你可能听说过java,python,C#等编程语言属于高级语言,而c语言被称为“中级语言”,因为c语言不仅具有高级语言的特性,同时它也具备一定低级语言的特性。
在我们使用高级语言的时候,我们是无法直接访问硬件资源的,而使用c语言,我们就可以直接和硬件打交道,我们可以直接操作内存,自己管理内存的分配和释放。
对于很多硬件我们都需要一些驱动进行管理,而这些驱动都是使用c语言来编写的。
总之,高级语言更像是在一个二手房里面装修,虽然它提供了非常方便的水电接口调用,但是还是不如我们自己直接在毛坯房里面改造更阿吉灵活。
C让你能力越大,责任越大
c语言给了你巨大的能力,你可以使用它做很多事情,你甚至可以使用它创造出一门新语言,很多高级语言底层就是用c语言来编写的。
c语言可以灵活地访问内存,你可以非常方便的优化你的程序,你可以随时对内存进行管理,但是就像那句话说的,能力越大,责任越大。虽然你可以方便的管理内存,但是如果你忘记了资源的回收,那么很可能你的程序就会导致系统的崩溃。
C 让你的代码执行效率更高
因为c语言更接近底层,因此使用c语言编写的程序执行效率更高,当然一切的前提都是你是在合理地使用它。
和高级语言不同,c语言更多地是面向过程编程,它更需要我们自己对程序有抽象能力。
c语言给我们提供了访问底层的能力,因此我们可以更加方便地写出高效的程序出来。
C 让你的代码更加整洁。
与python的简洁不同,实现同样的共功能,你可能需要比python多些可能十倍的代码。随着功能复杂度的提升,这个差距可能会被越来越大。
那么如何让这个差距缩小,这就考验我们的代码重构能力,考验我们的代码整洁程度。
当你绑着沙袋练习的时候,你可能会很累,但是当你把沙袋拿掉的时候,你会体验到身轻如燕,同理,当你使用c语言能够编写出整洁代码的时候,你再使用其它语言一定会写的更加出色
结论
现代的编程语言越来越复杂,比如java语言,它提供了各种语法糖,提供了各种包,提供了各种类库,虽然它在一定程度上解放了开发人员,但是它也在一定程度上限制了开发人员。
任何东西都是有利有弊的,当你拥有的够多的时候,你必然会失去更多。
c语言虽然不如高级语言有着丰富的轮子,但是有些时候自己造轮子的乐趣和实践能力对一个人的发展更加有帮助。