偉大的程序員找到簡單的解決複雜問題

2009年6月30日, prashant · 評論
提交下 MISC

很長一段時間後,我能找到的源報價

初級程序員創建簡單的問題簡單的解決方案。 高級程序員創建複雜的解決方案到複雜的問題。 偉大的程序員找到解決複雜問題的簡單解決方案。

這是一篇文章,呼籲由查爾斯·康奈爾美麗的軟件

另一個我最喜歡的是Python的禪 -

美麗優於醜陋。
明確的是比隱含更好。
簡單比複雜好。
複雜的是比複雜。
平板是優於嵌套。
稀疏較密集更好。
可讀性罪名。
特殊情況下,是不是夠特別,打破規則。
雖然實用性擊敗純度。
錯誤應該永遠默默傳遞。
除非明確沉默。
在模糊的臉,拒絕猜測的誘惑。
應該有一個,最好只有一個顯而易見的方式做到這一點。
雖然這種方式可能起初並不明顯,除非你是荷蘭人。
現在是總比沒有好。
雖然從未往往比*權*現在。
如果實現是很難解釋的,這是一個壞主意。
如果實現是很容易解釋,它可能是一個好主意。
命名空間是一個鳴喇叭偉大的想法 - 讓我們做這些!
-------------------------
再有就是經典編程之道

-

學分鏈接網站

杰弗裡·詹姆斯譯

轉錄由杜克Hillard

轉交Anupam Trivedi,Sajitha Tampi和Meghshyam Jagannath

重新HTML化的和由Kragen Sittler的編輯

-

本書第1 - 寂靜的虛空

的編程大師如是說:

“當你已經學會從陷阱幀,搶奪錯誤代碼,
將是你離開的時候了。“

1.1

神秘的東西正在形成,出生在寂靜的虛空。 等待單獨與
一動不動,仍然是一次,但在不斷地運動。 這是源
所有的程序。 我不知道它的名字,所以我將它稱為陶
編程。

如果道是偉大的,那麼操作系統是巨大的。 如果操作系統
系統是偉大的,那麼編譯器是偉大的。 如果編譯器是偉大的,
然後,應用程序是偉大的。 用戶高興和存在
在世界的和諧。

編程之道流遠,早上風的回報。

1.2

道生機器語言。 機器語言誕生了
彙編。

生下彙編編譯器。 現在有一萬
語言。

每一種語言都有其目的,但謙虛。 每種語言都表達
以陰陽軟件。 每一種語言都有其內道的地方​​。

但不要用COBOL編程,如果你能避免它。

1.3

在開始時道。 陶生下了空間和時間。
因此,空間和時間是編程的陰陽。

總是不理解道的程序員的時間不多了
為他們的程序和空間。 程序員理解陶總是
有足夠的時間和空間來實現他們的目標。

否則怎麼會這樣呢?

1.4

聰明的程序員告訴陶,並遵循它。 平均
程序員告訴濤和它的搜索。 愚蠢的程序員
約陶告訴它笑。

如果不笑,就不會有陶。

最高聲音是最難聽到。
展望未來,是一種撤退。
偉大的天才,顯示自己在生命的晚期。
即使是一個完美的方案仍然有錯誤。

-------------------------

第2冊 - 古代大師

的編程大師如是說:

“經過三日不編程,生活變得毫無意義。”

2.1

老程序員是神秘而深刻。 我們無法捉摸
他們的想法,所以我們所做的一切是描述自己的外貌。

知道,像狐狸過水。 提醒,像一般上
戰場。 一種,像一個女主人,迎接她的客人。 簡單的,像
呆若木雞。 不透明的,就像在黑暗的洞穴黑池。

誰可以告訴他們的心和頭腦的秘密是什麼?

答案只存在於陶。

2.2

超級大師圖靈曾夢見自己是一台機器。 當他醒來時,他
驚呼:

“我不知道我是否圖靈夢見我是一台機器,或
做夢,我圖靈機!“

2.3

