为什么大多数人觉得编程很难?

本文探讨了编程的挑战,不仅在于语言和技术的进步,更在于如何有效地理解和转换真实世界的需求,以及如何设计易于理解和维护的抽象模型。作者强调了理解现实世界在编程中的重要性,认为只要模型有效解决问题,就是成功的软件。
部署运行你感兴趣的模型镜像

e402dda2e263b3ae7f5e4df08976e55c.gif

【CSDN 编者按】有人说,AI 编程普遍提高了程序员的编码效率,也有人说,AI 智能编程增加了程序员改 Bug 时长,而本文作者却说:编程真的很难,你们觉得编程难吗?不妨一起看看。面分析难处

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

未经允许,禁止转载!

作者 | Martin Myrseth       译者 | 弯月

责编 | 夏萌

出品 | CSDN(ID:CSDNnews)

软件很奇妙。从基本形式来看,软件非常抽象,似乎和真实世界没有任何关系。但现代手机等硬件设备之上运行的图形应用却感觉非常真实,人们甚至完全不需要理解“黑盒子”内发生了什么。一些软件甚至能够控制硬件,在真实世界中执行真正的动作。

作为程序员,我们编写的一些代码是对真实世界概念的建模,所以这些代码的结构和形式通常都反映了真实世界。而有些代码则是完全抽象的,负责解决只有计算机领域才会出现的“元物理”问题。负责解决抽象问题的代码也是必不可少的组成部分,真正看得见摸得着的“真实世界的建模”正是构建在其上。

然而,代码并没有被要求必须反映它要解决的问题,有时代码解决的问题甚至不是“真实存在”的问题。当然,能够通过某种方式来表现关系的代码更“容易阅读”且“容易维护”,因为人们更熟悉这样的代码。但我们构建系统的目的是“建模”,而不是“模仿”。

我认为:

“只要模型的行为能够解决问题并让用户满意,软件就完成了使命。”

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

这就引出了程序员需要面对的另一个更隐蔽、更困难的问题:将真实世界的需求转换成抽象的结构,该结构在计算机上执行时,需要对问题域建模,并达到一定的满意程度。而在建模的过程中,我们还需要考虑怎样才能更好地对抽象进行建模,以保证其他人和自己将来依然能理解。

网上的许多关于编程复杂性的讨论都集中在编程语言本身、工具以及技术栈的复杂性上,而忽视了怎样才能更有效地理解需求并将其转换成代码。而对于系统不断发展时,如何去沟通并维护这些需求更是只字不提。这并不意味着这些事情不需要做。

学习编程语言的语法和语义需要花费很多时间和精力。构建现代应用程序和服务所需的工具、服务和基础设施也是如此。但这并非全部!许多技术都在快速发展,努力跟上时代的脚步已经令我们感觉力不从心。但不要忘记或忽视我们的任务是理解他人,理解周围的世界,而这才是保证代码质量和目标的关键。

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

368e8305825b40a98f077a102a081558.gif

推荐阅读:

▶让 AI 取代人类工作 3 个月,公司 CEO 夸赞:“复制粘贴的工作完全消失了!”

▶帽子当键盘?Google 工程师“整活”,发明可打字的帽子,项目已在 GitHub 开源!

提升性能与效率,Android 14 正式发布

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

d581e3ff828319062703bfcca89e50e1.jpeg

您可能感兴趣的与本文相关的镜像

Seed-Coder-8B-Base

Seed-Coder-8B-Base

文本生成
Seed-Coder

Seed-Coder是一个功能强大、透明、参数高效的 8B 级开源代码模型系列,包括基础变体、指导变体和推理变体,由字节团队开源

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CSDN资讯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值