Câu nói yêu thích của bạn về lập trình là gì? [đóng cửa]


110

Câu nói yêu thích của bạn về lập trình là gì?

Một trích dẫn cho mỗi câu trả lời , và vui lòng kiểm tra trùng lặp trước khi đăng!

Câu trả lời:


231

Gỡ lỗi khó gấp đôi so với viết mã ở vị trí đầu tiên. Do đó, nếu bạn viết mã càng khéo léo càng tốt, theo định nghĩa, bạn không đủ thông minh để gỡ lỗi.

- Brian W. Kernighan


Mỗi khi tôi viết một số mã thông minh, tôi tự nhắc nhở mình về quy tắc này và nhìn lại nó để xem liệu tôi không thể làm mọi thứ theo cách đơn giản hơn để dễ duy trì sau này hay ít nhất là thêm một số nhận xét .
CodexArcanum

6
Một câu châm ngôn của một câu châm ngôn thực sự khác: Đừng quên rằng một sơ đồ có thể tăng sức mạnh não bộ của bạn. Bạn có thể hoán đổi "cấu trúc ghi nhớ của điều lớn" sang giấy không dễ bay hơi.
Tim Williscroft

1
Tôi thích đoạn trích này nhưng hàm ý là nhiều nhất chúng ta nên đặt 50% nỗ lực vào tiền mã hóa ngay từ đầu.
Jon Hopkins

4
Tôi nghĩ rằng hàm ý là bạn nên tránh sự thôi thúc của lập trình viên đó là sử dụng cách 'thông minh' để làm một cái gì đó khi cách thức hơi dài hơn, rõ ràng hơn để làm một cái gì đó hoạt động tốt.
Fishtoaster

2
Nhưng nếu đó là mã "hoàn hảo" thì sao? Không có cách nào để "gỡ lỗi" điều đó.
Mateen Ulhaq

183

Đi bộ trên nước và phát triển phần mềm từ một đặc điểm kỹ thuật là dễ dàng nếu cả hai đều bị đóng băng.

- Edward V Berard


Trích dẫn của năm, tôi sẽ sử dụng cái này
Gortron

Tôi ghét cái này Không bao giờ như vậy, vậy ai quan tâm?
JP Alioto

138

Việc này luôn mất nhiều thời gian hơn bạn mong đợi, ngay cả khi bạn tính đến Luật của Hofstadter.
  - Luật của Hofstadter


72
Não chồng tràn.
Nathan Taylor

3
@Joe D: Tôi tò mò về cách bạn viết lại một câu tiếng Anh đệ quy thành một câu không đệ quy.
Jon Purdy

4
Nó có thể hội tụ cho đủ giá trị nhỏ "còn"
mouviciel

3
+1 - Tôi tự hào được tính mình trong số hàng tỷ lập trình viên hàng đầu cùng với Douglas Hofstadter.
Peter Turner

@gf: Khi được chuyển thành xác định nguồn sau đó (với dấu gạch ngang), phần giới thiệu hàng đầu không được bảo hành ("A: Blah." -> "Blah. - A"). Đây không phải là một phần của trích dẫn.

126

Luôn luôn mã như thể người cuối cùng duy trì mã của bạn sẽ là một kẻ tâm thần bạo lực, người biết bạn sống ở đâu.

- Rick Ostern


12
Dường như tôi tiếp tục duy trì mã mà tôi ước tôi biết người sáng tạo đã sống ở đâu, nhưng có lẽ đó là điều tốt mà tôi không làm.
WalterJ89

Mang ý nghĩa mới cho thuật ngữ "ứng dụng sát thủ". Tôi dường như luôn luôn duy trì mã của kẻ thái nhân cách sau khi anh ta bị tống giam.
webbiedave

8
@webbiedave Bạn làm việc trên ReiserFS? :)
Neil Aitken

Công ty phải thực sự ghét bạn nếu kẻ giết người có được công việc của bạn.
Mateen Ulhaq

118

Bạn có thể có dự án:

  • Thực hiện đúng giờ
  • Thực hiện trên ngân sách
  • Hoàn thành tốt

Chọn hai.

- Không xác định



5
Nhắc nhở tôi về một hình tam giác tương tự, nhưng với phụ nữ. "Bạn có thể có một người bạn gái rằng: Thông minh, hấp dẫn, có nhân cách tốt."
Tối đa

Đừng quên rằng các trường hợp ngoại lệ tồn tại, mặc dù chúng rất hiếm - đừng tin vào điều đó.
Mircea Chirea

