關於工程師 59 條搞笑但卻真實無比的語錄

一名叫做 Naresh Kumar 的工程師在部落格1裡整理了 59 則關於程式的語錄,包括軟體開發、程式維護、評測除錯、軟體 bug、系統設計、文件、軟體品質等等,以搞笑的方式真實描寫工程師的斑斑血淚。以下我們精選出 10 則最有趣的語錄,後面也附上 59 則完整版與原文。

  1. 程式有問題時不要擔心。如果所有東西都沒問題,你就失業​​了。(軟體工程的 Mosher 定律)
  2. 寫程式時要保持這種心態:就好像將來要維護你這些程式的人是一位殘暴的精神病患者,而且他知道你住在哪。(Martin Golding)
  3. 一個人寫的爛軟體將會給另一個人帶來一份全職工作。(Jessica Gaston)
  4. 當有這樣的一種程式語言出現:它能讓工程師用簡單的英語寫程式,你將會發現,工程師都開始不會說英語。(Anonymous Linguist)
  5. 傻瓜都能寫出電腦能理解的程式,優秀的工程師寫出的是人類能讀懂的程式。
  6. 任何你寫的程式,超過 6 個月不去看它,當你再度開啓時,看起來都像是別人寫的。
  7. 世上只有兩類程式語言:那些被人罵翻的,以及那些沒人使用的。
  8. Java 之於 JavaScript 的關係,就如同狗和熱狗。
  9. 如果除錯是消除軟體 bug 的過程,那寫程式一定是把它們放進去的過程。
  10. 開發軟體和建造教堂非常相似——完工之後我們就開始祈禱。

59 則完整版

工程師程式語錄

1. 一個好的工程師是那種過單行道馬路都要左顧右盼的人。(Doug Linder)
A good programmer is someone who always looks both ways before crossing a one-way street. (Doug Linder)

2. 程式有問題時不要擔心。如果所有東西都沒問題,你就失業​​了。(軟體工程的 Mosher 定律)
Don’t worry if it doesn’t work right. If everything did, you’d be out of a job. (Mosher’s Law of Software Engineering)

3. 工程師的麻煩在於,你無法弄清他在折騰什麼,當你最終弄明白時,也許已經太遲了。(超級電腦之父 Seymour Cray)
The trouble with programmers is that you can never tell what a programmer is doing until it’s too late. (Seymour Cray)

4. 我想大部分人都知道通常一名工程師會具有的美德。當然了,有三種:懶惰、暴躁、傲慢。(Perl 語言發明者 Larry Wall)
Most of you are familiar with the virtues of a programmer. There are three, of course: laziness, impatience, and hubris. (Larry Wall)

5. 寫程式時要保持這種心態:就好像將來要維護你這些程式的人是一位殘暴的精神病患者,而且他知道你住在哪。(Martin Golding)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. (Martin Golding)

6. 一個人寫的爛軟體將會給另一個人帶來一份全職工作。(Jessica Gaston)
One man’s crappy software is another man’s full time job. (Jessica Gaston)

7. 如果建築工人像工程師寫軟體那樣蓋房子,那第一隻飛來的啄木鳥就能毀掉人類文明。(Gerald Weinberg)
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along wound destroy civilization. (Gerald Weinberg)

8. 這世界最有可能毀滅的方式——大多數專家都同意——是由意外造成。這就是為什麼會有我們,我們是電腦專家,我們創造意外。(Nathaniel Borenstein)
The most likely way for the world to be destroyed, most experts agree, is by accident. That’s where we come in; we’re computer professionals. We cause accidents. (Nathaniel Borenstein)

9. 我們這個產業有個特別奇怪的現象:我們不但不會從失敗裡吸取教訓,同時也不從成功中學習經驗。(Keith Braithwaite)
It’s a curious thing about our industry: not only do we not learn from our mistakes, we also don’t learn from our successes. (Keith Braithwaite)

10. 一種新技術一旦開始流行,你要嘛坐上壓路機,要嘛成為鋪路石。(Stewart Brand)
Once a new technology starts rolling, if you’re not part of the steamroller, you’re part of the road. (Stewart Brand)

11. 如果​​沒能一次成功,那就叫它 1.0 版吧。(unknown)
If at first you don’t succeed, call it version 1.0 (unknown)

12. 所有的工程師都是編劇,所有的電腦都是爛演員。(Anonymous Hack Actor)
All programmers are playwrights and all computers are lousy actors. (Anonymous Hack Actor)

13. 工作進度上越快落後,你就會有越充足的時間趕上。(Anonymous Scheduler)
The sooner you get behind in your work, the more time you have to catch up. (Anonymous Scheduler)

14. 當有這樣的一種程式語言出現:它能讓工程師用簡單的英語寫程式,你將會發現,工程師都開始不會說英語。(Anonymous Linguist)
When a programming language is created that allows programmers to program in simple English, it will be discovered that programmers cannot speak English. (Anonymous Linguist)

