初学者想学习编写程序制作软件,应该先学哪一门编程语言?

对于编程初学者来说,常常会纠结于从哪一门编程语言开始,我当初也是如此。不过,在大致了解了一下各种编程语言后,我决定从C语言开始。C语言最吸引我的地方就是足够简洁优雅,但是功能又很强大。

虽然C语言的语法很简单,但它是有史以来最强大的语言之一。

如今 IT 行业更新换代的速度飞快,有很多编程语言日复一日的出现,但是能够长期存在并且发展良好的屈指可数。而 C语言已经快 50 岁还能保持如此强劲的竞争力,可以说几乎没有其他编程语言可以做到这一点。

90% 的程序员都认为C语言已经过时了,已经被 C++、java、C# 等编程语言取代了,所以完全没有必要再去研究C语言。我不知道他们为什么这么认为,但是另外 10% 的程序员和我知道一件事,如果一座摩天大楼的地基不牢固,它怎么能够抵抗时间的挑战?

C语言是1972年美国AT&T贝尔实验室一个叫 Dennis Ritchie 的人开发的编程语言,因为它是非常简洁优雅的优秀语言,所以你能总从 C++、C#、java 等编程语言中看到C语言的影子。之前的文章中,我将C语言比作编程界的“九阳神功”,学会了C语言,再学其他语言就会如有神助。

我建议编程初学者尝试将C语言当作自己的第一门编程语言,下面是我列举的 10 点原因:

  1. 直接学习 C++ 或 Java入门很简单,精通很难。要掌握编程语言,您需要对变成元素有一个很强的概念,例如多态性、类、继承等。简单的问题是,如果您不了解注入块、函数之类的基本元素,在谈到多态性、类、继承等问题时,可能只能死记硬背了。而C语言是一种从头开始的基础语言,它有今天概念赖以存在的基本概念,多态性、类、继承等概念也是由基础构成的。
  2. C++和C#是基于C语言的语言,Java也是C语言的远房侄子,C++和 Java 学习和延续了 C语言的编程概念和语法。这些编程语言是如今世界上最主要的几大语言,而它们都是基于C语言的。

  1. C++、Java和C#利用面向对象编程(OOP),而C语言没有直接的面向对象语法,这也是很多程序员觉得C语言过时的主要原因之一。不过不是所有程序都需要用到面向对象编程,很多复杂的核心程序仍然是用C语言编写的。
  2. 在性能(执行速度足够快)方面,和代码尺寸方面(足够小),C语言是无与伦比的。
  3. Windows、Unix 和 Linux 的主要部分是用C语言编写的。因此,如果您想编写这些操作系统或创建自己的操作系统,您需要了解C语言。
  4. 新设备的驱动程序总是用C语言编写的,原因在于C语言提供了对计算机基本元素的访问。它允许您通过指针直接访问CPU的内存,允许您操作和单独的位和字节。
  5. 如今,世界上几乎每一个人都会用到手机、平板、汽车、冰箱、空调、微波炉等电子设备,您可能不知道,它们都会有一个 CPU。而 CPU 需要编程,这些设备需要的系统常常被称为嵌入式系统,而这一工作常常只有C语言能够胜任,因为这些程序必须执行得很快,但是系统的内存缺非常少,看看第4点原因,您就明白为什么C语言非常适合嵌入式系统编程了。
  6. 您一定在电脑上玩过游戏。即使在今天,炫酷的3D游戏的代码编写仍然以C语言为核心。为什么?简单的原因是,当你利用鼠标扣动游戏中的扳机后,电脑需要计算大量的数据,才能使游戏中的人物开枪发射一颗子弹。为了良好的游戏体验,这一过程必须非常快,而且越快越好因此采用C语言程序计算是最佳的选择。即使在今天,在这一领域C语言也没有对手。
  7. 可以认为C语言介于高级语言和低级语言之间,是一门中级语言。以 Java 为代表的高级语言对程序员友好,它使程序的开发更快,但是程序开发完毕后的运行效率往往不够高;低级语言对机器友好,编译出的程序运行效率很高,但是开发效率比较低。而C语言具备高级语言和低级语言的优点,它既可以编译出运行效率很高的程序,又对程序员相对友好,不至于开发效率太过低下,因此C语言提供了无限的可能性。
  8. C语言是一种块结构语言。现代编程语言的第一个标志就是块结构。每一个代码都存在于单独的块中,不同块中的代码保持一定的隔离性,这为编程提供了方便,并将不良副作用的可能性降至最低。许多古老的语言,例如 BASIC,曾努力引入块结构这个概念,但是因为一开始就不是如此设计的,这一努力最终没能取得成功。

以上就是我列举出的初学者应该将C语言作为第一门语言的 10 点原因,有一点可以肯定,C语言的简洁优雅,是其他语言比具备的。

阅读更多:   杂谈
添加新评论

icon_redface.gificon_idea.gificon_cool.gif2016kuk.gificon_mrgreen.gif2016shuai.gif2016tp.gif2016db.gif2016ch.gificon_razz.gif2016zj.gificon_sad.gificon_cry.gif2016zhh.gificon_question.gif2016jk.gif2016bs.gificon_lol.gif2016qiao.gificon_surprised.gif2016fendou.gif2016ll.gif