5
@Maxpm: Phiên bản tôi nghe là "The 4 S's: Smart, Sexy, Sane, Single. Pick 3."
Mason Wheeler

1
Vì vậy, khi không có ràng buộc về thời gian và ngân sách, bạn không thể thực hiện đúng. Tốt để biết.
Antsan

111

Một số người, khi đối mặt với một vấn đề, nghĩ rằng "Tôi biết, tôi sẽ sử dụng các biểu thức thông thường."
Bây giờ họ có hai vấn đề.

- Jamie Zawinski


5
Một tác phẩm kinh điển vượt thời gian
Nhân tố huyền bí

5
Một số người, khi đối mặt với một vấn đề, nghĩ rằng "Tôi biết, tôi sẽ sử dụng <một số thực hiện giải quyết vấn đề>." Bây giờ họ có hai vấn đề.
Callum Rogers

40
Một số người khi gặp vấn đề không suy nghĩ, họ chỉ đăng bài trên StackOverflow
Matt Ellen

5
Một số người không hiểu các biểu thức thông thường và ghét chúng vì những người khác thì không.
Orble

3
@Yar - Tôi chưa bao giờ tìm thấy cú pháp obtuse cá nhân, và mật độ là một điều tốt. Tại sao thể hiện một cái gì đó giống như một mẫu phù hợp trong một định dạng dài dòng hơn? Trong trường hợp cần có sự rõ ràng cho một cái gì đó phức tạp, chế độ mở rộng có thể được sử dụng với các bình luận.
Orble

110

Về lý thuyết, không có sự khác biệt giữa lý thuyết và thực hành. Nhưng, trong thực tế, có.

- Jan LA van de Snepscheut


27
Tôi cũng đã nghe "Sự khác biệt giữa lý thuyết và thực hành nhỏ hơn về lý thuyết so với thực tế."

1
Công thức của Roger Pate là tác phẩm tôi đã nghe, được viết bởi Olin Shivers trong "History of T". Paul Graham nói về nó ở đây: paulgraham.com/thist.html
Michael H.

2
Tôi muốn nói nếu một lý thuyết không chuyển thành thực tiễn, thì lý thuyết đơn giản là không đầy đủ.
Rei Miyasaka

105

Bạn có thể sử dụng một cục tẩy trên bàn soạn thảo hoặc búa tạ trên công trường xây dựng - Frank Lloyd Wright

Không chính xác một trích dẫn lập trình nhưng nó chắc chắn áp dụng.


14
IMO có tính ứng dụng cao
John MacIntyre

3
May mắn cho chúng ta khi hầu hết các phần mềm gặp sự cố, nó không sụp đổ và giết người.
Neil Aitken

8
Ngoại trừ khi nó làm nổ tung Ariane 5 (Chuyến bay 501), hoặc liều người bị nhiễm phóng xạ ở mức độ cao ...
Frank Shearar

2
Trớ trêu thay, tôi tin rằng nhiều tòa nhà phức tạp hơn của Frank Lloyd Wright đã rơi vào tình trạng hư hỏng.
Tối đa

1
@TomWij, @Walter, @Roger: Vui lòng không làm bẩn trang web này bằng metatalk của bạn. Nếu tôi muốn nghe cãi nhau, tôi sẽ truy cập meta.stackoverflow.com. Đây là nơi bạn nên có cuộc trò chuyện hấp dẫn và vượt thời gian này.
Dan Rosenstark

103

Lập trình ngày nay là một cuộc đua giữa các kỹ sư phần mềm cố gắng xây dựng các chương trình chứng minh kẻ ngốc lớn hơn và tốt hơn, và Vũ trụ cố gắng tạo ra những kẻ ngốc lớn hơn và tốt hơn. Cho đến nay, Vũ trụ đang chiến thắng.

- Rick Cook


98

Đo lường tiến trình lập trình bằng các dòng mã giống như đo tiến độ chế tạo máy bay theo trọng lượng.
  - Bill Gates



3
Điều này đúng trên nhiều cấp độ. Một viên ngọc.

3
Tất nhiên, điểm khác biệt chính là trọng lượng cuối cùng của máy bay được biết đến trong khi số lượng LỘC cuối cùng của phần mềm là không xác định.
mmyer

5
Vậy tại sao hầu hết các sản phẩm của Microsoft mang lại cho tôi cảm giác rằng tôi bị xích chân vào một chiếc máy bay đang vật lộn để ra khỏi đường băng?
Sharpie

86

Có 2 vấn đề khó khăn trong khoa học máy tính: vô hiệu hóa bộ đệm, đặt tên và lỗi ngoài 1.

    - Leon Bambrick (@ secretGeek )

