编程的本质是什么?

本文探讨了编程的本质,将编程比喻为将现实世界的问题映射到计算机的IPO模型(输入、处理、输出)中。通过抽象和模型建立,程序员使用编程语言将线下任务转化为线上程序,实现问题的解决。编程的目标是利用计算机解决现实问题,而编程语言是连接现实与计算机世界的桥梁。
摘要由CSDN通过智能技术生成

作者:白色蜗牛 

来源:蜗牛互联网

当我们怀着一腔热忱或者对高薪的渴望,投入到软件开发这个岗位,成为程序员这个角色后,我们的核心职责就是使用计算机编写程序,俗称抱着电脑写代码。

只要有一台电脑连上网,我们就能工作。但写了那么多代码,我们有想过编程的本质是什么吗?

《教父》里说过:花半分钟就看透事物本质的人,和花一辈子都看不清本质的人,自然是不一样的人生

所以我们尝试思考下编程的本质,或许可以让我们走的更远。

对于编程这件事,编写程序,就字面意思来讲,事情的结果是程序

程序是啥意思呢?

广义上的程序是指,一系列的动作以相同的方式执行,在相同的环境下,总能得出相同的结果

你比如开银行卡账户,你需要准备好材料,像身份证,去银行填表,核身,签字,最后拿到一张属于你的银行卡。

换一个人也要走同样的程序,同样要备好材料,填表,核身,签字,同样要到银行办理,同样最后拿到了银行卡。

你会发现,定义里面有三个相同,也就是程序最大的特点就是重复

只不过上边例子里的重复,是在银行这个地方发生的。每天做着相同程序的业务,只是不同的客户,不同的柜员。

但开卡业务只能在银行办理,这就很受局限了。我得花费时间和体力,跑到银行,还得挑银行上班的时间。那有没有办法,我不去银行也能把银行卡开下来呢。

计算机互联网的出现,就解决了这个问题。

要交的材料,要走的程序,要拿的卡,都不变,只是整个操作环境,从线下的银行,变成了线上的某个载体,可以是个 PC 端 Web 网站,也可以是个移动端 APP。

线上就是指互联网,它能够让信息的传递跨越空间,而操作的载体,无论是 Web 网站 还是 APP,背后都是计算机程序。

从前你要花一个小时坐公交去银行,如今足不出户点点手机就能办理业务。

计算机上的这些程序从哪来的?

就是程序员编写的

所以程序员要做的事就是,把线下现实世界的事情,编到线上计算机里来做

这有点像电影编剧的角色,都要取材于现实。

不同的是,电影编剧会充分虚构,保证艺术源于生活又高于生活,产出物是一两个小时的影像。

而程序员要充分还原现实,保证程序符合正常逻辑不会错乱,产出物是电子设备上的应用程序。

那编程的目的就很清晰了,用计算机来解决现实世界的问题。

无论是现实世界还是计算机,我们做一件事,都需要有三个核心要素:输入(Input)、处理(Process)和输出(Output),简称 IPO

编程就是把现实世界的问题,映射到计算机的 IPO 中。

那怎么把现实世界的问题映射到计算机的 IPO 中呢?

我理解要通过模型。

什么是模型?模型是指用一个较为简单的东西来代表另一个东西

如果要简单化一个东西,那就需要对这个东西进行分析,然后抽象

抽象的维度,决定着最后软件的形式

如果对计算机本身进行抽象,那软件就会以机器代码或汇编语言的形式呈现。

如果对计算处理逻辑进行抽象,那软件就会以非结构化的高级语言呈现,比如 Basic。

如果对问题领域过程进行抽象,那软件就会以结构化的高级语言呈现,比如 C。

如果对问题领域元素进行抽象,那软件就会以面向对象程序设计语言呈现,比如 Java。

也就是说,编程语言是现实世界到计算机世界抽象的机制

所谓的编程,就是使用某种语言,在某个维度,把现实世界抽象成简单的模型,然后设计实现出可运行的计算机软件,也就是完整的 IPO

这就是我理解的编程本质。如果你也有想法,欢迎和我一起交流~

好啦,本期分享就到这里,如果各位喜欢我的分享,请务必三连,点赞,在看,收藏,关注我,这会对我有非常大的帮助。

我们下期再见。 


我是蜗牛,大厂程序员,专注技术原创和个人成长,正在互联网上摸爬滚打。欢迎关注我,和蜗牛一起成长,我们一起牛~下期见!


推荐阅读:

写代码不是目的

Java 面向对象一览


记得 加星标,第一时间收到蜗牛的推送

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜗牛互联网

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值