Bili-Docs
技术工具编程开发

十分钟学会编程的本质【收藏级】

视频通过通俗易懂的方式将编程拆解为数据与函数,深入浅出地讲解了逻辑判断、循环及函数嵌套等编程核心本质。

UP主: 康文昌 · 时长: 11:39 · 🔗 B站原视频

发布: 2022-03-27 · 收录: 2024-09-16

标签: 编程入门 · 编程本质 · 函数与数据 · 逻辑思维 · 零基础教学

编程到底是在干啥

所谓编程就是编写程序。编写很简单,就是写代码。你可以用记事本,可以用 Word。当然为了更方便,我们一般会用专门的软件来编写,保存代码内容为一个有特定后缀的文件,就完成了编写。

编写已经理解了,我们去掉它。“程序”泛指任何网站、软件、脚本、系统之类的东西。但不管是什么,程序只有两个部分:数据和函数。你只要明白了数据和函数这两个概念,那么学会编程就没有任何难度。

数据:本质就是 0 和 1

数据本质很简单,就是保存在内存条或者硬盘上的电子而已。0 和 1 的不断排列组成了你现在看到的视频画面、点赞数量等。

编程的主要工作就是编写函数去处理数据。它的难度由数据量的大小及处理逻辑的复杂程度决定。

函数:输入、处理、输出

很多人只是不明白函数是什么,平常没听过,好像很难的样子。其实函数也很简单:一个接收输入参数、处理功能、输出结果的过程。也可以理解为“听到呼唤—处理事情—回应结果”这种人类的逻辑。

我们呼唤这个函数的动作叫“调用”,就是让函数运行一次的意思。

第一关:加法函数

举个例子,我们看一个最简单的函数:加法。加法函数接收两个输入参数:第一个数字和第二个数字。它的处理功能就是把两个数字相加,最后输出结果。

我们来调用一下这个加法函数,给它两个参数 1 和 2,它内部会执行一个加法的运算:1 + 2 = 3,然后输出结果 3,完事了。

函数就是这么简单。

但就是这么简单的东西,很多教程都不教,上来就教各种编程框架、语言原理、打印字符等,就像不教拼音汉字就直接教作文一样。部分人倒是可以啃下来,但更多人被挡在了门外。

第二关:判断与报错(控制结构)

进入第二关:函数内部的处理过程中,一个最重要的方法就是判断。

比如我们给加法函数升级一下,加点判断代码。当新的加法函数被调用,它先判断:调用的时候是不是有两个参数给我们?一个数字当然做不了加法。

如果没有两个参数进来,那就输出一个错误信息,这就叫程序报错。同样的道理,它也可以判断你这个参数是不是数字;如果别人传进来文字,那肯定也不能用加法,就报错。

编程的核心就是这些:函数的计算过程本身很简单,加减乘除之类的叫运算符;判断之类的叫控制结构,就是控制这个计算过程。后面学的无非就是再多学几个运算符,再多学几个控制结构而已。

第三关:函数套娃(调用其他函数)+ 循环

进入第三关:在函数内也可以调用其他函数,不断套下去。

举个简单的例子,我们写一个乘法函数,它接收两个参数。比如调用它传入 2 和 3,就是想让它计算 2 乘 3 等于多少。按理来说用乘号就行,但这里展示用它调用加法。

乘法的本质是什么?就是几个相同的数字相加。这里就是三个 2 相加。

这时候就不用再写一个加法函数了,直接调用前面写好的就可以:

  • 创建一个数据,名字叫“结果”,初始值为 0。
  • 创建一个循环:看第二个参数是几就循环几次。
  • 循环内部:将结果的值改为“调用加法函数返回的结果”。此时调用加法函数的参数就是最新的结果值和乘法的第一个参数。

开始循环:0 + 2、2 + 2、4 + 2。循环结束,这时候结果的值是 6,返回结果。

一般来说,一个软件服务只有一个主函数,然后所有功能都不断在里面套娃、互相调用,就形成了各种各样我们能够使用的功能。

第四关:用点赞函数理解真实软件

有人会说,你这个加减乘除有什么用?你看到你手机或电脑屏幕上的点赞按钮没有,点一下有没有加一?这是不是一个加法函数?

我们进入第四关,看一下这个点赞函数怎么实现。

