计算机的本质是什么?当我们学习计算机的时候,我们在学习什么?

2023-04-02 13:16:57 +08:00
 baobao1270

最近在群里讨论这个问题,很多人都有不同的看法。有人觉得应当代码先行、Learn by code ,有人觉得反而是数学和逻辑更加重要。有人认为,实践的方法虽然能做出跟上业界的东西,但是也很容易过时,掌握了计算机本质与核心的思想,才是最重要的。

我们在此讨论的不是面向就业的课程,而是更加基础的计算机学科问题。

假如你有机会编写计算机科学与技术专业大学生入学的第一门课的教材,或者是高中计算机教育的大纲,假设你编写的内容不会受到教育以外因素的限制,你会怎样编写呢?

(希望这是一个大家一起思考的主题,因此请不要在这个主题下回复 AI 生成的文本,谢谢!)

8087 次点击
所在节点    程序员
76 条回复
Genshin2020
2023-04-02 16:22:38 +08:00
思维逻辑
shendaowu
2023-04-02 18:20:57 +08:00
本民科 + 民哲狂喜。

我个人觉得本质这个东西好像要有一定的抽象,讨论 A 的本质,那么这个本质可能在 B 里甚至更多的东西里也存在。但是计算机是一个过于特殊的东西,我更愿意说什么东西的本质是计算机。想想历史上的那些极端伟大的发明,好像都是很难说明本质的。比如语言、农业、蒸汽机、电气化。

还有本质好像本质原因的简称。这个我挺没自信说出来的,也许有更好的表达方法,但是感觉可以强行分析一波。计算机这个东西是太多东西的因,但是它的因好像有点难描述。我更愿意说计算机是涌现出来的,它没有单个决定性的因,而是一些原件组合到一起涌现出来的。涌现是复杂系统科学中的一个概念,挺难解释的,有兴趣自己去搜吧。当我们讨论本质的时候,可能一般都期待获得一个单一的概念,这在计算机上是行不通的。我不太同意原始的计算机的想法是设计出来的,我更愿意相信它是涌现出来的,虽然 Intel CPU 是设计出来的没什么问题。

最近看的一本《现象和本质的辩证法》里提到了一个叫系统本质的概念,感觉跟上面提到的涌现有点关系。介绍系统本质的章节提到整体大于部分之和了。不过这书里也没怎么展开讲。

还有就是我觉得称得上本质的东西都有一些大众人不知道的信息在里面,至少在专家中很多人都不知道。但计算机是纯纯的人造物,基本没有什么专业人士不知道的基本原理。它在最基础的领域还没有什么人无法理解的东西。
Lemonadeccc
2023-04-02 18:38:59 +08:00
就是软工、控制、通信、安全。外围还有一个电子,其实就是这些。培养方案也都是这么几个方向。工科最终解决的都是实际问题。
当然,大部分软工都是对问题的抽象,利用计算机的复用性和对循环的执行能力来进行工程构造,来达到现实世界的问题的解决。
其实没必要追求本质,哲学到现在都没有一个安全出口。好好吃饭,照顾好家人才是王道。
Jiajin
2023-04-02 18:43:37 +08:00
输入、计算、输出?
byewind
2023-04-02 19:00:00 +08:00
有点搞笑的问题, 看起来像是被中国教育迫害了的人才会这么问.
计算机的本质就是工具, 使用这个工具发挥你的创造力创造工具也好创造艺术也好, 总之是创造.

当然你可以将计算机创造得更好.

数学, 逻辑, 代码, 编程语言都只是你掌握得工具. 都不是重点, 重点是创造力, 你用这些工具创造什么, 是创造垃圾还是创造能让人们喜欢得东西.