從一個非常大的電腦公司的程序員參加一個軟件
會議後,報告給他的經理,他說:“什麼樣
程序員的工作,為其他公司嗎? 他們表現不好,
與外表冷漠。 他們的頭髮長,蓬頭垢面,
衣服是滿臉皺紋,老。 他們墜毀好客套房和他們
在我的演講粗魯的聲音。“

經理說:“我應該讓你參加這次會議,。 那些
程序員生活在現實世界之外。 他們認為生活是荒謬的,
偶然的巧合。 他們來來去去,不知道的局限性。
無牽掛,他們只住他們的節目。 他們為什麼要打擾
社會習俗?

“他們是活在道。”

2.4

一個初學者問大師:“這是一個程序員,他從來沒有設計,
文件或測試他的程序。 然而,所有誰知道他,認為他是一個
在世界上最好的程序員。 這是為什麼?“

大師回答道:“那個程序員掌握了道。 他已經走了
超出了設計的需要;他不生氣時系統
崩潰,但接受的宇宙,而不用擔心。 他已經超越了
需要的文件;他不再在乎別人看到他的代碼。
他已經超越了需要進行測試,他的每一個方案是完美的
在自我,平靜而優雅,其目的不言自明。 誠然,
他已進入道的奧秘。“

-------------------------

本書3 - 設計

的編程大師如是說:

“程序被測試時,它是為時已晚,使設計
的變化。“

3.1

曾經有一個人去計算機展覽。 因為他的每一天
進入,該名男子在門口的警衛告訴:

“我是一個偉大的小偷行竊功勳聞名。
諒解,為這個貿易展會,不得逃避unplundered。“

這個講話擾亂警衛很大,因為有百萬
美元的計算機設備裡面,所以他仔細觀看的人。
這個人只是從一個攤位逛到另一個攤位,悄悄給自己哼唱。

該名男子離開時,警衛把他拉到一邊,搜查了他的衣服,但
什麼也沒有發現。

在展覽會的第二天,男子返回,並斥責衛兵
他說:“我逃昨天滿載而歸,但是今天我會連
更好。“所以警衛更加緊密地看著他,但無濟於事。

在展覽會的最後一天,警衛再也不能忍住他的好奇心
不再。 “小偷先生,”他說,“我很困惑,我不能住在
和平。 請賜教。 這是什麼,你偷了嗎?“

該名男子笑了​​。 “我在偷想法,”他說。

3.2

曾經有一位編程大師,誰寫非結構化的程序。
初學者刻意模仿他,也開始寫
非結構化的程序。 當初學者問大師評價他的
進步時,大師批評他寫非結構化的程序,
沒有適當的說,“什麼是適當的主
新手。 在超越結構化之前,你必須明白的道。“

3.3

曾經有程序員一名軍閥法院的
吳。 軍閥問程序員:“哪個更容易設計:
會計包或操作系統嗎?“

“操作系統”,這位程序員回答說。

軍閥發出一聲難以置信的驚嘆號。 “當然,會計
包旁邊的一個操作系統的複雜性是微不足道的,“他
說。

“事實並非如此,”程序員說,“當設計一個會計包,
程序員的工作作為一種人與人之間有不同的調停
思路:它必須如何運作,如何其報告中必須出現,以及如何就必須
符合稅法。 相反,一個操作系統不僅限於
外露面。 當設計一個操作系統,程序員
尋求最簡單的機器和思想之間的和諧。 這就是為什麼
操作系統是更容易設計。“

吳笑著說。 “那都是很好很好,但
這是更容易調試嗎?“

程序員沒有回答。

3.4

一位經理到編程大師,顯示了他的要求
一個新的應用程序文件。 經理問大師:“多久
將它設計這個系統,如果我給你5個程序員呢?“

“這將需要一年時間,”大師說。

“但我們需要這種系統立即或更早! 多久
採取如果我給你10程序員呢?“

編程大師皺起了眉頭。 “在這種情況下,這將需要兩年時間。”

“如果我給你一百個程序員呢?”

主程序員聳聳肩。 “然後設計將永遠
完成後,“他說。

-------------------------

書4 - 編碼