点赞函数的本质很简单:当你点击点赞按钮的时候,就触发调用了它。它接收一个参数,就是视频的 ID。ID 类似身份证号或者地址,用来唯一确定一条数据的位置或归属。

软件公司有一个很大的数据库,里面有很多数据。你从头到尾找这个视频的信息肯定很慢,但知道这个视频 ID 后就等于知道了它的地址,直接到指定位置就能找到了。

函数内部流程大概是:

  1. 调用数据库函数,通过视频 ID 查询到这个视频的点赞数量数据。
  2. 给它加一。
  3. 再次写入数据库,把加法后的值输出返回。
  4. 调用界面图形函数,渲染点赞数字为返回结果。

真实世界的点赞函数会多一些细节,比如记录个人信息、取消点赞功能。还有安全性问题:操作数据库的这部分函数会放在远程服务器上,函数之间的调用会再加一层网络通信函数。还可能有消息提醒函数、推荐函数等。

我们以后写代码去完成各种各样的功能,或简单或复杂,但万变不离其宗:所有程序、软件功能无非就是数据和函数。如果你看懂了,那就已经学会编程的本质了,剩下的无非就是熟悉语言、工具、框架。

第五关:用“数据 + 函数”抽象宇宙、生命与意识

接下来进入第五关:真实程序。

我们的宇宙其实也非常简单,由基本粒子和基本力构成。基本粒子相当于数据,基本力相当于函数。基本粒子通过不同的“力”互相结合形成了元素周期表,进而形成了我们现在的世界。

所以完全可以把宇宙当作一个超大的程序,抽象为数据和函数的组合:

  • 元素周期表中的元素(数据)通过很多“力”(函数)结合成无机物,比如氧气、水等。
  • 无机物又通过一系列复杂的函数结合成有机物,比如蛋白质、糖、脂肪等。
  • 有机物又通过更复杂的函数结合成细胞和生物,从单细胞到多细胞,从海洋生物到植物,从动物到人类。

为什么人类叫碳基生物?因为构成我们人类的基本物质大概有 60 多种,它们结合成的有机物大多以碳元素为基础。宇宙和人体的物质和力就是这么简单,只不过数据非常庞大、函数非常复杂。

进一步延伸,我们的意识也可以看作是一个复杂的程序:

  • 数据:记忆,储存在神经元突触上。
  • 函数:思维,运行在神经元上。

大脑中几百亿个神经元的复杂结合,就形成我们所谓“意识”这个程序。比如我们生来不会做饭,但通过学习,可以把做饭的流程、知识点等保存在神经元突触中;对做饭的理解会生成新的神经元,下次做饭的时候调用它就可以了。

人的函数和记忆来自遗传、成长经历、学习环境、学到的知识和思维逻辑等,方式方法和过程都不一样,形成的人也就不一样。

从这个角度说,如果一个人想在生活中获得更多正确的判断和决策,就要尽可能提升自己的数据和函数:数据少,函数处理的依据就少;函数少,处理方式就少。学习一方面增加知识、提升数据量,另一方面增加思维方式、增加并优化函数。一个不断学习的人能持续升级自己的版本;不学习的人很多年后还是老版本。

这门课真正想教的东西:抽象思维

大家可能觉得跨度有点大:明明是来学编程的,怎么扯到宇宙和生命上?

其实我设计的编程课不仅仅是想教大家学会编程,更重要的是教会大家抽象思维:学会用数据和函数的思维模型去看待事物,这样才能在根本上理解编程、理解学习、理解世界、理解我们自己。

这是 210 系列唯一一节理论课。因为编程就是这么简单。我相信完整看完的大家已经学会了编程的本质,后面就都是实际应用了。

总结与作业

总结一下:

  1. 程序的本质就是数据和函数,编程就是编写不同函数处理数据。
  2. 对于函数,我们过了五关:
    • 第一关:认识加法函数。
    • 第二关:知道判断与报错(控制结构)。
    • 第三关:了解函数互相调用与循环。
    • 第四关:模拟点赞函数的过程。
    • 第五关:用函数和数据模型抽象真实世界。
  3. 我们重新认识了自己,祝愿大家都能持续升级,有一个更好的人生。

最后布置本节课也是大家的第一份作业:找一个生活中的事,把它用函数的方式写出来。简单的可以写一个函数,复杂的可以写几个、几十个,提交到评论区即可。

下期:一个有手就行的第一行代码。明天见。

On this page