前几天有人在 Stack Exchange 上提了一个问题 How can a new programmer impress the software engineer (boss)?（作为新手程序员如何给软件工程师出身的老板留下好印象？），Joel Spolsky（Joel on Software 的主人，《软件随想录》的作者） 看到了这个问题，他没有正面回答，而是在下面讲了悲催的程序员阿士顿的故事。我很喜欢这个故事，于是就大概翻译过来分享一下。翻译得很仓促，错误难免，见谅。
Did I ever tell you about Ashton?
阿士顿是一个典型的吃玉米长大的农场男孩，他的父母曾经是嬉皮士，从来没有真正地同心协力过，直到有一天他的妈妈继承了密歇根农村的 15 亩地。然后他全家搬到了那里，买了一对奶山羊，靠在农贸市场把有机山羊奶酪卖给雅皮士们谋生。
Ashton was your classic corn-fed farm boy. His parents had been hippies who never really managed to get their acts together until his mother inherited 15 acres in a rural part of Michigan. The family moved out there, bought a couple of dairy goats, and struggled to make a living selling organic goat cheese to the yuppies at the Ann Arbor Farmer’s Market.
那个时候阿士顿才 10 岁，他需要每天早晨 4 点起床给那些该死的山羊挤奶，这活非常累。阿士顿很喜欢上学，因为上学就意味着不需要跪在羊粪里工作了。整个高中他都异常努力，希望可以拿到一所名牌大学的奖学金，然后他就可以离开农场了。在大学里，他发现大学生活比农场的生活轻松多了，所以搞不明白为什么每个人不能像他那样每科都拿到 A。他选择了软件工程作为自己的专业，因为他深信一个工程师绝对不需要早晨 4 点就起床。
From the time he was ten years old, Ashton had to wake up every morning at 4:00 a.m. and milk those damn goats, and it was exhausting. Ashton loved going to school because it meant he wasn’t working knee-deep in goat poop. Throughout high school, he studied his ass off, hoping that a scholarship to a good university would be his ticket out of the farm. He found college to be so much easier than farm life that he didn’t understand why everyone else didn’t get straight A’s like him. He majored in Software Engineering because he couldn’t imagine engineers ever being required to wake up at 4:00 a.m.
阿士顿就这样从学校毕业了，他对软件产业并没有很多了解，所以他去了招聘会，申请了 3 份工作，并且都拿到了 offer 。然后他挑了一个给钱最多的 offer：年薪高达 32,000 美元，这是一家位于密歇根西南部的大家具公司，为全世界的企业生产办公小隔间（cubicle farm）。入职之后，因为阿士顿再也不想回到农场了，所以他决定给他的老板查理·谢尔曼留下一个好印象。
Ashton graduated from school without knowing much about the software industry, really, so he went to the career fair, applied for three jobs, got accepted by all three, and picked the one that paid the most: something insane like $32,000 a year, working at a big furniture company in the southwestern part of the state that manufactured cubicle farms for corporations all over the world. He never wanted to see a farm again, so he was determined to make a good impression on his boss, Charlie Sherman.
“That’s not going to be easy,” his cubicle-mate, Jeff, said. “She’s something of a legend here.”
“What do you mean?” he asked.
“Well, you remember a few years ago, when there was all that uproar about Y2K?”
Ashton was probably too young. “Y2K?”
“是这样的，没有人预料到在 60 年代写的程序在 2000 年还会继续运行，所以当时给年份只留了 2 个数字的存储空间，也就是说 1999 被存储为 99 。所以当 2000 年到来的时候，计算机系统就会崩溃，因为它会试图将 100 存储成 2 个数字。”
“You know, nobody expected that all the old computer programs written in the 1960s would still be running in 2000, so they only had room for two digits for the year. Instead of storing 1999, they would store 99. And then when the year flipped over on January 1st, 2000, the computer systems crashed, because they tried to fit “100” in two digits.
“Really? I thought that was a myth,” Ashton said.
“At every other company in the world, nothing happened,” Jeff said. “They spent billions of dollars checking every line of code. But here, of course, they’re cheap bastards, so they didn’t bother doing any testing.”
“Not at all?”
“几乎没有。零测试。所以你瞧，当人们在 2000 年 1 月 2 号开始工作的时候，发现所有东西都不能工作了。他们不能打印生产计划，甚至不能打开半个装配生产线。没有人知道如何进行工作，工厂差不多停滞了。”
“Zilch. Zero testing. Nada. And lo and behold, when people staggered back into work on January 2nd, not a single thing worked. They couldn’t print production schedules. They couldn’t get half of the assembly lines to even turn on. And nobody knew what shifts they were supposed to be working. The factory literally came to a standstill.”
“You’re kidding,” Ashton said.
“I shit you not. The factory was totally silent. Now, Charlie, she was new then. She had been working at Microsoft, or NASA, or something... nobody could figure out why someone like her would be working in our little armpit of a company. But she sat down, and she started coding. And coding. And coding.
查理整整写了九天代码，这九天她没有睡觉，没有吃东西，有些人说她甚至没有去过洗手间。她检查了一个又一个系统并且逐个修复了它们。那真是一件壮观的事情，老天，那些需要被修复的可是 COBOL（一种非常古老的编程语言）系统。在整个工厂处于停滞状态的时候，查理派人去大学图书馆找来了古老的 COBOL 手册。装配线上的工人站着直哆嗦，因为连恒温器也有千年虫问题。而查理则一杯接一杯地喝咖啡，像一个疯婆子一样不断敲击键盘。”
“Charlie coded for nine days straight. Nine days without sleeping, without eating, some people even claimed she never went to the bathroom. She went from system to system and literally fixed all of them. It was something to behold. My God, there were COBOL systems in there that needed to be fixed. The whole factory at a standstill, and Charlie is sending people to the university library in Ann Arbor to find old COBOL manuals. Assembly-line workers are standing around shivering, because even the thermostats had a Y2K bug. And Charlie is drinking cup after cup of coffee and typing like a madwoman.”
“Wow. And she never went to the bathroom?”
“呃，那个部分可能有稍微那么一点点的夸张成分，但是她的确连续 9 天工作 24 小时。总之，在 1 月 11 号的时候，就在开工前一天的 5 分钟，她走出了她的隔间，来到了打印机面前，按下了一个按钮，然后，奇迹出现了！生产计划打印出来了，团队计划也打印出来了。一切都是完美的，经过了完美的格式化，使用了一个稍微较小的字体把 ‘2000’放到了原来写‘99’的地方，她甚至还写了一个新的优先级优化系统，可以帮助工人在不得罪那么多客户的情况下赶上过去 9 天的生产进度。所有的装配线都开始工作，好像从来没有出现过错误一样，供暖也恢复了，打印出来的发票的年份由‘19100’变成了‘2000′。而且，之后谁也没有找到过一个 bug.”
“Well, that part might be a little bit of an exaggeration. But she really did work 24 hours for nine days straight. Anyway, on January 11th, about five minutes before the day shift is supposed to start, she comes out of her cubicle, goes to the line printer, hits a button, and boom! out comes the production schedules, and the team schedules, and everything is perfect, perfectly formatted, using a slightly smaller font so that the “2000” fits where it used to say “99,” and she’s even written a new priority optimizing system that helps them catch up with 9 days of missed production without pissing off too many customers, and all the assembly lines start running like nothing was ever wrong, and the heat comes on, and the invoices come out printed with ‘2000’ as the year instead of ‘19100,’ and after that day, nobody found a single bug.”
“得了吧！” 阿士顿说。“谁也写不出没有 bug 的代码。”
“Oh come on!” Ashton says. “Nobody writes code without bugs.”
“She did. I saw it with my own eyes. The first day back they ran two days worth of cubicles without a hiccup.”
Ashton was dumbstruck. “That’s epic. How can I live up to that?”
“你做不到，伙计，没人能做到” 杰夫边说边回到了自己的电脑前面，继续玩已经玩了 4 个多月的斯波克和蝙蝠侠之间的在线战争游戏。
“You can’t, buddy, nobody can,” Jeff said, turning back to his computer terminal, where he resumed an online flame war over who would win in a fight, Spock or Batman, which had been raging for over four months.
Not one to give up, Ashton swore he would, one day, do something legendary. But the truth is, there never was another Y2K. And nobody, in that part of Michigan, gave a rat’s ass about good programming. There was almost nothing for the programmers to do, in fact. Ashton got dumb little projects assigned to him... at one point he spent three weeks working on handling a case where the sales tax in one particular county was wrong because some zip code spanned two different sales tax zones. The funny thing was, it was in some unpopulated part of New York State where nobody ever bought office cubicles, and they had never had a customer there, so his code would never run.
For two years Ashton came into work enthusiastic and excited, and dying to make a difference and do something terrific and awesome, while his coworkers surfed the Internet, sent instant messages to their friends, and played computer solitaire for hours.
坐在他旁边的那个同事杰夫，只有一个工作内容：每周更新一个“显示本周有多少人在工作中受伤”的 Excel 电子表格。从来没有人受过伤。每周杰夫都打开那个电子表格，然后移动到页面的底部，在那里输入日期和一个数字 0，点击保存，然后就完成了工作。
Jeff, his cubicle-mate, only had one responsibility: updating the weekly Excel spreadsheet indicating how many people were hurt on the job that week. Nobody ever was. Once a week, Jeff opened the spreadsheet, went to the bottom of the page, entered the date and a zero, hit save, and that was that.
Ashton even wrote a macro for Jeff that automated that one task. Jeff didn’t want to get caught, so he refused to install it. They weren’t on speaking terms after that. It was awkward.
On the morning of his two year anniversary at the cubicle company, Ashton was driving to work when he realized something.
Not one line of code that he had written had ever run.
Not one thing he had done in two years of work made any impact on the world.
而且在密歇根州的这个地方气温他妈的有 24 度，天空是灰色的，弥漫着臭味。他开的本田车也是一坨垃圾，在这个小镇上他没有任何朋友，他自己也什么都不是。
And it was fucking 24 degrees in that part of Michigan, and it was gray, and smelly, and his Honda was a piece of crap, and he didn’t have any friends in town, and nothing he did mattered.
As he drove down Lincoln Avenue, he saw the furniture company ahead on the left. Three flags fluttered in front of the corporate campus: an American flag, a flag of the great state of Michigan, and a white and red flag with the company logo. He got in the turning lane behind a long line of cars waiting to turn left. It always took four or five traffic light cycles, at rush hour, to make the turn, so Ashton had plenty of time to try to remember if any code he had ever written was ever used by anyone.
And it hadn’t. And he fought back a tear.
And instead of turning left, he went straight, almost causing an accident because he forgot that the left turn light didn’t mean you could go straight.
And he drove right down Lincoln Avenue, and got onto the Gerald Ford freeway, and he just kept driving until he got to the airport over in Grand Rapids, and he left his crappy old Honda out right in front of the terminal, knowing perfectly well it would be towed, and didn’t even close the car door, and he walked right up to the Frontier Airlines counter and he bought himself a ticket on the very next flight to San Francisco, which was leaving in 20 minutes, and he got on the plane, and he left Michigan forever.