的編程大師如是說:

“一個精心編寫的程序是它自己的天堂;欠佳的書面程序
它自己的地獄。“

4.1

一個程序應該是輕靈,像一個子程序連接
字符串的珍珠。 應保留方案的精神和意圖
整個。 應該既不太少或太多,既不
不必要的循環也不是無用的變量,既不缺少結構,也不
至於僵硬呆板。

一個程序應該遵循最小驚訝“`”。 這是什麼法?
它僅僅是該計劃的方式向用戶應該總是回應
他至少讓人驚訝。

一個方案,不管多麼複雜,應作為一個單一的單位。 該方案
應直接由內部邏輯,而不是由外表。

如果該計劃未能在這些要求,這將是在一個國家
無序和混亂。 只有這樣,才能糾正這種改寫
方案。

4.2

一個初學者問大師:“我有一段時間運行一個程序,
有時中止。 我已經完全遵循編程的規則,但我
完全莫名其妙。 是什麼原因呢?“

主人回答說:“你困惑是因為你不明白陶。
只有傻瓜預計從他的同胞的人類理性的行為。 你為什麼
期望從一個人類建造的機呢? 計算機模擬
決定,只道是完美的。

“編程的規則是暫時的,只道是永恆的。 因此
你必須考慮濤之前收到的啟示。“

“但問:我怎樣才能知道當我收到的啟示呢?”
新手。

,“大師回答說:”你的程序將正常運行。

4.3

法師解釋道的性質,他的一個新手。
陶體現在所有的軟件 - 無論多麼微不足道,說:“
主。

初學者問:“是在一個手持計算器之道嗎?”。

“是的,”他回答說。

“是道,在視頻遊戲嗎?”持續的新手。

“即使是在一個視頻遊戲,”師傅說。

“道為一台個人電腦,在DOS”

主咳嗽,並略有改變他的位置。 “這個教訓是超過
今天,“他說。

4.4

王王子的程序員編寫的軟件。 他的手指跳舞後
鍵盤。 沒有錯誤信息,程序編制的程序
像一個溫柔的風跑。

“好極了!”王子感嘆道,“你的技術是無可挑剔的!”

說程序員轉向從他的終端,“我”技術?“
遵循的是道 - 超越了所有的技術! 當我第一次開始的節目,我
會看到我之前在一個大規模的問題。 三年後,我沒有
看到的是。 相反,我用的子程序。 但現在我什麼也看不見。
我的整個存在在無形無效。 我的感覺是閒置的。 我的精神,
自由地工作,沒有計劃,遵循自己的本能。 總之,我的程序
寫入本身。 誠然,有時也有難以解決的問題。 我看到他們
來了,我放慢,靜靜地觀察。 然後,我改變了一行代碼
和困難,像一陣輕煙消失。 然後我編譯
方案。 我坐不住了,並讓工作的喜悅。 關閉我的
一會兒眼睛,然後註銷。“

王王子說,“會,我的程序員都是明智的!”

-------------------------

預訂5 - 維護

的編程大師如是說:

“儘管一個程序,但三線長,總有一天它必須
保持下去。“

5.1

需要一個良好的使用門在鉸鏈上的油。
迅速流動的流不增長停滯。
無論是聲音和思想都不能在真空中傳播。
如果不使用軟件腐爛。

這些都是偉大的奧秘。

5.2

經理問程序員多久,會帶他來完成
程序上,他的工作。 “明天,將完成”
程序員及時回答。

“我想你是不切實際的,”經理說,“說實話,如何
需要多長時間?“

程序員想了一會兒。 “我有一些特點,我想
添加。 這將需要至少兩個星期,“他最後說。

“即使是太多期望,”經理堅持,“我一定會
滿意,如果你只是告訴我,當程序是完整的。“

程序員同意這一點。

幾年後,經理退休。 在他退休的方式
午餐時,他發現程序員在他的終端睡著了。 他曾
編程整夜。

5.3

曾經被分配到一個新手程序員編寫一個簡單的財務方案。

他瘋狂地工作了很多天,但是當他的主人檢討
他的計劃,他發現,它包含一個屏幕編輯器,一套
圖形程序,人工智能接口,但
沒有絲毫提及任何財務。

當主對此問,新手成為憤慨。 “不要
等的不耐煩了,“他說,”我最終把財務的東西。“

5.4

一個好的農民不會忽視他的莊稼?
一個好的老師不會忽視,即使最不起眼的學生嗎?
一個好的父親不會允許任何一個孩子挨餓?
一個好的程序員不會拒絕,以維護自己的代碼嗎?

-------------------------

預訂6​​ - 管理

的編程大師如是說:

“讓程序員是許多經理 - 那麼所有會
生產力。“

6.1

當經理們忙於無休無止的會議,程序員在寫遊戲。 何時
會計師談論季度盈利,即將開發預算
被削減。 當老科學家在談天空的藍色,雲是即將推出
英寸

誠然,這不是編程之道。

當管理者作出承諾,遊戲節目被忽略。 何時
會計師做長期計劃,是和諧和秩序
恢復。 當高級科學家處理手頭上的問題,
問題將很快得到解決。

誠然,這是編程之道。

6.2

為什麼程序員非生產性?
因為他們把時間都浪費在開會。

為什麼程序員難於管理?
因為管理者的干預太多。

為什麼程序員一個接一個地辭職由?
因為他們都燒壞了。

在管理不善的工作,他們不再看重自己的工作。

6.3

一位經理將被解僱,但為他工作的程序員
發明了一種新的方案,成為流行和暢銷。 作為結果,該
經理保住了他的工作。

經理試圖給程序員分紅,但程序員
拒絕了,說:“我寫的程序,因為我認為這是一個
有趣的概念,因此,我希望沒有獎勵。“

聽到這個經理說,“這程序員,但他認為
小自尊的位置,也明白了一個適當的責任
僱員。 讓我們推動他管理的崇高地位
顧問!“

但這位程序員又一次拒絕了,說,“我的存在
我可以計劃。 如果我被提拔,我會做只是浪費
大家的時間。 我可以走了嗎? 我有一個程序,我的工作。“

6.4

一位經理去他的程序員,並告訴他們:“至於你的工作
時間:你要來,在早上九點離開
在下午五。“在此,他們都成了憤怒和幾個
當場辭職。

因此,經理說:“所有的權利,在這種情況下,你可以設置自己的
工作時間,只要你按時完成您的項目。“
程序員,現在滿意了,中午工作到凌晨
早上小時。

-------------------------

第七冊 - 企業智慧

的編程大師如是說:

“你能證明一個企業的執行程序,但你不能
讓他計算機知識。“

7.1

一位初學者問大師:“在東方,有一個偉大的樹結構
人們稱為'公司總部'。 臃腫的形
副總裁和會計師。 它發出大量的備忘錄,每個
說'去,因此! 或`去,到這裡來!“ 沒有人知道是什麼意思。 一切
一年新的名字放在樹枝上,但都無濟於事。 如何才能
這種非自然的實體是什麼?“

