2016年,C是GitHub上排名第9的最活跃语言,全年有202k提取请求。将其与前三种语言进行比较:JavaScript的请求数量为1,604k,Java的请求数量为763k,Python的请求数量为744。乍看之下,Ruby,PHP,C ++和CSS也击败了C。
乍一看,似乎C被更新颖,更新鲜,更令人兴奋的语言所遗弃-C 毕竟已有45年的历史了-但是GitHub并不是软件行业的最准确描述。 GitHub对开源和流行趋势有很大的偏见。
C并非一成不变的语言。实际上, IEEE Spectrum 杂志将其列为2017年排名第二的领先语言,领先Java,C#和JavaScript。如果您今年要学习C,那不是会浪费您的时间或精力。这有五个原因。
1。对计算机的更深入了解
您可能已经听说C是一种“底层语言"。在编程的上下文中,“层次"是对您与计算机本机指令集的距离的描述。 。级别越低,您越接近编写机器代码。级别越高,该语言进行的抽象就越多,从而使您无需编写机器代码。
C是具有某种抽象的低级语言。您可以编写与硬件相当接近的代码并直接操作内存,而在Java之类的高级语言中,该语言本身通过垃圾回收器处理内存。
导致C语言难以学习的原因,这也是C语言程序员趋向于与计算机工作方式保持一致的原因。为了编写出色的C代码,您必须像计算机一样思考:内存管理,输入/输出流,字节顺序等。
确实存在比C低的语言(例如,汇编语言),但是C几乎与您想使用的语言一样低。
2。它保留了大多数低级语言的功能和控制能力,但仅对人类可读的代码进行了抽象就足够了。
2。轻松学习其他语言
一些程序员喜欢说“一旦您知道一种编程语言,您就几乎都知道它们。"尽管令人鼓舞,但事实并非如此-除非您学习C。
问题是,当您向上抽象时,从一种语言切换到另一种语言是最顺畅的。从较低级别的语言(如C)到较高级别的语言(如Python),是很容易的,因为Python会更多地帮助您。但是从Python到C?不太容易。
或者考虑另一个示例。 C#是当今新手的流行第一语言,特别是对于那些想要从事游戏开发的人(因为心爱的Unity引擎使用C#)。但是,即使C#语言是高度抽象的并且易于使用,但是新手经常会因为他们不了解所抽象的东西而感到困惑。
通过学习C,您“基本上是在学习现代编程的基础。如果您真的能够理解C,那么您将可以选择任何其他语言,因为几乎每种现代语言都比C更高。
C的低级性需要付出一定的代价:复杂性和乏味。
将其视为制作火腿三明治。在高级语言中,您可以使用makeSandwich(“ ham")方法生成即食三明治。在C语言中,您必须编写自己的makeSandwich()函数,该函数收集并准备所有必需的成分,组装三明治,然后将所有内容放回原处。
一方面,能够控制三明治的每个方面都很棒。您甚至可以编写一个更快的makeSandwich()来跳过某些无关的步骤。但是有时候您只是想让别人做一个三明治,为您制作的食物通常比您自己制作的食物好吃。
大多数现代语言都是为应对另一种语言的缺点而诞生的:C ++响应C,响应C ++的Java,响应Java的C#等。通过学习C,您可以更好地理解为什么某些语言是按原样设计的,并且可以更好地理解高级语言所提供的便利。
4。非常规项目和应用程序
大多数现代编程语言用于相同的三件事:业务应用程序,Web和移动应用程序以及数据分析。
高级语言非常适合这些应用程序因为不需要深入研究计算机体系结构的细节。取而代之的是,快速的开发周期和强大的手持控制权-使用高级语言的两个主要好处。
但是,如果您要开发直接与硬件接口的软件,您将需要一种较低级的语言-并且C语言是最常用的语言。值得注意的应用包括操作系统,编程语言和编译器,嵌入式系统,游戏引擎等。
例如, Linux内核是用C和Assembly编写的。诸如Python,PHP,Perl和Ruby之类的流行语言都是用C实现的。您知道吗,甚至C也是用C编写的?而且由于许多嵌入式系统都有严格的资源限制,所以C通常是首选语言,因为它的开销很小。
5。改善您的工作机会
有两种方法可以保证在软件行业中的工作:
高要求职位涉及可在多个领域中使用的流行语言:JavaScript,Python和Java是最好的例子。供不应求的职位往往涉及过时的语言,遗留系统和不起眼的项目。 C很流行,但是C程序员正在逐渐减少。
由于大多数编程新手训练营和在线培训课程都将新手程序员推向高要求的语言,因此您可以通过学习C来与众不同。 这可以提供许多高级语言无法提供的工作机会。
C入门
C并不容易学习,尤其是如果这是您的第一种编程语言。这就是为什么我们建议在深入学习之前阅读以下三篇文章:在学习编码之前先问自己的问题,如何在没有压力的情况下学习编程,以及掌握一种新的编程语言的技巧。
认真学习C的人,一定要从 C编程语言,第二版(通常称为“ K&R")开始。基本上就是C编程圣经。它已经很老了,但是其中的所有内容今天仍然适用于C语言。完成学习后,您可以阅读C89,C99和C11语言版本中发生的更改。
如果您买不起这本书,请从书。它已不再印刷,但仍可以在线以HTML形式全文获得。
标签: