您当前的位置:首页 > 电脑百科 > 程序开发 > 程序员

一文看懂编程的本质,程序员有前途么?

时间:2021-12-17 11:03:32  来源:  作者:博士聊IT

今天聊聊编程的本质。程序就是数据结构+控制+逻辑,程序员编程工作的本质是翻译,翻译机要来了,程序员怎么办?

黑客帝国中的程序

黑客帝国4就要上映了,不知道前三部你看懂了么?值得多看几遍。

黑客帝国的主角就是程序(Program)。Achetict是历史实践家,通过历史的变迁洞察了规律,来确保Matrix何时诞生、何时发展、何时崩溃、何时重建。Oracle是大数据的化身,代表了人类特有的直觉,具有洞察和预测的能力,掌握了情感和人性。里面许多Program个性十足,和真人相比也不遑多让。

企业数字化转型,先要看懂黑客帝国

「博士聊IT」一文看懂编程的本质,程序员有前途么?

黑客帝国的主角是程序

程序不仅仅是信息的载体,它和人脑一样,是处理信息的工具,可以说,程序是人类思维的外在表现,软件把原来在思维空间中进行的抽象的活动转化成一种能够可视的过程当我们编程序时,尤其我们在调试程序,也就是Debug的时候,这种感觉更加明显。一个程序员读着另一个程序员源代码的时候,能够感觉到他的思维在跳动(当然,乱跳也是跳)。

编程的本质是什么

程序本身的执行基础是机器语言,但人类掌握机器语言太困难了。最早的程序员都要用机器语言去编写代码,用纸带输入程序,费时费力,不是数学家根本掌握不了。

人类是追求高效率的生物,很快语言就有了进化,出现了汇编语言、Lisp、Fortran、Basic、C......大多数软件都是用高级编程语言编写的,对于程序员来说,它们更容易、更高效,因为它们比机器语言更接近自然语言。很可惜,中国没有自己的编程语言。

中国为什么没有自己的编程语言?哲学、数学和语言学基础是关键

「博士聊IT」一文看懂编程的本质,程序员有前途么?

编程语言是程序员的工具

那么这些语言本质是做什么的呢?

软件行业有两个著名的公式 :

1、程序=数据结构+算法

瑞士计算机大师Niklaus Wirth

 

「博士聊IT」一文看懂编程的本质,程序员有前途么?

 

他发明过Euler、Algol-W、Pascal、Modula 和 Oberon。

数据结构实际上说的是信息和数据如何被组织起来。

这里最著名的就是由本体论(Onology)发展过来的面向对象分析方法(OOA)。就是按照分类(属性+方法)、继承、重载和多态等。

分类是人类理解世界的根本,就从哲学观点上来看,这是我们认识世界的方式。我们的生物需要分类,就是门、纲、目、科、属、种;法律需要分类,轻度伤害、重度伤害量刑不同;社会管理要分类例如不同企业上不同的税;产品需要分类,不同的产品有不同的参数.......我们思想和语言交流的基础就是分类。

「博士聊IT」一文看懂编程的本质,程序员有前途么?

面向对象是应用最多的数据结构分析方法

如果不用到分类,世界的事物,无法有效地组织起来,我们也不能有效地表达我们的思想,编程语言率就低了。很多程序员都不喜欢继承,确实对我们编程限制很大。但你设想一下,如果不能把“哺乳”这个方法放到哺乳动物的分类上,我们要对许多哺乳动物的子类进行操作。基于类别的数据结构是最好的信息压缩方式。

事实上我们说的每一个名词都是一个分类,当加上编号或者定冠词就变成实例了。

分类决定属性,一个分类的属性有两种来源:从爹妈那儿继承的,自己特殊的。当然这个分类也会有孩子继承他的属性。

分类决定方法,道理是一样的。重写是一种继承中的变异,大规模重写分类就乱套了;多态是对方法的封装,以便模糊调用,在实际中,操作分类、属性和继承关系的难度很大。确实作为软件开发人员,在实践中对我们一无所知,这也是很需要业务专家的原因。

