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

简介: 从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能够执行的二进制指令,而这个过程就称之为编译,编译器就是进行计算机进行源代码编译的重要载体。


网络异常,图片无法展示
|


编译的概念:将高级语言(源语言)编译成汇编语言或机器语言(目标语言)的过程。

关于编译器的原理我推荐大家看下这个视频,全英文讲解十分易懂:【极简编译器原理】

不仅讲述了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......


相关文章
|
弹性计算 Shell 网络安全
因为 /usr/bin/dbus-daemon 共享库文件引发的系统启动异常
因为 /usr/bin/dbus-daemon 共享库文件引发的系统启动异常
数据结构界的三大幻神----栈
数据结构界的三大幻神----栈
353 1
|
6月前
|
人工智能 自然语言处理 安全
Command R+ 2026前景分析:企业级RAG王者,能打破巨头垄断吗?
今天深度解析Cohere企业级大模型Command R+ 2026关键升级:聚焦RAG(检索增强生成),吞吐量↑50%、延迟↓25%,128K上下文精准处理长文档;安全模式可定制,支持私有部署;成本比GPT-4o低44%,中小企业首选。不堆参数,只讲实效。(239字)
|
10月前
|
机器学习/深度学习 自然语言处理 机器人
阿里云百炼大模型赋能|打造企业级电话智能体与智能呼叫中心完整方案
畅信达基于阿里云百炼大模型推出MVB2000V5智能呼叫中心方案,融合LLM与MRCP+WebSocket技术,实现语音识别率超95%、低延迟交互。通过电话智能体与座席助手协同,自动化处理80%咨询,降本增效显著,适配金融、电商、医疗等多行业场景。
1307 155
|
监控 安全 机器人
电话客服热线系统的详细搭建方案(十大关键要素)
构建高效电话客服系统涉及需求分析、话务量估算、系统规划与设计、多渠道集成、智能化升级和安全措施。需求分析包括客户调查、数据分析、竞争分析和焦点小组讨论,以确定服务模型和规模。系统设计需选择合适的服务模型、技术工具,并设计呼叫流程。多渠道接入与在线客服可提升客户体验,智能化技术如智能语音和文字机器人则提高效率。技术实施涉及硬件和软件选择、系统集成、测试与调整。安全方面,要设计安全策略,实施安全技术,并持续监控。人员培训与管理确保团队能力,运营和优化则关注日常管理、系统优化和后期运维。部署方式包括云端和本地化,租用和自建,各有优劣。电话客服系统对提升客户满意度和企业形象至关重要。
2512 152
|
机器学习/深度学习 数据采集 监控
多宠识别原理、应用场景及代码示例
多宠识别基于计算机视觉与深度学习技术,通过目标检测(如 YOLO、Faster R-CNN)和图像分类(如 ResNet、EfficientNet),实现对多只宠物的种类、姿态及行为的精准识别。其核心流程包括数据预处理、模型训练与推理输出,广泛应用于宠物医院健康管理、智能家居安防监控等场景。文中提供了基于 PyTorch 的代码示例及多种预训练模型(ResNet、VGG、Inception、EfficientNet)的使用方法,帮助开发者根据计算资源与精度需求选择合适方案。
1252 0
|
关系型数据库 MySQL iOS开发
干货文:Mac 中 .bash_profile 和 .zshrc 的区别
干货文:Mac 中 .bash_profile 和 .zshrc 的区别
2757 1
|
存储 Java 数据处理
响应式流的核心机制——背压机制
响应式流的核心机制——背压机制
958 1

热门文章

最新文章