查看原文
其他

UMLChina二十周年回忆(3)软件开发和化学的类比

潘加宇 UMLChina 2024-03-10
中学时我学得最好的是数学,本来打算努力考上北大数学系或清华计算机系。1989年,我在广西百色高中读高二下学期的时候,学校看我年纪最小,成绩却是年级第一名,就让我试着参加高考,考中国科技大学少年班。
结果,没考上。
中科大负责广西招生的劳老师可能觉得来自贫困老区的学生考到这样也不容易了,来电说应用化学系还有名额,愿不愿意去读?我记得当时我说,愿意,历史系我都去。那个年代哪敢承担再读一年的风险,更不用说抵抗“15岁上大学”的荣耀了。
虽然和立志献身化学的同学没法比,但我对化学也不是没有兴趣,否则也没法从中科大转到北大读研究生。不过,靠化学谋生实在是太难了,特别是到北京读书以后,到中关村一看,就觉得不转不行了。就像《少林足球》里的三师兄所言:“你你你,还提金钟罩铁布衫。你看看,满天都是飞机,满街都是电脑,现在什么时间了,你醒醒吧你!

另外,化学确实比较毒。当时做的高分子合成,感觉相对于其他化学专业来说算毒性小的。几年后想一想,这个“小”相对于普通人来说也很大了。主要溶剂是苯和甲苯,像水一样敞开用。甲苯倒还罢了,苯这个WHO一类致癌物的沸点才80℃,比水还容易挥发,那得有多少进入呼吸道啊!
软件开发和化学看起来隔得比较远,但仔细想想还是有一些类似之处。
物质的性质类似于软件需求,物质的结构类似于软件设计。
物质的性质由结构决定,但妙就妙在,想要获得某种性质,有很多种结构可以满足,这就有了创新的空间。
例如,我们需要一根坚硬的棍子去敲敌人的脑袋,可以用钢制作,也可以用碳纤维。
如果掌握了基本组件之间协作的秘密,就可以用基本的元素灵活组装,创造出性质各异的物质。地球上丰富多彩的生命就是由C、H、N、O几种主要元素,通过单键、双键、三键、成链、成环、聚合……组装起来的。
下图是1999年北京大学研究生入学考试的有机化学试题:

我把它改一下,变成下图:

您看看,像不像?
如果换一个技术栈,也可以做出同样的应用。

UMLChina二十周年回忆(1-2)开头的话,我的转行
UMLChina二十周年回忆(4)UMLChina的注册
UMLChina二十周年回忆(5)其他创业尝试:即时贴和群发邮件
武汉11月9-10日软件开发方法学全程实例剖析公开课

继续滑动看下一个

UMLChina二十周年回忆(3)软件开发和化学的类比

潘加宇 UMLChina
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存