原文链接:https://myme.no/posts/2023-09-19-programming-is-hard.html

为什么大年夜多半人以为编程很难?_代码_建模 文字写作

未经许可,禁止转载!

作者 | Martin Myrseth 译者 | 弯月
责编 | 夏萌
出品 | CSDN(ID:CSDNnews)

软件很奇妙。
从基本形式来看,软件非常抽象,彷佛和真实天下没有任何关系。
但当代手机等硬件设备之上运行的图形运用却觉得非常真实,人们乃至完备不须要理解“黑盒子”内发生了什么。
一些软件乃至能够掌握硬件,在真实天下中实行真正的动作。

作为程序员,我们编写的一些代码是对真实天下观点的建模,以是这些代码的构造和形式常日都反响了真实天下。
而有些代码则是完备抽象的,卖力办理只有打算机领域才会涌现的“元物理”问题。
卖力办理抽象问题的代码也是必不可少的组成部分,真正看得见摸得着的“真实天下的建模”正是构建在其上。

然而,代码并没有被哀求必须反响它要办理的问题,有时期码办理的问题乃至不是“真实存在”的问题。
当然,能够通过某种办法来表现关系的代码更“随意马虎阅读”且“随意马虎掩护”,由于人们更熟习这样的代码。
但我们构建系统的目的是“建模”,而不是“模拟”。

我认为:

“只要模型的行为能够办理问题并让用户满意,软件就完成了义务。

姑且不考虑性能问题,打算机并不关心程序的构造。
遗留的意大利面式的代码办理问题的能力并不逊色于精心打造的系统。
只有在考虑人们须要修正系统的时候,糟糕的办理方案的代价才会表示出来。

这就引出了程序员须要面对的另一个更暗藏、更困难的问题:将真实天下的需求转换成抽象的构造,该构造在打算机上实行时,须要对问题域建模,并达到一定的满意程度。
而在建模的过程中,我们还须要考虑若何才能更好地对抽象进行建模,以担保其他人和自己将来依然能理解。

网上的许多关于编程繁芜性的谈论都集中在编程措辞本身、工具以及技能栈的繁芜性上,而忽略了若何才能更有效地理解需求并将其转换成代码。
而对付系统不断发展时,如何去沟通并掩护这些需求更是只字不提。
这并不虞味着这些事情不须要做。

学习编程措辞的语法和语义须要花费很多韶光和精力。
构建当代运用程序和做事所需的工具、做事和根本举动步伐也是如此。
但这并非全部!
许多技能都在快速发展,努力跟上时期的脚步已经令我们觉得力不从心。
但不要忘却或忽略我们的任务是理解他人,理解周围的天下,而这才是担保代码质量和目标的关键。

没错,编程很难,真的很难!

欢迎参与 CSDN 重磅发起的《2023 AI 开拓者生态调查问卷》,分享您真实的 AI 利用体验,更有精美好礼等你拿!