早在 2013 年,我就开始了 mammoth.js,这是一个将 Word 文档转换为 HTML 的库。它不是一个大项目 - 大约 3,000 行 - 也不是特别令人兴奋。不过,我强烈怀疑,这个微小的副项目比我作为软件开发人员工作的整个十年产生的积极影响更大。我在工作的一个星期五下午写了原始版本,当时我意识到我的一些同事每周都要花费数小时和数小时煞费苦心地将 Word 文档中的文本复制到我们的 CMS 中并对其进行格式化。我编写了一个工具来自动化该过程,利用我们一致的内部样式将 Word 样式映射到正确的 CSS 类,而不是生成 Word 会生成的 HTML 汤。它并不完美 - 我的同事通常仍然需要调整一些东西 - 但我猜它为他们节省了 90% 以上的时间,他们以前花在一项琐碎和重复的任务上。由于这似乎是其他人遇到的问题,我自己做了一个开源实现,首先是 JavaScript,后来移植到 Python 和 Java。从那时起,我收到了人们的消息,告诉我如何为他们节省了很多时间:也许最暖心的是有人告诉我,他们每周节省的时间都花在了儿子身上。我不知道节省的总时间是多少,但我几乎可以肯定,它至少比我花在该工具上的时间多数百倍。诚然,近年来我并没有真正对项目进行那么多的开发。 docx 格式的稳定性意味着核心功能无需更改即可继续工作,并且大多数人使用相同的小功能子集,因此添加对更多案例和更多功能的支持正在迅速减少回报。项目的性质意味着我实际上并不需要支持那么多 docx:因为它试图通过将 Word 样式转换为 CSS 类来保留语义信息,而不是像 Word 一样在 HTML 中生成高保真副本,它可以愉快地忽略 Word 格式的大部分实际细节。相比之下,作为一名软件开发人员工作了十多年,我实际获得报酬的工作的影响似乎平淡无奇。
我试图选择在看起来有用的领域工作的公司:开发人员生产力,治疗疾病,教育。虽然我在这些工作中的成功是可变的 - 在某些情况下,我为自己的成就感到自豪,在其他情况下我是很确定我的净影响充其量是零 - 我很难说累积影响大于我的小副项目。有时我想知道是否有可能靠猛犸象谋生。虽然可以选择捐赠 - 我目前每周从常规捐赠中获得总计 1.15 英镑 - 这不是我非常努力的事情。有特定用途我在业余时间可能永远无法支持的更复杂的案例 - 例如,支持方程 - 所以可能有钱可以在那里赚钱。不过,我不确定这会让我更快乐。如果我是一名独立开发者,我可能会想念与其他人一起工作,而且我不确定我是否真的有气质去做这项工作以获得足够的销售额过日子。然而,不知何故,这感觉像是一个错失的机会。开发可以立即看到好处的工具是非常令人满意的,而且可能有很多领域软件仍然可以提供帮助,而无需机器学习或由风险投资支持的高增长初创公司。我只是不确定像我这样的人真正这样做的最佳方式是什么。