算法的本质是什么?是对数据的处理。

语言是人类思维的文字表现。有的人语言条理清晰,有的人杂乱无章,难以一概而论,其中所包含的信息量也不一致。我们从小学就接受语文训练,反复练习每句中心词是什么?段意是什么?中心思想是什么?这种训练就是帮助我们建立起语言所包含语义的逻辑性,才能保证对方能够顺利地接受信息所包含的语义。

我们所训练的这种表达就是一种算法,大家可以试着想象一下你周围的人算法处理能力,有的人啰哩啰嗦说不清楚,有的人词义准确、逻辑清晰、言简意赅、没有废话,这种人对这件事情的算法能力就很强。

如何衡量一段文字所包含的信息量呢?前苏联科学家柯尔莫洛夫提出了信息量度量的新方法:除了基于组合和基于概率方法之外,他提出了基于最短程序长度的信息量度量方法。算法信息论的代表。

「博士聊IT」一文看懂编程的本质,程序员有前途么?

柯尔莫洛夫发明了算法信息论

例如我们说:3.1415926..........和说一个pai“”在本质上是一样的。

后面大家有机会可以深入了解熵这个概念,算法就是逆熵操作,算法的效率就是算法逆熵的能力大小。

2、算法=控制+逻辑

英国计算机大师Robert Kowalski

他发明了逻辑编程,他的学生研制了Prolog的编译器。我们把公式代入:

「博士聊IT」一文看懂编程的本质,程序员有前途么?

 

控制就是指程序将按照什么样的流程和顺序进行计算。

顺序有简单的,也有非常复杂的。例如人机交互的流程就比较复杂:

「博士聊IT」一文看懂编程的本质,程序员有前途么?

复杂的控制过程

控制就是指程序的计算步骤,先算什么,后算什么,如何跳转,如何回退。

逻辑就是指数据结构按照什么规律如何相互影响。

当翻开欧几里的《几何原本》这本书时,所有人都会立刻产生仰慕感。这本距今2000多年前的书从定义出发,点、线、面逐步推进,明确了本书涉及到的公设,明确了其中的公理(不言自明的道理),然后就将我们初高中所学几何知识几乎一网打尽。

「博士聊IT」一文看懂编程的本质,程序员有前途么?

你的几何应该没有2500年前的欧几里得好

是的,我们初中、高中学的几何学就是典型的逻辑。

1879年,德国科学家弗雷格出版了《概念文字》一书,这本书的副标题是”一种模仿算数语言构造的纯思维的形式语言”。弗雷格的语言对于我们来说就很熟悉了,我们在大学数学中用到的很多符号,如存在,任意等符号,都是源自于这本书。

傅雷格奠定了逻辑学的基础,罗素等人完善了命题逻辑和一阶逻辑,再往后冯诺依曼、图灵、邱奇、麦卡锡、巴克斯等人发明了计算机。是的,这些人都是与世无双的逻辑学家,确切地说是数理逻辑学家。

「博士聊IT」一文看懂编程的本质,程序员有前途么?

数理逻辑发展简史

编程的本质是把人的思想变成计算机可执行的机器代码。

程序员工作的本质是什么?

说到这里,很不幸,应该你已经猜到了?

程序员的工作性质的本质是翻译,把人类的思想需求翻译成机器可执行的代码。任何高级语言都是用来表达思想的。高级语言都会被翻译成机器语言,驱动计算机去执行。

「博士聊IT」一文看懂编程的本质,程序员有前途么?

程序员的本质

因此,你可以认识到软件的世界中有两个实质性的内容:思想和机器语言。思想是我们希望计算机做什么?当前软件从业者:从业务人员、项目经理、架构师、程序员、测试人员、实施人员,他们都有一个共同的工作性质:翻译。就是把思想翻译成机器语言。

