agent124 发表于 2024-4-11 06:31:50

胡思乱想:烧菜和编程的类似之处

看了几个烧菜的视频,突发奇想,比较一下编程和烧菜。


职业厨师,烧的菜不是给自己吃的。职业编程,编的程序也大多数不是给自己用的。

厨师烧一道菜,根据菜名确定相应的做法,都是一套固定的流程。编程貌似灵活些,其实也有点类似,根据需求确定哪里要改,然后也是一套大致固定的流程:写程序,调试,测试,完工,交给代码审核或者交给测试部。虽然编程有时稍微要动点脑子,考虑到各种可能的情况,但大体也是一种类似工匠的处理过程。

厨师烧菜,行家看门道,比如刀工,火候什么的,但客人全不懂,只看味道。编程也类似,行家看程序的可读性,易维护性,健壮性等等,但客户全不懂,只要实现了功能就好。

厨师学一道新菜,大概是通过多次实践,慢慢总结经验的,编程学新技术也有点类似,也是通过做项目,不断调试,慢慢掌握技术细节的。两者都需要大量的实践。

厨师和编程一样,除了工作,下班后这项技能也用得上。厨师可以给自己和别人炒菜,编程则是可以根据自己的需求写点小程序。不像有的工作,下班后,没有了设备或人员,就没法干了。

比较两个事物,需要对两者都有深入的了解,才能比较得好。我对编程还算比较熟悉,但对烧菜,虽然也动过手,但离职业厨师那个级别差远了,所以比较不好,只能说点零星感想。


欧阳静茹 发表于 2024-4-11 07:48:34

编程与盖房子比较,也有不少类似的地方,首先要考虑功能定位,其次要据此设计户型布局,框架好了还要装修美化,房子要考虑安全性、可靠性、可维修性,否则后期总漏水就麻烦了,布线及插座预留要有前瞻性,否则后期电器增加时还得拉线。

agent124 发表于 2024-4-11 08:11:07

欧阳静茹 发表于 2024-4-11 07:48
编程与盖房子比较,也有不少类似的地方,首先要考虑功能定位,其次要据此设计户型布局,框架好了还要装修美 ...

布线及插座预留要有前瞻性,否则后期电器增加时还得拉线。
=============
在编程上,关于这点,我的体会有点不同,也和一些人和书上说的有点不同。也许和盖房子不同,编程上我的感受是业务需求无法预测,也就是无法前瞻。往往是你特意灵活设计,为将来可能的需求变化预留空间,结果那个变化总也不发生,反而是在你没想到会改变的地方,出现了新的需求。原因在于用户的理解和程序设计人员的理解是不一样的,程序设计人员是从程序设计的角度考虑问题,而一般不熟悉商业需求,所以对哪里可能会有变化,至少是比用户更难预测。而实际工作中,时间又往往比较紧,如果想到处都设计得很灵活,往往难以做到。而且灵活设计也是有代价的,往往增加测试的工作量。
所以,我的体会是只考虑眼前的需求,现在有什么需求,就实现现在的需求再说。不怕将来需求改变,只要程序容易懂,有新需求来,不难快速修改。如果某个地方经常变,那时才考虑在这个地方灵活设计。所以,重点在于程序的易读性,而不是灵活性,比如书上说的解耦什么的。

小可拉好 发表于 2024-4-11 08:56:17

不懂编程,你要表达创新的编程,但更多的是,同样要达到的目的,不同的人是不是有个性化的东西在?
但是做菜,是个性化的,同一道菜,每个人做的口味是不一样的。“妈妈的味道”,

qq5096717 发表于 2024-4-11 08:59:06

一性圆通一切性。

agent124 发表于 2024-4-11 08:59:58

小可拉好 发表于 2024-4-11 08:56
不懂编程,你要表达创新的编程,但更多的是,同样要达到的目的,不同的人是不是有个性化的东西在?
但是做 ...

编程也有一定的个性化,每个人有自己的习惯和风格,当然未必像做菜那样口味多。最简单的就是程序的格式,比如有些人喜欢用java风格的括号,左括号写在关键词后面,而有些人喜欢用c#风格,左括号单起一行,等等。

咸咸鱼 发表于 2024-4-11 09:36:45

楼主这个想法很妙啊

spolinar 发表于 2024-4-11 14:00:59

可能是因为同样是人这个主体在做吧,毕竟工作虽然很多,但是人的思维方式其实差别不大。
不知道外星人是怎么烧菜和编程的呢?

dspowj 发表于 2024-4-11 15:35:00

食谱和程序集好像是同一个英文;P recipes

ximan_0719 发表于 2024-4-12 15:38:32

其实挺想学编程的,就是不知道怎么开始。有很多书都可以在线看,但是不会下载啊,是不是需要用到编程

upking 发表于 2024-4-13 09:03:07

凡是需要用到逻辑思维或者优化/优选的地方,都和编程类似

haoge 发表于 2024-4-13 10:25:44

确实有点乱

eisbergeisberg 发表于 2024-4-13 10:29:45

ximan_0719 发表于 2024-4-12 15:38
其实挺想学编程的,就是不知道怎么开始。有很多书都可以在线看,但是不会下载啊,是不是需要用到编程 ...

試試 http://www.banshujiang.cn/ 很多寶藏 入寶山可不空手而回

zxm316 发表于 2024-4-13 11:43:21

厨师烧菜不管好坏,烧出来总是一道菜,不管口味怎样,能吃;编程编出来的也叫程序,但有的有用,有的没用。
页: [1]
查看完整版本: 胡思乱想:烧菜和编程的类似之处