跳到主要内容

我是如何进入软件行业的?

原文链接:How I Got Into Software,作者:mooreds,发布于 Jan 9, 2023


I was chatting with a Twitter friend the other day and he asked me how I got into software, specifically what was the first program I wrote. I realized I’ve never shared the story in written form, though I did discuss it on a podcast, so I wanted to write it down here.

有一天,我和一个 Twitter 好友聊天,他问我是如何进入软件行业的?特别是我写的第一个程序是什么?我突然意识到尽管我曾经在播客上讨论过这个故事,但似乎从来没有以书面形式分享过,所以我想把它写在这里。

The story begins in an office, on the job. My parents ran an insurance brokerage. I worked there as a child. There were many tasks:

故事开始于一间办公室,一份工作。我父母是是保险经纪人,经营着一家保险经纪公司,小时候我也在那里工作,帮忙干一些活。这其中有大量费时费力的工作,例如:

  • filing paper documents(填写文件)
  • answering the phone(接听电话)
  • copying correspondence(复印信件)
  • folding letters and putting them into envelopes(把信件折叠起来放进信封里)
  • and more.(以及更多)

One task that I found particularly odious was the renewal letter process.

在这过程中,我发现续签保险单是一个特别让人讨厌的任务。

Every month, the brokerage was required by law to send a letter to clients whose insurance policy was expiring in that month. We had to provide information about both the policy and us, so clients could contact us to change or cancel their policy.

每个月都有很多客户的合约到期,我们必须在保单到期前,给客户发送提醒信函和保单,以便客户续费或联系我们。

When we first did the renewals, for every client we took a template letter and made a copy in WordPerfect, our word processing program. We updated the letter with the required information such as the policy number and client address. We found that client specific information by looking through a filing cabinet for the client’s folder. After proofreading, we’d print the letter, address an envelope, fold and insert it, and finally mail it off.

这些信函和保单有电子模板,但是我们需要在文档编辑软件 WordPerfect 里面打开这个模板,手工输入每个客户的个人信息和保单编号。然后需要在文件柜中找到该客户的文件夹,查看具体信息并一一校对,之后再把信件打印出来,并在信封上写上地址,将信件折叠放入,最后邮寄出去。

We definitely batched up some processes, such as folding and addressing. I remember having a sponge that you could rub the stamps with in order to spare your tongue (this was before sticker stamps).

我们确实对这个流程做了一些优化(批处理),比如折叠信件和查找客户资料。我还记得我们当时有一块专门用来擦邮票的海绵,这样你就不用用舌头了(那是在贴纸印章出现之前)。

But the letter creation was a time consuming process, because you went back and forth from the filing cabinet and the computer typing policy numbers and addresses.

但这个过程还是很烦人,因为你要在档案柜和电脑之间来回打印保单号码和地址。查找客户地址、输入模板、手写信封都是人工完成,为了不出错,做完后必须再校对一遍。更可怕的是,这样的过程每个月都要重复一遍。

I had been playing with WordPerfect macros at home, and realized that this was a mail merge problem. I looked around and found a database called Notebook that we could use. Notebook let me record the policy number, expiration date, and address of a client. I could pull the clients who had policies expiring in the upcoming month, merge their data with the template and generate all the letters. No more miserable copying and pasting.

后来,我看到 WordPerfect 文档编辑软件有宏功能,意识到我们面临的麻烦是一个邮件合并问题。并且我还发现了一个叫做 Notebook 的数据库,我们可以将保单号、到期日期和客户地址等信息填进该数据库。这样我就可以很方便地找出哪些客户保单即将到期,提前一个月将他们的数据与文档模板合并,生成所有信件。不用再痛苦地复制和粘贴了。

Once I had a proof of concept showing this worked for one to two clients, my parents agreed that this was a good idea and that we should do this going forward. However, rather than do a massive data entry project, we added policies one month at a time. There was one more year of looking up the values in the file folders, adding them to the Notebook database, and then running the mail merge. But after that year, printing out these renewal letters became a 10 minute task rather than a multi-day ordeal.

一旦我的概念证明表明这适用于一到两个客户,我的父母就同意这是一个好主意,我们应该继续这样做。不过,我们并没有集中进行大量数据输入,而是采用一个月添加一次的策略。因此,我们又花了一年时间在档案柜中查找客户资料,将它们添加到 Notebook 数据库,然后运行邮件合并。但在那一年之后,打印这些续签信件从每月好几天的烦人工作,变成了一个自动执行10分钟的任务。

There was still tedious work to be done. We had to keep the Notebook database in sync with the file folders as policies changed over the year. We still had to address, stuff and stamp the envelopes.

当然,繁琐的工作还是免不了。我们必须使 Notebook 数据库与客户信息保持同步,还要人工往信封塞打印件和盖章等等。

But with a database, the document template and mail merge, we’d eliminated a painful task.

但是通过数据库、文档模板和邮件合并,我们消除了一个痛苦的任务。

That was the first time I saw the power of software to reduce human misery. Yes, on a small scale, but still!

那是我第一次看到软件减少人类痛苦的力量。是的,虽然规模很小,但还是很大!

This theme, “reduce human misery” is the core of the value of software for me. I aim at that goal in the work I have done over the past decades and the work I do today.

从此,“减少人类的痛苦”对我来说就是软件价值的核心。我在过去几十年的工作和今天的工作中都致力于实现这一目标。