一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

程序員阿士頓的故事

  前幾天有人在 Stack Exchange 上提了一個問題 How can a new programmer impress the software engineer (boss)?(作為新手程序員如何給軟件工程師出身的老板留下好印象?),Joel Spolsky(Joel on Software 的主人,《軟件隨想錄》的作者) 看到了這個問題,他沒有正面回答,而是在下面講了悲催的程序員阿士頓的故事。我很喜歡這個故事,于是就大概翻譯過來分享一下。翻譯得很倉促,錯誤難免,見諒。

  正文:

  我告訴過你有關(guān)阿士頓的事情嗎?

  阿士頓是一個典型的吃玉米長大的農(nóng)場男孩,他的父母曾經(jīng)是嬉皮士,從來沒有真正地同心協(xié)力過,直到有一天他的媽媽繼承了密歇根農(nóng)村的15畝地。然后他全家搬到了那里,買了一對奶山羊,靠在農(nóng)貿(mào)市場把有機(jī)山羊奶酪賣給雅皮士們謀生。

  那個時候阿士頓才10歲,他需要每天早晨4點起床給那些該死的山羊擠奶,這活非常累。阿士頓很喜歡上學(xué),因為上學(xué)就意味著不需要跪在羊糞里工作了。整個高中他都異常努力,希望可以拿到一所名牌大學(xué)的獎學(xué)金,然后他就可以離開農(nóng)場了。在大學(xué)里,他發(fā)現(xiàn)大學(xué)生活比農(nóng)場的生活輕松多了,所以搞不明白為什么每個人不能像他那樣每科都拿到A。他選擇了軟件工程作為自己的專業(yè),因為他深信一個工程師絕對不需要早晨4點就起床。

  阿士頓就這樣從學(xué)校畢業(yè)了,他對軟件產(chǎn)業(yè)并沒有很多了解,所以他去了招聘會,申請了3份工作,并且都拿到了 offer 。然后他挑了一個給錢最多的offer:年薪高達(dá) 32,000美元,這是一家位于密歇根西南部的大家具公司,為全世界的企業(yè)生產(chǎn)辦公小隔間(cubicle farm)。入職之后,因為阿士頓再也不想回到農(nóng)場了,所以他決定給他的老板查理謝爾曼留下一個好印象。

  “這個可不簡單”,坐在他隔壁的同事杰夫說:“她在這里也算是個傳奇人物了。”

  “你的意思是?” 他說。

  “嗯,你還記得幾年前嗎?那個時候到處都是關(guān)于千年蟲的話題。”

  阿士頓可能是太年輕了。“千年蟲?”

  “是這樣的,沒有人預(yù)料到在60年代寫的程序在2000年還會繼續(xù)運(yùn)行,所以當(dāng)時給年份只留了2個數(shù)字的存儲空間,也就是說 1999 被存儲為 99 。所以當(dāng) 2000 年到來的時候,計算機(jī)系統(tǒng)就會崩潰,因為它會試圖將 100 存儲成2個數(shù)字。”

  “真的?我還以為那只是個傳說,” 阿士頓說。

  “世界上所有其它的公司都沒有發(fā)生什么事故,” 杰夫說。“因為它們花了數(shù)十億美元去檢查每一行代碼。但是在我們公司,當(dāng)然了,因為他們是狗娘養(yǎng)的混蛋,所以他們不愿意做任何測試。”

  “完全沒有做嗎?”

  “幾乎沒有。零測試。所以你瞧,當(dāng)人們在2000年1月2號開始工作的時候,發(fā)現(xiàn)所有東西都不能工作了。他們不能打印生產(chǎn)計劃,甚至不能打開半個裝配生產(chǎn)線。沒有人知道如何進(jìn)行工作,工廠差不多停滯了。”

  “你在開玩笑。” 阿士頓說。

  “絕對沒有。工廠整個都停止運(yùn)轉(zhuǎn)了。這個時候查理出現(xiàn)了。她那個時候還是個新人,曾經(jīng)在微軟,可能是NASA,也可能是其它機(jī)構(gòu)工作過……沒有人清楚為什么像她那樣的牛人會到我們這種地方工作。然而她坐了下來,然后開始寫代碼。然后寫代碼。繼續(xù)寫代碼。

  查理整整寫了九天代碼,這九天她沒有睡覺,沒有吃東西,有些人說她甚至沒有去過洗手間。她檢查了一個又一個系統(tǒng)并且逐個修復(fù)了它們。那真是一件壯觀的事情,老天,那些需要被修復(fù)的可是 COBOL(一種非常古老的編程語言)系統(tǒng)。在整個工廠處于停滯狀態(tài)的時候,查理派人去大學(xué)圖書館找來了古老的 COBOL 手冊。裝配線上的工人站著直哆嗦,因為連恒溫器也有千年蟲問題。而查理則一杯接一杯地喝咖啡,像一個瘋婆子一樣不斷敲擊鍵盤。”

  “哇。她沒有去過洗手間?”

  “呃,那個部分可能有稍微那么一點點的夸張成分,但是她的確連續(xù)9天工作24小時。總之,在1月11號的時候,就在開工前一天的5分鐘,她走出了她的隔間,來到了打印機(jī)面前,按下了一個按鈕,然后,奇跡出現(xiàn)了!生產(chǎn)計劃打印出來了,團(tuán)隊計劃也打印出來了。一切都是完美的,經(jīng)過了完美的格式化,使用了一個稍微較小的字體把 ‘2000’放到了原來寫‘99’的地方,她甚至還寫了一個新的優(yōu)先級優(yōu)化系統(tǒng),可以幫助工人在不得罪那么多客戶的情況下趕上過去9天的生產(chǎn)進(jìn)度。所有的裝配線都開始工作,好像從來沒有出現(xiàn)過錯誤一樣,供暖也恢復(fù)了,打印出來的發(fā)票的年份由‘19100’變成了‘2000′。而且,之后誰也沒有找到過一個bug.”

  “得了吧!” 阿士頓說。“誰也寫不出沒有bug的代碼。”

  “她做到了。我親眼看到的。這是他們第一天無間斷地生產(chǎn)了相當(dāng)于以往兩天生產(chǎn)的小隔間。”

  阿士頓目瞪口呆。“這簡直是史詩阿。我怎么才能做到那樣?”

  “你做不到,伙計,沒人能做到” 杰夫邊說邊回到了自己的電腦前面,繼續(xù)玩已經(jīng)玩了4個多月的斯波克和蝙蝠俠之間的在線戰(zhàn)爭游戲。

  阿士頓不是一個輕言放棄的人,他發(fā)誓某一天他也會做一些富有傳奇色彩的事情。但現(xiàn)實情況是,再也沒有出現(xiàn)另外一個千年蟲問題。而且在密歇根的那個地方,沒有人可以提供一丁點兒關(guān)于如何寫好程序的信息。事實上幾乎沒有什么事情需要程序員去做。分配給阿士頓去做的都是一些無聊的小項目……有一次他花了三個星期來處理這樣一個事情:由于兩個不同的銷售稅區(qū)域使用了相同郵政編碼,導(dǎo)致在某個縣的銷售稅是錯誤的。有趣的是,這個縣位于紐約一個人煙稀少的地方,那里沒有人買過辦公小隔間,公司在那里也從來沒有一個客戶,所以他寫的代碼永遠(yuǎn)都不會運(yùn)行。

  日子就這樣過去了。

  兩年來阿士頓一直帶著熱情和興奮投入工作,迫不及待地想有所作為,想做一些了不起的事情。與此同時,他的同事卻在上網(wǎng)沖浪,給朋友發(fā)短信,連續(xù)幾個小時地玩電腦紙牌。

  坐在他旁邊的那個同事杰夫,只有一個工作內(nèi)容:每周更新一個“顯示本周有多少人在工作中受傷”的 Excel 電子表格。從來沒有人受過傷。每周杰夫都打開那個電子表格,然后移動到頁面的底部,在那里輸入日期和一個數(shù)字0,點擊保存,然后就完成了工作。

  阿士頓甚至幫杰夫?qū)懥艘粋€宏來自動化他的工作。杰夫不想被逮到,所以他拒絕安裝這個宏。從那之后他們的關(guān)系就變僵了,真是尷尬。

  在阿士頓工作兩周年的那天早晨,他和以往一樣開車去工作,然后忽然意識到了一些事情。

  他寫過的任何一行代碼都沒有運(yùn)行過。

  過去兩年內(nèi)他做的任何一件事情都沒有對世界產(chǎn)生過什么影響。

  而且在密歇根州的這個地方氣溫他媽的有24度,天空是灰色的,彌漫著臭味。他開的本田車也是一坨垃圾,在這個小鎮(zhèn)上他沒有任何朋友,他自己也什么都不是。

  當(dāng)他開車到林肯大街的時候,他看到了左邊他所在的那個家具公司。在公司園區(qū)前面飄揚(yáng)著三面旗幟:美國國旗,偉大的密歇根州的州旗以及一面有公司標(biāo)識的紅白相間的旗幟。他開車進(jìn)入了轉(zhuǎn)彎車道等待左轉(zhuǎn),他的前面有一長排車,在高峰期的時候需要等四到五個紅綠燈才可以左轉(zhuǎn),所以阿士頓有足夠的時間來回想他寫過的代碼有沒有哪怕一行是被別人使用過的。

  沒有。他怔怔地留下了眼淚。

  然后他沒有左轉(zhuǎn),直接往前開了出去,這差點釀成了一起交通事故。阿士頓忘記了自己已經(jīng)打了轉(zhuǎn)向燈,而打了轉(zhuǎn)向燈就意味著你不能直接往前開。

  他沿著林肯大道開了下去,然后上了高速公路,他只是不停地往前開,一直來到了機(jī)場。他把他的垃圾本田扔在了航站樓的前面,心里非常清楚它會被拖走。他甚至沒有去關(guān)車門就徑直走到了柜臺前面買了下一趟飛往舊金山的航班的機(jī)票,20分鐘內(nèi)起飛。然后他上了飛機(jī),永遠(yuǎn)地離開了密歇根。

  英文原文