(Trên thực tế, tất cả mọi thứ từ http://q4td.blogspot.com/search/label/programming nhìn thấy khi tôi sắp xếp danh sách.)


Tôi chưa bao giờ thấy một trích dẫn chỉ ra rằng việc đặt tên khó khăn như thế nào. Tôi cảm thấy một sự đoàn kết bất ngờ.
CodexArcanum

Đó là 3 điều. Hai cái đầu tiên là trích dẫn gốc từ Phil Karlton. @CodexArcanum. Đặt tên mọi thứ tốt là mẹo.
Người sử dụng Stuper

@StuperUser whooosh! bạn đã bỏ lỡ trò đùa
Agos

Mất hai giây để có được điều đó sau khi bạn chỉ ra điều đó. HERP derp.
StuperUser

85

Chín người không thể sinh con trong một tháng.
  - Fred Brooks, Người đàn ông huyền thoại


14
về mặt kỹ thuật: 18 người không thể sinh con trong một tháng
Here Be Wolves

13
@HereBeWolves hoặc 10
WalterJ89

14
Có gì sai với 1 chàng trai và 8 quý cô? Âm thanh vừa phải với tôi.

4
Nếu chúng tôi đi sinh đôi hoặc sinh ba, chúng tôi cần ít phụ nữ hơn.

12
Trong khi em bé đầu tiên phải chịu độ trễ 9 tháng, đường ống thích hợp sẽ tiếp tục sinh 1 mỗi tháng ...
Brian Knoblauch

82

Chúng ta nên quên đi những hiệu quả nhỏ, nói về 97% thời gian: tối ưu hóa sớm là gốc rễ của mọi tội lỗi. Tuy nhiên, chúng ta không nên bỏ qua cơ hội của mình trong 3% quan trọng đó.
  - Donald Knuth, Lập trình có cấu trúc đi đến các Tuyên bố , Khảo sát tính toán của JACM, Tập 6, Số 4, Tháng 12 năm 1974, tr.268

Điều này được trích ra từ hai đoạn dưới đây, nó không chỉ nói lý do tại sao anh ta đi đến kết luận trên, mà còn cung cấp thông tin về cách tránh sai lầm này:

Không có nghi ngờ rằng chén hiệu quả dẫn đến lạm dụng. Các lập trình viên lãng phí một lượng lớn thời gian để suy nghĩ hoặc lo lắng về tốc độ của các phần không văn bản trong chương trình của họ và những nỗ lực này có hiệu quả thực sự có tác động tiêu cực mạnh khi gỡ lỗi và bảo trì. Chúng ta nên quên đi những hiệu quả nhỏ, nói về 97% thời gian: tối ưu hóa sớm là gốc rễ của mọi tội lỗi.

Tuy nhiên, chúng ta không nên bỏ qua cơ hội của mình trong 3% quan trọng đó. Một lập trình viên giỏi sẽ không bị ru ngủ bởi sự tự mãn bởi lý do như vậy, anh ta sẽ khôn ngoan khi xem xét kỹ các mã quan trọng; nhưng chỉ sau khi mã đó đã được xác định. Nó thường là một sai lầm khi đưa ra đánh giá tiên nghiệm về những phần nào của chương trình thực sự quan trọng, vì kinh nghiệm phổ biến của các lập trình viên đã sử dụng các công cụ đo lường là dự đoán trực quan của họ thất bại. (Càng)


2
@Roger Pate: Tôi nghi ngờ bạn đúng, hầu hết mọi người không nhận ra có nhiều điều để trích dẫn.
Scott Dorman

5
Hy vọng bạn không bận tâm rằng tôi bao gồm một chút nữa. Tôi nghĩ nó thực sự quan trọng và có lẽ điều này sẽ khuyến khích nhiều hơn để đọc toàn bộ bài viết. :)

@Roger Pate: Không hề!
Scott Dorman

5
+1 Cảm ơn báo giá đầy đủ. Tôi không bao giờ biết có nhiều hơn thế.
Evan Plaice

2
Thật tuyệt khi bạn đăng toàn bộ trích dẫn. Rất nhiều người chỉ biết phiên bản sắp xếp và không biết Knuth thực sự có ý nghĩa gì.
DasIch

80

Trình gỡ lỗi không xóa lỗi. Họ chỉ hiển thị chúng trong chuyển động chậm.

- Không xác định


35
Hoặc trong nhiều trường hợp, làm cho chúng ngừng xuất hiện hoàn toàn.
Graeme Perrow

12
@Graeme những trường hợp đó được gọi là Heisenbugs :)
Đây là Wolves

