人月神话-焦油坑:编程的乐趣与苦恼

简介:

软件系统犹如一个焦油坑,在软件开发的实践过程中,只有极少数的团队能够满足项目的目标、时间进度和预算的要求。

编程的乐趣

  • 首先是一种创造事物的纯粹的快乐。像小孩儿玩泥巴时赶到愉悦的感觉是一样的。
  • 其次,快乐来自于开发对他人有用的东西。
  • 第三,开发过程中的乐趣还来自于将各种不同的模块组合到一起,然后看到他们正确的运行。
  • 第四是学习的快乐,开发过程中总会遇到各种各样的问题,在解决这些问题的过程中能够学到新知识,也可以获得丰富的实践经验。
  • 最后,程序员的乐趣还来自于创造出自己想象的事物。诗人可以运用自己丰富的想象来描述事物,程序员也可以,但与诗人不同的是,程序员可以将自己想象的事物用代码实现,因为程序是实实在在存在的。

编程的苦恼

  • 首先,必须追求完美。程序中容不得一个字符的错误,所以这是一个细致的工作。
  • 其次,程序的目标、资源和信息都有他人提供,程序员很少能控制工作环境和工作目标。用管理的术语来说,个人的权威和他所承担的责任是不相配的。
  • 第三,对其他人的依赖是一件很痛苦的事情。我们不提倡重复的造轮子,经常会把别人的程序拿来引用,但这些程序往往是不完善的,它可能没有详尽的文档,没有相应的示例,甚至还会包含错误。我们要被迫去理解他的设计思想,花时间去研究和修改它,这是非常痛苦的。
  • 第四,概念设计是有趣的,但寻找琐碎的Bug却是一项重复的劳动。伴随着创造性活动的,往往是枯燥和沉闷的劳动,编程工作也不例外。
  • 最后,当我们的程序即将开发完成的时候,发现它已经过时了。这个有点无奈,不过技术的不断革新必然会出现这种情况,但并没有想象的那么糟糕。

 

这,就是编程。一个许多人痛苦挣扎的焦油坑以及一种乐趣和苦恼共存的创造性活动。




本文转自齐师傅博客园博客,原文链接:http://www.cnblogs.com/youring2/p/3415354.html,如需转载请自行联系原作者

相关文章
|
编解码 前端开发 UED
前端开发中的跨平台适配解决方案探讨
【2月更文挑战第8天】 在当今多样化的设备和屏幕尺寸下,前端开发人员面临着跨平台适配的挑战。本文将深入探讨目前常见的跨平台适配解决方案,并对比它们的优缺点,帮助开发者更好地选择适合自己项目的方案。
|
存储 安全 算法
对象存储服务-Minio
对象存储服务(Object Storage Service,OSS)是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。
2143 1
|
开发工具 Nacos git
Git如何checkout远程tag
Git如何checkout远程tag
4463 0
|
存储 网络协议 Java
为什么王者荣耀、原神等游戏不使用微服务架构?
王者荣耀、原神作为家喻户晓的手游,能够支撑这么多人同时在线,其底层的架构自然令我们好奇,出乎意料的是,它并没有采用目前炙手可热的微服务架构,到底为什么会这样呢?本文结合知乎问答内容:https://www.zhihu.com/question/359630395撰写,本人其实也是个游戏迷,这次也是想深扒一下其底层的架构设计。
|
人工智能 API 语音技术
开发者福利,魔搭推出免费模型推理API,注册就送每日2000次调用!
今天,魔搭社区开放了免费的开源模型推理API,仅需使用魔搭的SDK Token,就可以通过简单的API请求探索各种强大的开源模型的使用。
4740 9
|
监控 Java 微服务
使用Spring Boot构建微服务架构
使用Spring Boot构建微服务架构
|
域名解析 弹性计算 安全
阿里云域名注册到备案再到解析详细流程
本文主要讲解域名的注册,备案和解析流程,帮小白轻松搞定域名全流程
|
数据可视化 前端开发 数据库
CodeWave智能开发平台--02--目标:文档快速阅读--02新手入门
CodeWave智能开发平台--02--目标:文档快速阅读--02新手入门
|
机器学习/深度学习 并行计算 算法框架/工具
Anaconda+Cuda+Cudnn+Pytorch(GPU版)+Pycharm+Win11深度学习环境配置
Anaconda+Cuda+Cudnn+Pytorch(GPU版)+Pycharm+Win11深度学习环境配置
|
Web App开发 开发者
本地安装谷歌的插件之 CRX格式插件离线安装
本地安装谷歌的插件之 CRX格式插件离线安装
2142 0