Did I ever tell you about Ashton?

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.

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.

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?”

“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?”

“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.

“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?”

“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.”

“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?”

“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.

Ever.

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.

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.

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.

  ================== 我是分割線 =============

  有人在這篇文章下面回復(fù)說:“The story continues: He went to work for Google, where he worked on Wave. And again, noone was using his code.” (故事繼續(xù):他去了Google編寫 Google Wave. 所以,還是沒有人使用他的代碼。:D )

  ================== 再分割 ===============

  不得不說 Joel 寫文章真是沒的說,一個小故事講得生動有趣且不乏細(xì)節(jié)。國外程序員寫文章寫得好的可真多阿,像 Joel, Paul Graham, DHH… DHH 這家伙長得也帥,還上過時尚雜志的封面,我覺得肯定沒有人稱他們?yōu)?ldquo;IT男”。相比之下,國內(nèi)大部分程序員寫文章都慘不忍睹,說好聽點叫“散文”,一篇文章都是散的,上下文根本沒有組織,完全自說自話,讓人根本沒有訂閱的欲望。沒見過缺少好的文檔又非常流行的技術(shù)。也就是蔡學(xué)鏞,劉未鵬等一些屈指可數(shù)的大牛寫得好,而且我很佩服的蔡學(xué)鏞還是臺灣的,真是……哎。