你可能会质疑,现在人工智能这么发达,为什么不弄个翻译机呢?

「博士聊IT」一文看懂编程的本质,程序员有前途么?

这个能取代编程?!

很不幸你又猜对了,翻译机要来了。取代程序员的工作已经开始了。

其中低代码平台就能减少翻译人员的数量,无代码平台让需求者直接对接机器。

数据结构现在可以做成模型驱动和可视化的表单,控制可以做成可视化的流程和活动,要是逻辑问题也解决了,可能大部分软件需求就真的不需要程序员做翻译了。

「博士聊IT」一文看懂编程的本质,程序员有前途么?

低代码无代码能终结编程么?



Tags:程序员   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
据新华社消息,美国纽约市一个联邦陪审团13日裁定,中央情报局前软件工程师乔舒亚·舒尔特向维基揭秘网站泄露该机构“最有价值”的黑客工具,犯有盗取及输送国防信息罪。陪...【详细内容】
2022-07-15  Tags: 程序员  点击:(1)  评论:(0)  加入收藏
有人说程序员单调乏味?看过他们的工位黑马君第一个不答应!在程序员的工位上,不仅显示屏多,玩具也特别多,特别是可爱的小黄鸭,(谁能给科普一下程序员为什么那么喜欢小黄鸭吗?△图来源...【详细内容】
2022-07-15  Tags: 程序员  点击:(3)  评论:(0)  加入收藏
在当代职场流传着这么一句话,90后:终于进大厂了!00后:我要去国企! 不知何时,对于在职的年轻人而言,国企和大厂成为了最优选择,一个高薪,一个压力小,而两者之间的对比也日益激烈,针对哪...【详细内容】
2022-07-07  Tags: 程序员  点击:(10)  评论:(0)  加入收藏
让我们面对现实吧,软件工程师的薪水相当高。根据你的薪水,你可以轻松过上非常舒适的生活。然而,一些程序员喜欢探索副收入的想法来补充他们的全职工资。也许你想提前退休?也许您...【详细内容】
2022-07-04  Tags: 程序员  点击:(6)  评论:(0)  加入收藏
一、基础概念1、Sorted(单调递增or单调递减)2、Bounded(存在上下界)3、Accessible by index(能够通过索引访问,数组适合,but链表不适合)二分查找是一种在每次比较之后将查找空间一...【详细内容】
2022-07-04  Tags: 程序员  点击:(14)  评论:(0)  加入收藏
2022年的互联网行业变化挺大,接单可以作为开发者朋友能力变现的一条备选路,今天说说应该怎么判断一个项目是否靠谱以及市面上最常用的一些接单平台。接单需知接触接单的开发...【详细内容】
2022-06-22  Tags: 程序员  点击:(37)  评论:(0)  加入收藏
一个普普通通的25+女程序员枯燥且忙(bai)碌(mang)的一天✅7:40 闹钟不响绝对不起床[偷笑R],穿衣、刷牙、洗脸(平时上班不化妆)✅8:00 出门(骑电驴+地铁+班车+5分钟步行)✅8:40...【详细内容】
2022-06-22  Tags: 程序员  点击:(18)  评论:(0)  加入收藏
自由职业者:程序员是当今最不受约束的自由职业者,可以帮助人们了解他们的网站和应用程序。 博客:程序员可以轻松地拥有一个专注于人们面临的技术问题和困难的博客。 主题和模...【详细内容】
2022-06-22  Tags: 程序员  点击:(33)  评论:(0)  加入收藏
人生在不同的阶段会有不同的生活方式和思考问题的角度,这是一件非常有趣的事~比如,我在 22 岁会想:怎么才能赚大钱,怎么才能升值加薪?在 25 岁会想:去哪买房?什么时候结婚?在 28 岁...【详细内容】
2022-06-19  Tags: 程序员  点击:(17)  评论:(0)  加入收藏
微服务架构的数据一致性微服务架构下,最好的分布式数据一致性解决方案就是尽量避免分布式事务,然而,在很多场景下,分布式事务是难以避免的。在金融、电信领域中,很多业务场景要求...【详细内容】
2022-06-16  Tags: 程序员  点击:(33)  评论:(0)  加入收藏
▌简易百科推荐
有人说程序员单调乏味?看过他们的工位黑马君第一个不答应!在程序员的工位上,不仅显示屏多,玩具也特别多,特别是可爱的小黄鸭,(谁能给科普一下程序员为什么那么喜欢小黄鸭吗?△图来源...【详细内容】
2022-07-15  黑马程序员    Tags:程序员   点击:(3)  评论:(0)  加入收藏
因试用期遭劝退,一男子为发泄情绪删光自己在职期间所写系统代码被判刑十个月,如何看待这一审判结果?通过删库来发泄情绪的程序员是最蠢的。聪明的程序员会写一堆只有自己看得...【详细内容】
2022-07-10  多才小胖墩    Tags:代码   点击:(8)  评论:(0)  加入收藏
在当代职场流传着这么一句话,90后:终于进大厂了!00后:我要去国企! 不知何时,对于在职的年轻人而言,国企和大厂成为了最优选择,一个高薪,一个压力小,而两者之间的对比也日益激烈,针对哪...【详细内容】
2022-07-07  学掌门    Tags:程序员   点击:(10)  评论:(0)  加入收藏
让我们面对现实吧,软件工程师的薪水相当高。根据你的薪水,你可以轻松过上非常舒适的生活。然而,一些程序员喜欢探索副收入的想法来补充他们的全职工资。也许你想提前退休?也许您...【详细内容】
2022-07-04  独一无二的小魏同学    Tags:程序员   点击:(6)  评论:(0)  加入收藏
转自:https://www.jdon.com/61280 本文分析了来自 5,508 个软件工程职位列表的数据,以帮助您找出哪些编程语言的薪水最高。 我们分析了RemoteOK(世界上最大的工作委员会)上 5k...【详细内容】
2022-06-30  9i分享客栈    Tags:编程语言   点击:(27)  评论:(0)  加入收藏
【CSDN 编者按】丛纹弨是智能交通和物流领域的连续创业者,二十年的产业技术和创业管理经验,让他成为行业资深专家。本文从智慧物流平台的真正价值为何、如何通过算法解决行业...【详细内容】
2022-06-29    CSDN  Tags:CEO   点击:(22)  评论:(0)  加入收藏
相信很多朋友都想开发一款属于自己的应用,不管是学习还是工作中用,但是对于如何学习并开发完成这过程还存在迷茫点,活到老学到老!我也通过学习别人总结的,再总结一条适合自己的学...【详细内容】
2022-06-23  希里安    Tags:web开发   点击:(25)  评论:(0)  加入收藏
2022年的互联网行业变化挺大,接单可以作为开发者朋友能力变现的一条备选路,今天说说应该怎么判断一个项目是否靠谱以及市面上最常用的一些接单平台。接单需知接触接单的开发...【详细内容】
2022-06-22  程序员客栈    Tags:接单平台   点击:(37)  评论:(0)  加入收藏
一个普普通通的25+女程序员枯燥且忙(bai)碌(mang)的一天✅7:40 闹钟不响绝对不起床[偷笑R],穿衣、刷牙、洗脸(平时上班不化妆)✅8:00 出门(骑电驴+地铁+班车+5分钟步行)✅8:40...【详细内容】
2022-06-22  香菜真好吃ii    Tags:女程序员   点击:(18)  评论:(0)  加入收藏
自由职业者:程序员是当今最不受约束的自由职业者,可以帮助人们了解他们的网站和应用程序。 博客:程序员可以轻松地拥有一个专注于人们面临的技术问题和困难的博客。 主题和模...【详细内容】
2022-06-22  独一无二的小魏同学    Tags:程序员   点击:(33)  评论:(0)  加入收藏
站内最新
站内热门
站内头条