主人回答說:“你認為這個巨大的結構和
感到不安的是,它有沒有合理的目的。 你能不能採取遊樂
無盡的迴旋? 你不享受無憂無慮的輕鬆編程
下方的掩護分行? 你為什麼要打擾其
無用嗎?“

7.2

在東部地區,這是比所有其他的魚大鯊魚。
成鳥的翅膀像填補了天空雲層的變化。 當此
鳥移動全國的土地,它帶來了企業消息
總部。 此消息下降到程序員中,
像一隻海鷗在海灘的標誌。 然後安裝在鳥
風,並在其後面的藍天,返回家園。

難怪新手程序員在盯著鳥,他理解
不。 一般的程序員最怕鳥的到來,為他擔心
它的消息。 主程序員,繼續工作在他的終端,
他不知道,鳥來了又走。

7.3

魔法師了象牙之塔帶來了他最新發明
主程序員檢查。 魔術師輪式一個大黑盒子
主人的辦公室,而主人在沉默中等待。

“開始”,這是一個綜合的,分佈式的,通用的工作站,
魔術師“,符合人體工程學的設計與專有操作系統
系統,第六代語言,多個國家的藝術用戶
接口。 花了我的助手好幾百人年建設。
這是不令人驚訝嗎?“

主略微揚眉。 “這實在是驚人的,”他
說。