76

90% mã đầu tiên chiếm 90% đầu tiên của thời gian phát triển. 10% còn lại của mã chiếm 90% còn lại của thời gian phát triển.

- Tom Cargill


Ai nói rằng ban đầu?
Paddyslacker

10
Tôi nghĩ bạn sẽ thấy rằng 90% mã chiếm 90% thời gian và 10% mã cuối cùng chiếm 90% thời gian còn lại.
FacticiusVir

2
Tom Cargill của Phòng thí nghiệm Bell: vi.wikipedia.org/wiki/Ninety-ninety_rule
Bill Karwin

1
Tôi biết điều này: 20% bạn tình uống 80% bia.
Zzz

1
Cá nhân, tôi muốn nói rằng 90% mã đầu tiên chiếm 90% đầu tiên của thời gian phát triển. Sau đó, 90% mã còn lại chiếm 90% còn lại của thời gian phát triển.
Kaz Dragon

70

Nếu Java có bộ sưu tập rác thực sự, hầu hết các chương trình sẽ tự xóa khi thực thi.
  - Robert Sewell


22
buồn cười, chỉ làm tôi nghĩ đến php.
WalterJ89

2
@ WalterJ89: Đừng lo lắng! Cho đến khi PHP 5.3, PHP được tính lại.
zneak

Tôi thích cái này!
MDV2000

@ WalterJ89 Chà, tôi thấy không có lý do gì để loại bỏ Java trái ngược với COBOL, C ++, VB hoặc các thứ khác.
Đánh dấu C

69

Khoa học máy tính không phải là về máy tính nhiều hơn thiên văn học là về kính viễn vọng

- Edsger Dijkstra


4
Vâng, nhưng điều này được cho là về lập trình , không phải khoa học máy tính. [cười toe toét]
Đánh dấu C

Lập trình chỉ là áp dụng kiến ​​thức thu thập được với khoa học máy tính. Bạn không cần một máy tính để lập trình, ít nhất là không giống như hầu hết đều quen thuộc.
DasIch

Tôi luôn cảm thấy điều khó chịu nhất khi lập trình là tôi không thể tách nó ra khỏi máy tính.
LoveMeSomeCode

57

Nếu gỡ lỗi là quá trình loại bỏ lỗi phần mềm, thì lập trình phải là quá trình đưa chúng vào.
  - Edsger Dijkstra


24
Đó là lý do tại sao tôi muốn coi công việc của mình là say mê .
lừa dối

9
Và bảo trì như rebugging ?
Joe D

1
@JoeD Không, "bugwatching".
Đánh dấu C

56

Chỉ có hai loại ngôn ngữ: những ngôn ngữ mà mọi người phàn nàn và những ngôn ngữ không ai sử dụng

- Bjarne Stroustrup


15
cái cớ tồi tệ cho việc hút C ++
hasen

3
C # là một ví dụ phản tác dụng rõ ràng.
Timwi

7
Và VB rơi vào cả hai loại.
Nhanh Joe Smith

48

Điều tốt nhất về boolean là ngay cả khi bạn sai, bạn chỉ tắt một chút. - (Ẩn danh)


Điều tồi tệ nhất là bạn không thể sai nhiều hơn?
POSIX_ME_HARDER

46

Trong hai lần tôi đã được hỏi, "Xin cầu nguyện, ông Babbage, nếu bạn đưa vào máy những con số sai, liệu những câu trả lời đúng có xuất hiện không?" Trong một trường hợp, một thành viên của Thượng viện, và trong trường hợp khác, một thành viên của Hạ viện đặt câu hỏi này. Tôi không thể nắm bắt một cách đúng đắn các loại ý tưởng có thể gây ra một câu hỏi như vậy.
  - Charles Babbage

Có thể cho rằng trường hợp tài liệu đầu tiên của một lập trình viên gặp phải những câu hỏi ngu ngốc của người dùng.


5
Âm thanh như một ý tưởng áo phông! "Lỗi người dùng: Làm phiền mọi thứ từ năm 1832". (Ngày?)
Đánh dấu C

42

Tôi luôn mong muốn máy tính của mình dễ sử dụng như điện thoại của tôi; điều ước của tôi đã thành hiện thực vì tôi không còn có thể tìm ra cách sử dụng điện thoại của mình

- Bjarne Stroustrup


42

Tất cả chỉ nói chuyện cho đến khi mã chạy.
  - Phường Castyham


39

Hỗ trợ Unicode không phải là một tính năng của Wikipedia. Đó là hành vi dự kiến.