15. 為什麼我們沒有時間把事情做對,卻總有時間把事情砍掉重練?(Anonymous)
Why do we never have time to do it right, but always have time to do it over? (Anonymous)

16. 傻瓜都能寫出電腦能理解的程式。優秀的工程師寫出的是人類能讀懂的程式。
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.

17. 任何你寫的程式,超過 6 個月不去看它,當你再度開啓時,看起來都像是別人寫的。(Eagleson’s law)
Any code of your own that you haven’t looked at for six or more months might as well have been written by someone else. (Eagleson’s law)

程式/軟體開發語錄

18. 按程式行數來評估軟體開發的進度,就如同按重量來評估飛機建造的進度。(Bill Gates)
Measuring programming progress by lines of code is like measuring aircraft building progress by weight. (Bill Gates)

19. 軟體就像做愛。一次犯錯,你需要用剩下的一生來彌補。(Michael Sinz)
Programming is like sex. One mistake and you have to support it for the rest of your life. (Michael Sinz)

20. 在水上行走和按照特定需求開發開發軟體都很容易——前提是它們都是凍結狀態。(Edward V Berard)
Walking on water and developing software from a specification are easy if both are frozen. (Edward V Berard)

21. 最初 90% 的程式消耗了最初 90% 的開發時間…最後 10% 的程式用去了另外 90% 的開發時間。(Tom Cargill)
The first 90 percent of the code accounts for the first 90 percent of the development time…The remaining 10 percent of the code accounts for the other 90 percent of the development time.(Tom Cargill)

22. 註釋程式很像清掃廁所——你不想幹,但如果你做了,這絕對會給你和你的客人帶來更愉悅的體驗。(Ryan Campbell)
Commenting your code is like cleaning your bathroom — you never want to do it, but it really does create a more pleasant experience for you and your guests. (Ryan Campbell)

23. 如今的程式是一場工程師和上帝的競賽,工程師要開發出更大更好、傻瓜都會用到軟體。而上帝在努力創造出更大更傻的傻瓜。目前為止,上帝是贏的。(Rick Cook)
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. (Rick Cook)

24. 軟體設計最困難的部分⋯⋯是阻擋新功能的引入。(Donald Norman)
The hardest part of design … is keeping features out. (Donald Norman)

25. 為了理解遞迴(recursion),我們首先要理解的是遞迴。(Anonymous)
In order to understand recursion, one must first understand recursion. (Anonymous)

26. 世上只有兩類程式語言:那些被人批得一無是處的,以及那些沒人使用的。(Bjarne Stroustrup)
There are only two kinds of programming languages: those people always bitch about and those nobody uses. (Bjarne Stroustrup)

27. 關於布林值最棒的一點是,即使你搞錯了,也只差一個位元(a bit,此為雙關語,英文「一點點」之意,也是電腦術語「位元」的意思)。(Anonymous)
The best thing about a boolean is even if you are wrong, you are only off by a bit.

28. 如果​​ Java 真的能夠垃圾回收,那大部分的程式都會在執行時自己刪除自己。(Robert Swell)
If Java had true garbage collection, most programs would delete themselves upon execution. (Robert Swell)

29. 理論上,理論和實踐是沒有差異的。但實踐中,是有的。(Jan LA van de Snepscheut)
In theory, there is no difference between theory and practice. But, in practice, there is. (Jan L. A. van de Snepscheut)

30. 預備,開火,瞄準:這是最快的軟體開發方法。預備,瞄準,瞄準,瞄準,瞄準:這是最慢的軟體開發方法。(Anonymous)
Ready, fire, aim: the fast approach to software development. Ready, aim, aim, aim, aim: the slow approach to software development. (Anonymous)

31. 寫程式是 10% 的科學、20%天份,加上 70% 的讓天份符合科學。(Anonymous)
Programming is 10% science, 20% ingenuity, and 70% getting the ingenuity to work with the science. (Anonymous)

32. 評估一件事情要比去理解你評估了什麼容易。(Anonymous)
It is easier to measure something than to understand what you have measured. (Anonymous)

33. 標準檢查程式(benchmark)不會撒謊,但制定標準檢查程式的人會。(Anonymous)
Benchmarks don’t lie, but liars do benchmarks. (Anonymous)

34. 培養員工,即使他們有跳槽的風險。什麼都不做而留他們在公司,這樣風險更大。(Anonymous)
Better train people and risk they leave – than do nothing and risk they stay. (Anonymous)

35. 電腦科學的目標是做出一個東西,並且保證它至少能堅持到我們將它開發完成。(Anonymous)
The goal of Computer Science is to build something that will last at least until we’ve finished building it. (Anonymous)

36. Java 之於 JavaScript 的關係就如同狗和熱狗。(英文是 Car 與 Carpet)。(Chris Heilmann)
Java is to JavaScript what Car is to Carpet. (Chris Heilmann)