“公司總部已經吩咐,”魔術師繼續“
每個人都要用這個工作站,作為一個新的方案的平台。 你是否同意
這樣做呢?“

“當然,”大師回答說,“我將它運到
數據中心立刻!“魔術師回到他的塔,
高興。

幾天後,一個新手走進大師的辦公室
程序員說,“我無法找到我的新計劃上市。
你可能知道它在哪裡?“

“是的,”大師回答說,“上市堆放平台上
數據中心。“

7.4

編程大師從程序到程序移動毫不畏懼。 沒有
改變管理可以傷害他。 他不會被解僱,即使
項目被取消。 這是為什麼? 他充滿了陶。

-------------------------

書8 - 硬件和軟件

的編程大師如是說:

“沒有風,草不動。 沒有軟件,硬件
沒用。“

8.1

一個初學者問大師:“我認為,一個電腦公司是多
比所有其他人。 這高於其競爭當中就像一個巨大的塔
相形見絀。 任何一個部門可以組成一個完整的業務。 為什麼
這樣呢?“

主人回答說:“你為什麼問這樣愚蠢的問題呢? 該公司
是大的,因為它是大的。 如果它只做硬件,就沒有人會買
它。 如果只是做軟件,沒有人會使用它。 如果它只維護
系統,人們會像對待一個僕人。 但是,因為它結合了所有
這些東西,人們認為眾神之一! 不求
努力,毫不費力地征服了。“

8.2

有一天,一位編程大師,通過一個新手程序員。 主指出
用手提電腦遊戲的新手的當務之急。 “對不起,”
他說,“我可以檢查嗎?”

新手狂奔的關注和設備交給主。 “我
看到該設備號稱有三個層次的玩法:容易,中等,
硬,“師傅說。 “然而,每一個這樣的設備有另一個水平
發揮設備的目的不是征服人類,也不被征服
由人類。“

“請問大師”,懇求的新手,“如何找到這
神秘的設置嗎?“

主下跌到地面設備和粉碎它踩在腳下。
突然初學者明白了。

8.3

曾經有一個程序員工作在微處理器。 “你看如何
小康我在這裡,“他說,前來參觀的大型機程序員,
“我有我自己的操作系統和文件存儲設備。 我沒有
與其他人分享我的資源。 該軟件是自洽
易於使用。 為什麼你不辭去你現在的工作和我一起在這裡嗎?“

大型機的程序員,然後開始對他的朋友來形容自己的系統,
說:“大型機坐落在中間,像一個古老的聖人沉思
數據中心。 其磁盤驅動器所在月底到年底,像一個巨大的海洋
機械。 該軟件是多方面的鑽石,令人費解的
作為一個原始叢林。 的節目,每一個獨特的,系統通過移動
像一個迅速流動的河流。 這就是為什麼我很高興我在哪裡。“

微機程序員聽了這些話後,陷入了沉默。 但兩
程序員仍然是朋友,直到結束的日子。

8.4

硬件滿足對道路Changtse軟件。 軟件說:“你是
我和尹揚。 如果我們一起旅行,我們將成為著名的和賺取
巨額金錢。“等規定一起,想征服
世界。

目前,他們遇到了固件,人衣衫襤褸,步履蹣跚
一起撐起一個棘手的棒。 固件對他們說:“道在於
超越陰陽。 它是沉默,還是作為一個水池。
不求名利,所以沒有人知道它的存在。 它不尋求
它的財富,在本身是完整的。 它的存在和超越時空
時間。“

軟件和硬件,羞愧,回到自己的家園。

-------------------------

9本書 - 後記

的編程大師如是說:

“這是你離開的時候了。”

-------------------------

如果你喜歡這些,你可能還喜歡讀惡化是更好