it知識庫程序員阿士頓的故事,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 久9精品视频 | 国产精品视频免费看 | 亚洲成在人色婷婷 | 91精品影视 | 国产一区二区久久久 | 欧美黄色a级片 | 亚洲欧美视频一区二区三区 | 一级毛片成人免费看免费不卡 | 亚洲国产精久久久久久久 | 国产高清乱理论片在线看 | 91热精品| 亚洲黄色美女 | 亚洲国产天堂久久综合 | 超清乱人伦中文视频在线 | 亚洲伊人激情 | 久久妻| 99久久精品国产高清一区二区 | 日本www视频 | 91国内揄拍国内精品对白 | www.亚洲视频.com | 一区二区三区中文字幕 | julia一区二区三区中文字幕 | 国产不卡一区二区三区免费视 | 精品国产91久久久久久久 | 波多野结衣精品一区二区三区 | 成年美女黄网站色视频大全免费 | 免费人成网站尤物在线观看 | 国产在线综合网 | 玖玖青草| 国产福利免费视频 | 欧美一级亚洲一级 | 国内精品在线播放 | 亚洲欧美卡通另类 | 成人国产精品视频频 | youjizz日韩 | 免费99视频有精品视频高清 | 91精品国产麻豆福利在线 | 一道精品视频一区二区三区图片 | 日韩午夜免费 | 看全色黄大色黄大片色黄看的 | 国产真实伦视频在线视频 |