Cấp, nó rất cụ thể, nhưng nó là yêu thích của tôi vì bộ ký tự lỗi thời chỉ được sử dụng quá rộng rãi vẫn ...


3
Bây giờ bạn chỉ cần tranh luận về unicode nào
Martin Beckett

@Martin: Không thực sự, bởi vì chuyển đổi giữa các loại là mất mát.
Billy ONeal

Aargh nỗi đau! Tại sao tôi phải tranh luận với khách hàng rằng không, chúng ta không thể "chỉ" chuyển toàn bộ cơ sở hạ tầng của mình sang tiếng Latin-1 để làm cho nó thuận tiện hơn cho anh ta? "Rốt cuộc, không có ai ở đây sử dụng những nhân vật đặc biệt kỳ lạ đó, không thể khó đến thế, phải không?"
Piskvor

39

Nhận xét mã của bạn giống như làm sạch phòng tắm của bạn - bạn không bao giờ muốn làm điều đó, nhưng nó thực sự tạo ra một trải nghiệm thú vị hơn cho bạn và khách của bạn.

- Ryan Campbell


1
Meh ... Hầu hết các bình luận tôi gặp trong đời đều được viết theo giả định rằng các bình luận có thể bù cho mã được viết kém ..
riwalk

Bạn có thể làm sạch phòng tắm, nhưng nếu vòi hoa sen chỉ có nước lạnh và bồn rửa không có xà phòng thì đó sẽ là một trải nghiệm khó chịu. Viết mã dễ đọc hơn là viết bình luận lớn để giải thích mọi thứ.
Keyo

Tôi thực sự thấy bình luận khá thú vị. Đôi khi tôi để những bình luận quan trọng trong những chiếc hộp nhỏ gọn được làm bằng dấu hoa thị và dấu gạch chéo. Sau đó, một lần nữa, tôi là một quái vật.
Tối đa

2
Tôi cũng thích viết bình luận, nhưng bạn sẽ không muốn xem phòng tắm của tôi.
Timwi

Tôi đã ở một nhà vệ sinh một lần, nơi có những bình luận rất dài về việc làm thế nào và tại sao bạn nên giữ nhà vệ sinh sạch sẽ. Nó không sạch sẽ.
Rei Miyasaka

38

Kẻ ngốc tự hỏi, nhà thông thái hỏi.
  - Benjamin Disraeli



@TomWij: Xem bình luận của tôi từ khi tôi chỉnh sửa bài này, những trích dẫn này đã được chia thành các câu trả lời riêng biệt.

35

Lập trình giống như tình dục: một sai lầm và bạn phải hỗ trợ nó cho đến hết cuộc đời.
  - Michael Sinz


34

Il semble que la perfection soit atteinte non quand il n'y a plus rien à ajouter, mais quand il n'y a plus rien à recancher.
  - Antoine de Saint-Exupéry, nhà văn Pháp (1900-1944), Terre des Hommes (1939)

(Dường như sự hoàn hảo đạt được không phải khi không còn gì để thêm, mà là khi không còn gì để lấy đi.)


Và nó cũng có giá trị cho âm nhạc
Heinz Z.


2
@David Kendal: Hay đấy! Tương tự, Henry David Thoreau đã nói, "Đơn giản hóa, đơn giản hóa". Điều luôn làm tôi suy nghĩ, "Đơn giản hóa."
Bill Karwin

33

Java là JavaScript như xe hơi là thảm.
  - Chris Heilmann


Có thảm trong xe của tôi, vậy có Javascript trong Java không?
Keyo

1
@Keyo: Vâng, tôi nghĩ về điều đó. Tôi vẫn nghĩ rằng trích dẫn là thực sự thông minh.
Bill Karwin

31

Theo công thức của Eric S. Raymond :

Luật Linus

Với một cơ sở thử nghiệm beta và nhà đồng phát triển đủ lớn, hầu hết mọi vấn đề sẽ được mô tả nhanh chóng và cách khắc phục rõ ràng đối với ai đó.

Hoặc, ít chính thức hơn,

Cho đủ nhãn cầu, tất cả các lỗi là nông.


Nghe có vẻ giống như quy tắc khỉ / máy đánh chữ đối với tôi ...
Sean Patrick Floyd

Tại sao những người đam mê Linux dường như dành nhiều thời gian để lặp lại trích dẫn này hơn là sửa các lỗi?
Timwi

Hoặc, khẩu hiệu của Atwood cho StackOverflow, "Không ai trong chúng ta ngu ngốc như tất cả chúng ta". Xem mã hóa trang kinh dị.com / blog / 2008/09
Evan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.