37. 起初就把事情做對是完全沒必要的。但最後要把事情做對是絕對必要的。(Andrew Hunt and David Thomas)
It’s not at all important to get it right the first time. It’s vitally important to get it right the last time. (Andrew Hunt and David Thomas)

38. 陣列(array)的起始索引(indices)應該從 0 開始還是從 1 開始?我的 0.5 的折中提議被他們拒絕了,而我認為,他們沒有考慮周詳。(Stan Kelly-Bootle)
Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration. (Stan Kelly-Bootle)

39. 程式必須是為了給人看而寫,命令機器執行只是附帶任務。(Abelson / Sussman)
Programs must be written for people to read, and only incidentally for machines to execute. (Abelson / Sussman)

40. 寫程式可以很有趣,密碼學也是,但兩者絕對不能合而為一。(Kreitzberg and Shneiderman)
Programming can be fun, so can cryptography; however they should not be combined. (Kreitzberg and Shneiderman)

41. 複製 — 貼上是一種設計錯誤。(David Parnas)
Copy and paste is a design error. (David Parnas)

42. 電腦善於遵循指令,但不善於理解你的思維。(Donald Knuth)
Computers are good at following instructions, but not at reading your mind. (Donald Knuth)

軟體除錯語錄

43. 被刪除的程式就是被除錯的程式。(Jeff Sickel)
Deleted code is debugged code. (Jeff Sickel)

44. 如果除錯是消除軟體 bug 的過程,那寫程式一定是把它們放進去的過程。(Edsger Dijkstra)
If debugging is the process of removing software bugs, then programming must be the process of putting them in. (Edsger Dijkstra)

45. 程式除錯要比新編寫程式困難一倍。因此,如果你寫出了最聰明的程式,按此推算,你就缺乏更深遠的智慧來替它除錯。
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are–by definition–not smart enough to debug it.

46. 想在自己的程式裡找出一個錯誤是十分困難的。而當你認為你的程式沒有錯誤時,那就更難了。(Steve McConnel)
It’s hard enough to find an error in your code when you’re looking for it; it’s even harder when you’ve assumed your code is error-free. (Steve McConnel)

軟體 bug 語錄

47. 這不是個 bug——這一個未註明的功能特徵。(Anonymous)
It’s not a bug – it’s an undocumented feature. (Anonymous)

48. 沒有需求或設計,寫程式就是一種將 bug 添加到一個空白文件裡的藝術。(Louis Srygley)
Without requirements or design, programming is the art of adding bugs to an empty text file. (Louis Srygley)

49. 爛程式並不爛,只是被誤解了。(Anonymous Code Behaviorist)
Bad code isn’t bad, its just misunderstood. (Anonymous Code Behaviorist)

50. 有兩種方法能寫出沒有錯誤的程式;但只有第三種好用。(Alan J. Perlis)
There are two ways to write error-free programs; only the third one works. (Alan J. Perlis)

51. 小心上面程式中的 bug;我只知道這些程式是正確的,但沒有試過。(Donald Knuth)
Beware of bugs in the above code; I have only proved it correct, not tried it. (Donald Knuth)

軟體產品/成品語錄

52. 軟體能夠反覆使用之前,它必須要先可以用。(Ralph Johnson)
Before software can be reusable it first has to be usable. (Ralph Johnson)

53. 軟體通常在 beta 測試完成不久後發表。Beta 在拉丁語中是「還不能用」的意思。(Anonymous)
Software undergoes beta testing shortly before it’s released. Beta is Latin for “still doesn’t work". (Anonymous)

54. 最好的性能改進是將軟體從不能用的狀態變成可用。(J. Osterhout)
The best performance improvement is the transition from the nonworking state to the working state. (J. Osterhout)

55. 最便宜、最快速、最值得信賴的組件是那些還未出現的組件。(Gordon Bell)
The cheapest, fastest, and most reliable components are those that aren’t there. (Gordon Bell)

56. 我認為微軟之所以把「.Net」命名為「.Net」,是因為如此一來,它就不會出現在 Unix 的目錄裡。 (Oktal)
I think Microsoft named .Net so it wouldn’t show up in a Unix directory listing. (Oktal)

57. 軟體和教堂非常相似——建成之後我們就開始祈禱。(Sam Redwine)
Software and cathedrals are much the same – first we build them, then we pray. (Sam Redwine)

58. 除非最後一個使用者死掉,軟體是不會有完工的時候的。(Anonymous)
The software isn’t finished until the last user is dead. (Anonymous)

59. 如今的大部分軟體都非常像埃及金字塔,由成千上萬的石塊一塊一塊構成,沒有結構上的整合,而是由暴力強制和成千上萬的奴隸完成。(Alan Kay)
Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves. (Alan Kay)

分類未分類

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *