敞开掘金生长之旅!这是我参与「掘金日新计划 12 月更文挑战」的第8天,点击查看活动概况

那么今日的文章标题是《从1024开始,咱们漫谈编程的本质》,首要会先真正的了解下1024的来历和含义,其次便是对编程这件工作的考虑和感悟,探求其本质,咱们才干越发的了解和掌握它。

从1024开始,我们漫谈编程的本质

1 为什么是1024?

1.1 “程序员”节的前史

在网络上收集到的一些资料:

2002年,俄罗斯程序员Valentin Balt收集签名,向俄罗斯联邦政府请愿将9月13日设定为程序员节。

2009年9月,“程序员节”从此成为了俄罗斯的一个正式节日。 除了俄罗斯之外,其他国家的一些程序员社区也会庆祝这个节日。为什么会选9月13日呢?由于它是每年的第256天(闰年便是9月12日)。256这个数字对程序员来说有着特别的含义,1个字节(等于8位元)最多能表明256个数值,而且在整年中,256是2的最大幂中小于365的值。

1.2 1024的来历

在我国,为什么变成了1024呢?

由于一般计算机采用二进制计数,而2的10次方是1024,而且计算机中许多东西和1024打交道,比如存储单位换算等等,因而在国内每年的10月24日被咱们亲切称为程序员节。

2 编程和程序的本质

2.1 编程便是与机器对话的方法,程序便是算法与数据结构

首要咱们人类为什么要研究计算机,我认为起先便是需求添加功率,让计算机代替人安装一定逻辑去做一些杂乱的计算工作,而且由人来操控计算机,那么操控除了开关等按钮以外,咱们需求更好更精细化的操控,那么就触及到了编程,编程简略来说便是编写程序,而且让计算机可以理解和运转咱们的程序,因而咱们可以把编程亲切的理解为与机器对话的方法,即编程 = 更好的与计算机对话

那么编程中做的最重要的工作是什么?

对,便是写程序,在大学上第一节程序规划课的时分(应该是C言语程序规划课),教师一定会告知咱们这个公式:程序 = 算法 + 数据结构

不出意外的话,算法课和数据结构课的教师也会再别离告知一次(可能是由于重要的工作要说三遍~),除此之外我认为数据也相同重要,由于咱们写程序的目的便是处理和传输数据。

曾经在拜读李才智教师的博文的时分记得他曾说过的一句话:技能是通用的,算法是揭露的,只有数据需求自己去收集。因而在咱们所处的“大数据时代”,在编程中对数据的依靠也变得越发重要。

2.2 计算机是怎么辨认咱们的程序代码的?

核心的地方就在于:编译器(英文:Compiler)

由于咱们的计算机CPU只能辨认二进制的指令,可是咱们敲出来的代码却都是英文单词或字母以及数字(高档言语),那么CPU在履行之前,咱们就需求把咱们的代码改造成CPU可以履行的二进制指令,而这个进程就称之为编译,编译器便是进行计算机进行源代码编译的重要载体。

从1024开始,我们漫谈编程的本质
编译的概念:将高档言语(源言语)编译成汇编言语或机器言语(目标言语)的进程。

关于编译器的原理我推荐咱们看下这个视频,全英文解说非常易懂:【极简编译器原理】

不仅讲述了CPU的功能、编译器将源代码转换为计算机可履行的程序,还对编译原理中的源代码 -> Token -> 抽象语法树 -> 汇编代码 -> 可履行二进制文件的几个不同进程做了动态演示。

2.3 怎样写好咱们的程序

关于怎样写好咱们的程序,这个在不同场景使用不同的编程言语或规划风格,准则应该是不完全相同的,可是一些通用性却是有的,欢迎咱们来读我的另一篇文章:《怎么写出更加高雅的代码》

3 难忘的Hello World

最终,咱们重温一下当年初出茅庐时向那个”最简略的国际问好”的感觉

Go版别:

package main
import "fmt"
func main(){
    fmt.Println("Hello World!")
}

Java版别:

public class Main{
    public static void main(String[] agrs){
        System.out.println("Hello World!");
    }  
}

Python版别:

print("Hello World!")

C言语版别:

#include 
int main(){
    printf("Hello, World");
    return(0);
}

省略部分其他相同伟大的编程言语版别的Hello World……