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

程式有問題時不要擔心。如果所有東西都沒問題,你就失業​​了。
評論
評論

本文轉自 〈IT 外刊評論 〉。

一名叫做 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)


趕上全民投資運動!國泰世華網銀 App 線上搞定證券戶,還能投資美股、加強理財

因疫情而興起的產業類別,在過去一段時間的表現,讓不投資的民眾對於「航海王」、「鋼鐵人」…等詞彙也能朗朗上口,連大學生愛用的社群平台Dcard也有不少的股票討論。用投資來刻畫更好的生活,已經是全民運動。
評論
Photo Credit:iStock
評論

「持續投資」是管理超過千億美元、全球最知名的資產管理公司橡樹資本共同創辦人霍華.馬克斯(Howard Marks)6 月在國泰世華銀行舉辦的全球投資展望線上論壇中,給予所有投資人的未來建議。儘管下半年不可預期,但持續出擊仍是投資巨擘的建議方向。

就算對投資毫無頭緒,也必須明白一個道理:通貨膨脹在短期內也許沒有感覺,但長期來看,一般民眾放在銀行裡面的錢只會愈來愈小。抵抗通膨的方式,便是有目的性地理財。撇開通膨,不管旅遊、購物、添購生財器具,甚至是退休,都需要有財務規劃的支持,投資理財絕對是規劃道路上事半功倍的選擇。

立即體驗行動金融

投資已成全民運動,國泰世華網銀 App,最快 5 分鐘完成開戶手續

不過,投資並不是有錢人的專利。根據證交所的資料顯示,2020 年台灣的開戶數達到 1,124 萬人,也就是說,每兩個台灣人,就有一個人擁有證券戶。尤其是 20 至 30 歲的年輕族群,占比從五年前的 25.4% 快速增加至 36.1%,大幅成長至 123 萬人。

也因為航海、鋼鐵族群過去一段時間的表現,讓不投資的民眾對於「航海王」、「鋼鐵人」也能朗朗上口,連大學生愛用的社群平台 Dcard 也有不少的股票討論。用投資來刻畫更好的生活,已經是全民運動。

一切的起點都必須從擁有證券戶開始。但自從新冠狀病毒(COVID-19)侵擾以來,臨櫃開戶伴隨而來的等待時間,無形中提高了染疫風險,要參與這項全民運動似乎難度不低。

國泰世華網路銀行 App 以民眾需求為優先,提供了「線上開證券戶」服務,只要備妥雙證件,最快 5 分鐘就能完成開戶手續。國泰世華網路銀行 App 不只提供買賣台股的功能,同步開通了美股複委託,讓跨海購買 Google、Apple 或微軟的股票都在手機上就能輕鬆操作。

Photo Credit:國泰世華

有了證券戶後,固然可以開啟投資人生,但對初步踏入股市的民眾來說,投資不懂得標的無疑是一種賭博。國泰提供每月最低 1,000 元的定期定額存股,不管是熱門股票,或者想要選擇風險較為分散的 ETF,都任由民眾挑選、輕鬆存股;或者也能透過國泰提供的「投資屬性」分析,了解自己的風險承受程度及偏好,選擇適合的基金來投資。

Photo Credit:國泰世華

上述的功能全部收攏在國泰世華網銀 App 內,用一個簡單的 App 就能輕鬆掌握,並檢視所有的資產狀況。

不只是手機上的銀行,更是消費者所有金融服務的提供者

投資難免有風險,對於尚在觀望,或是投資性格較為保守的民眾來說,先安穩地「存一筆本金」是個比較好的開始。

許多理財專家都提到,唯有掌握現金流的流入與流出,才是儲蓄的開端。國泰世華網銀 App 內提供了「母子帳戶」的服務。舉例來說,可以在母帳戶下分出旅遊帳戶、投資帳戶、緊急帳戶、教育基金帳戶等,每一筆錢都有了固定的去處,就不怕克制不了購物慾造成的額外開支。唯有自動化、不必費心的服務,才能最無痛地把錢存起來。

Photo Credit:國泰世華

但這也不代表要犧牲生活品質,利用母子帳戶「目標儲蓄」的功能,也能設定自動匯入固定的款項到子帳戶中,譬如設定一個「大餐帳戶」,每月存入 NT$3,000 元作為犒賞自己辛勞的來源;或是設定一個「遊戲基金」,存入固定的金額來限制自己每年的購買遊戲金額。

如果你打算在疫情解封之後,來一趟好久不見的旅行,除了目標儲蓄之外,利用國泰世華網路銀行 App,只要三分鐘就能開設外幣帳戶,除了買賣外幣有獨享的優惠,國泰還提供最長一年的匯率走勢圖,讓民眾可以在外幣便宜的時刻分批購買。

其他網路銀行應有的功能,不論是存、提、轉、匯,或是繳費、貸款、刷卡推波、消費紀錄查詢、臨時的額度調整等,國泰世華網銀 App 中也都能找到。除此之外,針對資料傳輸、儲存都建立了保護機制,加密技術、使用者辨識系統、存取控制等機制都是基本,來避免資料被第三人截取得知,為資料做最完善的安全把關。

Photo Credit:國泰世華

更重要的是,國泰世華銀行讓手機不只是銀行,同時也是投資幫手、資產管理師。提供最貼近生活上的金融服務,才能回歸服務好每一位消費者的初心。

立即體驗行動金融

本文係由國泰世華邀稿

證券服務由國泰證券提供

台北市敦化南路二段333號19樓| 客服專線 (02) 7732-6888 | 109年金管正總字第0044號