编程入门

编程入门

编程语言

定义

编程语言是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。

什么是编程

编程语言是具有不同层次的,有机器语言,汇编语言,高级语言。要理解编程语言的层次,我们要从什么是编程说起。

从上面对编程语言的定义来看,我们可以简单的把编程理解为人与机器交流的语言。可是人类和机器接受语言的形式是不一样的。

  • 对于人类来说,语言是由词汇组成的语句段落,词汇(或者说构成词汇的字母)是人类语言的基本单元,词汇组合在一起从而传达信息。
  • 对于机器而言,能够接受的语言形式则是0,1字符串(从硬件上来看就是电位的高低与否),总之机器的语言便是0,1串,如0111101111对于机器而言可能代表了一定的指令信息。

那么编程所要做的事情就是把人类交流的语言和机器的语言联系起来。然而很不幸的事情是人类通用的语言逻辑过于复杂且充满了模糊性,这是目前的计算机技术所无法实现的。而编程语言正是为了解决这个问题所诞生的一种语言,我们通过设计特殊的语法,使得编程语言不在像我们日常使用的语言一样复杂且模糊,使得它更加接近计算机所能接受的逻辑。这是从目的上来理解编程语言。就是为了让计算机听的懂人话。

当然我们也可以从另一个角度来理解,机器语言由0,1串构成,对于人类来说简直难以忍受,试想如果我们都用01串来沟通交流,那是多么可怕的一件事情。然而事实上,最早的编程人员就是用机器语言来编程,那个时候的计算机还是使用晶体管(总之就是比较low),他们会制作一堆插线孔,插上了就代表1,没有插上就代表0。所谓编程对他们来说就是插上成千上万根线,有一根线插错了也不行。这也就是为什么老一辈的人都认为电脑是一个特别难的东西,大概是当初留下了心理阴影。

正是因为机器语言这么麻烦,早年的程序员们自然就受不了了。为了方便自己方便后人,他们就发明了汇编语言。这个汇编语言说白了就是把01串用人话表示出来。汇编语言其实就是一个个简单的字母指令串,它包含了人们通常会让计算机做的指令,比如加(add),减(minus),还有变换地址等。从此程序员们就告别了使用插线板编程的苦逼的时代。人们开始通过汇编语言的指令串来指挥计算机,而机器内部又自有一套对应关系将这个指令集转变为机器语言让计算机读懂。

然而,汇编语言虽然相对于机器语言非常简单,但其实仍然特别麻烦,至少我是没有完全学会的。。。所以,伟大的程序员先驱们有创造了更加简单的语言,也就是LISP,Fortran,C,C++等高级语言。这些高级编程语言对于我们人类来说就更为友好了,至少比一大堆01串或者指令集友好的多吧。

但是这些高级语言们虽然对人类友好了,可是机器读不懂啊,所以就需要有一个翻译官来把高级语言先翻译成汇编语言。我们把这种翻译的过程叫做编译,把这个翻译官叫做编译器。(当然这个编译器本身其实也是一个程序了,以至于我曾经一直在想第一个编译器是用什么编译的,大概是某个大佬不辞辛劳的用汇编语言写了一个编译器吧,感谢大佬!当然对于大部分的coder来说是不需要知道编译器是怎么做的,用别人做好的就可以了。。)

什么是C语言

首先C语言是一门高级编程语言,至于为什么高级当然是和汇编语言和机器语言来比了。

其次C语言是一门面向过程的语言,至于什么叫面向过程又不得不提面向对象吧,提到面向对象又不得不提C++,java等语言了。作为一个嫌麻烦的人还是先不解释吧,等后面提面向对象的时候再说。当然这个也可以自己先脑补一下,有助于脑洞开发。

编译器配置

新手上路

作为一个新手而言呢,其实编译器有两种选择。

  • 第一种选择是自己配置 编辑器 + 编译器 的组合比较能够锻炼你的编程能力,当然也不好说,现在各种编程工具也是厉害,能用的好也是殊途同归。至于常用的编辑器有 Atom, Sublime text, notepad++,vim,emacs等,当然原则上你用记事本写也是可以的。对于编译器最常用的就是gcc了。具体使用方法就视编辑器不同了。

  • 第二种选择是使用特定的IDE(集成开发环境,Integrated Development Environment),通常来说使用简单,功能强大。作为一个windows用户,我自己最早用的是Visual Studio。功能强大,而且是微软自己家的,有庞大的技术支持。但是缺点就是其他系统用不了,而且比较大,功能太过齐全很多组件用不上。

Visual Studio的安装和使用

参考教程

注意visual C++中包含了C语言。

学习资料

菜鸟教程
imooc教程

参考资料

维基百科:C语言

维基百科:编程语言