也别介意创造垃圾, 大部分人的工作都是在创造垃圾.
mrlmh00
2023-04-02 19:00:33 +08:00
计算机的本质是一种能够通过电子电路执行计算的机器,它可以模拟现实世界的各种问题,并通过程序和算法来处理大量的数据和信息。
我们学习计算机的时候,我们在学习的是如何利用计算机的功能来解决各种实际问题和计算机的原理、结构、设计。
vvhy
2023-04-02 19:18:22 +08:00
@Jiajin #24 接、化、发?🤣
laqow
2023-04-02 19:48:21 +08:00
有能力就解决能将现有的生产效率提升几十倍的问题,没能力就不断翻新轮子混点钱
lister
2023-04-02 19:58:31 +08:00
😊学的越多,离润越近
xuanbg
2023-04-02 20:38:52 +08:00
学习计算机软件设计的话,重要程度依次递减:需求理解 - 交互设计 - 数据结构 - 软件工程 - 测试 - 编码。

低代码平台一直期望能够替代编码工作,但可笑的是低代码还没来得及取代低端编码工作,反而要先被 AI 淘汰掉了。
Tyuans
2023-04-02 20:38:54 +08:00
修电脑和 office 吧…我能接受毕业生让我帮忙调论文格式,但我无法接受让我修电脑。甚至自己 cpu 上的一体水冷风扇坏了不转两年最终还是被我发现的…i7cpu 降频 90 度工作两年…
Jiajin
2023-04-02 20:44:43 +08:00
哈哈,强的一
EngAPI
2023-04-02 20:59:06 +08:00
我们如今所有的计算机包括量子计算机都是冯诺依曼结构,的本质都是在做数学题,做有限步内有解的数学题。
opengps
2023-04-02 21:14:13 +08:00
要学的不是计算机本质的 0 和 1 ,而是 0 和 1 按规则定义出的那堆含义。就好比中文笔画对中文的区别、英文字母相对于英语的差异
artnowben
2023-04-02 21:38:43 +08:00
计算机学科有很多方向,如操作系统、网络、存储、数据库、编程语言、算法等,每个方向都有一些重要的具体问题需要解决,并没有一个抽象的"本质"问题。多去动手解决一些具体的问题可能更符合计算机学科。

例如,去年我做了一个基于 DPDK 的开源网络测试仪 dperf ,性能远超商业测试仪,解决了四层网络性能测试的业界难题,现在国内大厂,一些知名开源项目都在用。 https://github.com/baidu/dperf
StarRail
2023-04-02 21:46:44 +08:00
本质是生产资料。
学习的是如何成为劳动者。
Over
yangzhezjgs
2023-04-02 22:05:54 +08:00
1.计算机本质上是状态机,指令的目的就是触发状态机的状态改变,程序就是一连串的用于控制状态机状态变化的指令。

2.软件设计中分层和抽象是基础,从硬件,操作系统,虚拟机 /编译器,应用层框架都遵循相似的规律,上一层通过构建抽象和声明式接口来为本层提供声明式接口(即只用关注输入输出的 API ),本层又使用命令式编程方式将上层提供的声明式接口组合封装为下一层的声明式接口,这样层层递归式的嵌套是软件工作的基本原则,所以实际的应用层编程在这样的层层简化下,变成简单的根据建模编写基于框架声明式接口的业务逻辑代码的过程。

3.面向对象是主流的建模方式,一个对象本质上就是一个映射现实业务或者计算过程的状态机模型,对象的方法就是状态机的指令,而面向对象是参考了现实世界的运行方式而设计出的建模方法,因为现实世界各个物体都是具有明确的边界(封装)和特征(成员变量),通过交互完成一次协作,协作累加杂一起最后完成现实中繁复多样的生产、交易等活动。
XxxxD
2023-04-02 22:34:13 +08:00
学习逻辑思维利用各种算法计算,让机器帮我们解决问题
easing
2023-04-02 22:42:58 +08:00
如果你学过计算理论就不会问出这种问题
mobpsycho100
2023-04-02 23:23:51 +08:00
根据哥德尔不完备定理, 任何自洽的形式系统, 只要包含皮亚诺算术公理, 那么就总是包含不能被证明的命题. 因此很多时候你的问题, 尽管是从你当前的问题空间中产生的, 却必须要放到一个更大的问题空间中才能得到答案, 而这意味引入更多的假设. 即使你的问题空间被放大到全世界, 也总有一些问题是无法回答的, 例如缸中之脑问题, 或者整个世界是否是运行在一个巨大的计算机上. 公理会改变, 理论会过时, 本质的存在只是一种错觉.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/929153

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX