更多课程 选择中心

C/C++培训
达内IT学院

400-111-8989

C语言是经典编程语言,值得你去学习和深研

  • 发布:C++培训
  • 来源:学习笔记
  • 时间:2017-08-22 15:46

当有朋友希望我教授编程的时候,有一个问题对我很困扰。

教哪一门编程语言

我想现在大家或多或少会听说过那么几种编程语言

Java

Ruby

Go

在Wiki上还专门有一个页面列出了几乎所有的编程语言List of Programming Language。没仔细数,感觉怎么也得有几百种。我想这也是想学习编程的初学这感到头大的事情,究竟要从哪个开始学习?

PS: 编程语言列表的网址是 #/wiki/List_of_programming_languages

对我个人而言,教大家c语言是最轻松的,因为我这么多年的工作经验就是c语言。随便挑一个点,都可以讲上很久,直到把你讲晕。然而这么做没有意义。对来听的同学,学不到真的东西。而对于我,这就是随便糊弄。

在《通往财富自由》专栏,老师对知识的定义又加了一个维度—时间。有些知识的时间作用范围比较短,而有些知识的时间作用范围比较长。我想

那些时间作用维度长到一定界限的知识就是经典。

经过多日的思考,我认为c语言确实可以算得上是经典。

历史悠久

C语言在1969年由两位贝尔实验室的科学家创造。仅从年头上来看,也就四十年。但是要知道第一台电子计算机是1946年才发明的,而第一台晶体管计算机诞生于1954年。所以c语言的历史,几乎就是整个计算机发展史。

别看c语言是编程界的老大爷,他老人家身体还硬朗着呢。

这是2017年,全球编程语言的排名。大家可以看到c语言排名第二,活跃程度依然很高。然而与c语言同期的其他很多语言,几乎已经看不到他们的身影了。

看完了这张图,我突然想插入一个观点。

c语言并不难学

现在有不少不推荐入门者学习c语言的原因是觉得c语言的语法太复杂,对初学者来说不容易理解。然而这个排名却恰恰显示了这个观点是不正确的。如果这个语言的语法真的非常难学,那么应该会有更多的项目会采用更好的语言来实现。也就不会有c语言依然保持这么高排名的情况了。比如说大家几乎已经不记得的COBOL。

子孙众多

另一个可以说明c语言是经典的就是由c语言实现或者和c语言相关的语言达到了60多种。

C语言世家 网址为: #/wiki/List_of_programming_languages

这个网站上列出了这些相关的语言,其中包括了大家耳熟能详的

Java

Go

这么庞大的c语言家族正说明了c语言本身的优势。

或是运行快速

或是代码精简

或是结构简练

如果我们从生物学的角度来看,凡是后代众多的都是因为其基因强大。而c语言这么多的后代,也证明了其语言自身强大的生命力。

其中我最想强调的不是运行快速,而是结构简单。当大家去看c语言代码的时候,如果和其它语言进行比较你会觉得c语言代码简直有种“裸”的感觉。

从一个层面上讲,“裸”带来的是“慢”。正如大家知道的,用Ruby搭一个网站可能只要几分钟。但用c语言,那么。。。

但是从另一个层面讲,“裸”带来的是“活”。就好像降龙十八掌,虽然只有十八掌,但是只要内功深厚能破一切。就好像我们所说的“元认知”,虽然简单,却可以用来认知万物。就好像《道德经》中的道,能够“道生一,一生二,二生三,三生万物”。

承上启下

假入我们把编程语言的发展看做是物种的演化,那么粗略的可以把编程语言分成这么几类

机器语言

汇编语言

高级语言

机器语言基本就不是人能看的,一般能看得懂机器语言的我都称之为神。汇编语言也很难懂,除非特别熟悉计算机体系结构的。而高级语言则是我们大家通常能够见到的。比如Java, Ruby, Python这些都是高级语言。

而c语言是最接近机器的高级语言

绝大部分高级语言中出现的语法,在c语言中都有呈现。

判断

分支

循环

这几个套路在各种高级语言中都是一样一样的。从底层逻辑来讲,学好了c语言,其余的高级语言也就学会了。

而c语言还有这其他语言没有的特点—接近机器。

很多人认为这是c语言的缺点,暴露了机器的运行情况对大部分用户来说是不关心的。但是我在使用过程中却并这么认为。

了解了底层机制,你能更好理解语言的运行,发挥语言的效能

通过c语言的代码,你可以完全确认代码执行的行为。但是对于其他的高级语言,你可能必须要查阅手册,甚至是做实验你才能知道函数的行为。这点其实非常让人头疼。在这我就不举例子了,因为大部分读者应该很难理解。

那我说另一个点,为什么理解机器运行是有益的,尤其对初学者来说。最近在看python的代码,发现python中仍然对数据类型需要区分定义。比如fload64, float是区分的,但是不理解原理的就不清楚这是在说什么。

这么讲大家估计还是不懂,那我做一个类比。

就好像食堂师傅炒菜和家里炒菜,使用的锅应该是不一样的。食堂里用的应该会大一些,家里用的会小一些。食堂用小锅,那估计大厨要累死,吃饭的要饿死。家里用大锅,连放哪都不知道。而float64和float之间的关系就类似于这个食堂大锅和家里小锅的关系。

如果你知道了原理,这个概念就非常好理解。而c语言的概念中就包含了这些原理性的东西,让你在一次学习之后就能举一反三,知道这一类问题在其他语言中的处理。

这种原理性的东西和举一反三的能力,我认为就是经典。

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:重温C语言之C语言概述知识
下一篇:C语言案例-字符串的精华案例

C语言创建windows窗口实例

C++回调函数是什么?

C++ shared_ptr和动态数组

C语言有哪些关键词,C语言44个关键词大全

  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

  • 搜索抖音号

    搜索抖音号:1821685962

    免费领取达内课程视频学习资料

Copyright © 2021 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省