对于大部分程序员,C语言是学习编程的第一门语言,很少有不了解C的程序员。
C语言除了能让你了解编程的相关概念,带你走进编程的大门,还能让你明白程序的运行原理,比如,计算机的各个部件是如何交互的,程序在内存中是一种怎样的状态,操作系统和用户程序之间有着怎样的“爱恨情仇”,这些底层知识决定了你的发展高度,也决定了你的职业生涯。
如果你希望成为出类拔萃的人才,而不仅仅是码农,这么这些知识就是不可逾越的。也只有学习C语言,才能更好地了解它们。有了足够的基础,以后学习其他语言,会触类旁通,很快上手,7 天了解一门新语言不是神话。
C语言概念少,词汇少,包含了基本的编程元素,后来的很多语言(C++、Java等)都参考了C语言,说C语言是现代编程语言的开山鼻祖毫不夸张,它改变了编程世界。
正是由于C语言的简单,对初学者来说,学习成本小,时间短,结合本教程,能够快速掌握编程技术。
在世界编程语言排行榜中,C语言、Java 和 C++ 霸占了前三名,拥有绝对优势,如下表所示:
-- | 2015年01月榜单 | 2015年06月榜单 | 2016年04月榜单 | |||
---|---|---|---|---|---|---|
排名 | 语言 | 占有率 | 语言 | 占有率 | 语言 | 占有率 |
1 | C | 16.703% | Java | 17.822% | Java | 20.846% |
2 | Java | 15.528% | C | 16.788% | C | 13.905% |
3 | Objective-C | 6.953% | C++ | 7.756% | C++ | 5.918% |
4 | C++ | 6.705% | C# | 5.056% | C# | 3.796% |
5 | C# | 5.045% | Objective-C | 4.339% | Python | 3.330% |
6 | PHP | 3.784% | Python | 3.999% | PHP | 2.994% |
7 | JavaScript | 3.274% | Visual Basic .NET | 3.168% | JavaScript | 2.566% |
8 | Python | 2.613% | PHP | 2.868% | Perl | 2.524% |
9 | Perl | 2.256% | JavaScript | 2.295% | Ruby | 2.345% |
10 | PL/SQL | 2.014% | Delphi/Object Pascal | 1.869% | Visual Basic .NET | 2.273% |
C语言诞生于20世纪70年代,年龄比我们都要大,我们将在《C语言的三套标准,C语言为什么有这么多编译器》一节中讲解更多关于C语言的历史。
当然,C语言也不是没有缺点,毕竟是70后老人,有点落后时代,开发效率较低,后来人们又在C语言的基础上增加了面向对象的机制,形成了一门新的语言,称为C++,我们将在教程《C和C++到底有什么关系》中讲解。
最近几年,有一门新的语言异军突起,夺得了大家的眼球,它就是Python。
在我们开始学编程的时候,Python并不是那么“甚嚣尘上”,中文资料也不多,绝大部分人还是从C学起,大学的课程也是这样安排的,先学C、再学汇编、C++、Java等,把C作为一门基础语言。
现在情况不同了,有一部分初学者放弃了C,从Python开始学起,认为Python简单,容易学习,不像C那么晦涩。
其实,Python 的“简单”主要是指代码格式清晰,语法没有那么严格,例如,在屏幕上显示“城东书院”:
对比C语言的代码:
你看,Python不需要括号,也不需要最后的分号。
但是,不要被误导了,Python涉及到的编程概念和编程思想并不简单,比C语言要多要复杂。以我的实际感受,Python的学习成本并不比Java、C++小。
任何编程语言都一样,不管是你的学长学姐告诉你简单,还是你自己认为简单,其实都是错误的观念,不要被这些观念误导。
你可以认为X语言比Y语言在软件开发方面更加优秀,或者M语言比N语言在数据挖掘方面更加方便,但是绝不能认为哪一种语言更加简单。每一种编程语言都有自己的应用领域,要学习合适的语言,而不是“简单”的语言。
总之,我不认为学习Python的成本比C小。
值得一提的是,Python也是用C来开发的,如果你希望更好的学习Python,那么肯定也要学习C。