Skip to main content

章节 1 - 焦油坑 The Tar Pit

由于人员的分工,大型编程项目碰到的管理问题和小项目区别很大;我相信关键需要是维持产品自身的概念完整性。

程序 + 编程产品 + 编程系统 = 编程系统产品

  • 编程产品 (通用化,测试,文档,维护): 可以被任何人运行、 测试、修复和扩展的程序。它可以运行在多种操作系统平台上,供多套数据使用。
  • 编程系统 (接口系统集成): 在功能上能相互协作的程序集合,具有规范的格式,可以进行交互,并可以用 来组装和搭建整个系统。

编程非常有趣,在于它不仅满足了我们内心深处进行创造的渴望,而且还愉悦了每个 人内在的情感。

  1. 创建事物的纯粹快乐。
  2. 开发对其他人有用的东西。
  3. 将不同的组件组合到一起完成目标,体现出魔术般的力量。
  4. 学习的乐趣。
  5. 程序员的开发工作是基于计算机系统之上,它易于操纵,并且将程序员工作中的单纯思考实现到程序中。

我们所面临的挑战和任务是在现有的时间和有效的资源 范围内,寻找解决实际问题的切实可行方案。

  1. 追求完美,这就是计算机的运作方式。学会将做事方式往完美的方向调整。
  2. 有他人提供目标,提供资源,提供信息。
  3. 有时需要依赖他人的程序,往往他人提供的编程产品 (上文提到) 并不完整。
  4. 琐碎的重复性的找 bug 活动。
  5. 技术发展很快,概念腐化速度也很快。应该与现有系统的其他部分比,而不是头脑中的未实现的概念做比较。

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


Due to the division of labor, large programming projects face management issues that are very different from small projects; I believe the key is to maintain the conceptual integrity of the product itself.

Program + Programming Product + Programming System = Programming Systems Product

  • Programming Product (generalization, testing, documentation, maintenance): A program that can be run, tested, repaired, and extended by anyone. It can run on multiple operating system platforms and be used with multiple sets of data.
  • Programming System (interface system integration): A collection of programs that work together functionally, with standardized formats, capable of interaction, and can be used to assemble and build the entire system.

Programming is fascinating because it not only satisfies our inner desire to create but also pleases the inner emotions of everyone.

  1. The pure joy of creating things.
  2. Developing something useful for others.
  3. Combining different components to achieve goals, demonstrating magical power.
  4. The pleasure of learning.
  5. The programmer's development work is based on computer systems, which are easy to manipulate and implement pure thinking from the programmer's work into programs.

The challenges and tasks we face are to find practical solutions to real problems within the available time and effective resources.

  1. Pursue perfection, which is how computers operate. Learn to adjust your way of doing things towards perfection.
  2. Have others provide goals, resources, and information.
  3. Sometimes rely on others' programs, often the programming products (mentioned above) provided by others are incomplete.
  4. Trivial and repetitive bug-finding activities.
  5. Technology develops rapidly, and concepts deteriorate quickly. Compare with other parts of the existing system rather than unrealized concepts in your mind.

This is programming. A tar pit where many people struggle painfully and a creative activity where joy and frustration coexist.

History

  • 2024.11.17 23:51, created by xiaoka, YJ: first version

历史

  • 2024.11.21, Created by 小卡