摩爾定律知道么?
帕金森定律講的又是啥?
作為一名合格的開發(fā)人員,除了本身碼力超強(qiáng)外,或多或少要知道幾條“”潛規(guī)則”,例如依賴倒置原則、魯棒性原則......
關(guān)于開發(fā)人員必須要知道的定義、原則以及理論,一位名叫Dave Kerr的小哥哥在Github上專門開了個(gè)科普帖子,為廣大程序員介紹必備的定理。
他將這個(gè)項(xiàng)目稱為:黑客信條(hacker-laws)。
阿姆達(dá)爾定律
一個(gè)計(jì)算機(jī)科學(xué)界的經(jīng)驗(yàn)法則,因吉恩·阿姆達(dá)爾而得名。它代表了處理器并行運(yùn)算之后效率提升的能力。
并行計(jì)算中的加速比是用并行前的執(zhí)行速度和并行后的執(zhí)行速度之比來表示的,它表示了在并行化之后的效率提升情況。
可以看出,即使是一個(gè)50%可并行的程序,在超過10個(gè)處理單元的情況下也幾乎沒有什么提高,而一個(gè)95%可并行的程序,在超過1000個(gè)處理單元的情況下,仍然可以顯著提高速度。
炒作周期和阿馬拉定律
“人們總是高估一項(xiàng)科技所帶來的短期效益,卻又低估它的長期影響。”
—— Roy Amara
Hype Cycle(技術(shù)成熟度曲線)是制技術(shù)興奮度度和發(fā)展成熟度的直觀表現(xiàn),最初由Gartner公司提出,如下圖所示:
簡(jiǎn)而言之,這個(gè)周期表明,新技術(shù)及其潛在影響通常會(huì)引發(fā)一陣高度關(guān)注。技術(shù)團(tuán)隊(duì)經(jīng)常馬不停蹄進(jìn)入這些技術(shù)領(lǐng)域,但往往無功而返。這可能是因?yàn)樵摷夹g(shù)還不夠成熟,或者現(xiàn)實(shí)應(yīng)用還沒有完全實(shí)現(xiàn)。經(jīng)過一段時(shí)間后,技術(shù)的能力提高,使用它的實(shí)際應(yīng)用機(jī)會(huì)增加,團(tuán)隊(duì)最終可以取得成功。Roy Amara最簡(jiǎn)潔地總結(jié)了這一點(diǎn)——“人們總是高估一項(xiàng)科技所帶來的短期效益,卻又低估它的長期影響。”。
霍夫施塔特定律
表面上和帕金森定律截然相反的霍夫施塔特定律表明:“即使將霍夫施塔特定律考慮在內(nèi),你在一件事上花費(fèi)的時(shí)間總是要比想象得要多。”
該定律與帕金森定律看起來相互矛盾,但其實(shí)兩者可以并行使用。霍夫施塔特定律表明,在給一個(gè)復(fù)雜的項(xiàng)目制定截止期限的時(shí)候,人們很容易自信過度。
帕金森定律
帕金森定律(Parkinson's Law)是官僚主義或官僚主義現(xiàn)象的一種別稱,被稱為二十世紀(jì)西方文化三大發(fā)現(xiàn)之一。也可稱之為“官場(chǎng)病”、“組織麻痹病”或者“大企業(yè)病”。
帕金森得出結(jié)論:在行政管理中,行政機(jī)構(gòu)會(huì)像金字塔一樣不斷增多,行政人員會(huì)不斷膨脹,每個(gè)人都很忙,但組織效率越來越低下。這條定律又被稱為“金字塔上升”現(xiàn)象。
將帕金森定律與霍夫施塔特定律結(jié)合會(huì)得出一個(gè)更加悲觀的結(jié)論:你的工作范圍會(huì)不斷擴(kuò)大,結(jié)項(xiàng)日期遙不可及。
The Unix Philosophy
這一理念表明的是:小即是美,程序做好一件事即可;程序員盡可能早地建立原型;可移植性比效率更重要。另外數(shù)據(jù)應(yīng)該保存為文本文件,盡可能地榨取軟件的全部價(jià)值。使用shell腳本來提高效率和可移植性、避免使用可定制性低下的用戶界面,所有程序都是數(shù)據(jù)的過濾器。
-
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7626瀏覽量
90147 -
處理單元
+關(guān)注
關(guān)注
0文章
9瀏覽量
6985
原文標(biāo)題:Github一天標(biāo)星1k+,程序員需要知道的那些定理和法則
文章出處:【微信號(hào):BigDataDigest,微信公眾號(hào):大數(shù)據(jù)文摘】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
程序員的快樂:那些小細(xì)節(jié)
為什么pickit3程序員不使用mplab進(jìn)入模式?
程序員需要學(xué)什么,微軟資深程序員學(xué)習(xí)手冊(cè)面試寶典資料
論程序員學(xué)算法的重要性
為什么程序員是不能忽略的聲音
程序員如何定義
高級(jí)程序員需要學(xué)習(xí)哪些知識(shí)
什么是程序員
Java程序員和.NET程序員的區(qū)別
JAVA程序員和C程序員有什么區(qū)別
怎樣成為頂尖的程序員
優(yōu)秀程序員的標(biāo)準(zhǔn)有哪些
嵌入式程序員應(yīng)知道的幾個(gè)基本問題

評(píng)論