好的程序員,效率是普通程序員的億萬倍_第1頁
好的程序員,效率是普通程序員的億萬倍_第2頁
好的程序員,效率是普通程序員的億萬倍_第3頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、好的程序員,效率是普通程序員的億萬倍2011-5-27咋看之下,有人肯定認(rèn)為這是標(biāo)題黨,或者有人或許認(rèn)為:瘋了吧,怎么可能有億萬倍。為了證明我不是標(biāo)題黨,我也沒瘋,我決定把這篇文章寫好!大家先來點(diǎn)掌聲,支持一下!a_a網(wǎng)上流傳的“標(biāo)準(zhǔn)觀點(diǎn)”是:好的程序員效率是普通程序員的數(shù)倍。這句話被很多人、很多文章引用過。而我說:好的程序員是普通程序員的億萬倍。這是不是有點(diǎn)非常非常夸張了?如果真這么好,那么普通程序員都不用干活了,都只由“好的程序員”做了算了。以我的經(jīng)驗(yàn)來看,這或許有點(diǎn)夸張,但卻基本屆實(shí)。非常非常好的程序員,的確效率是普通程序員的億萬倍不止。而稍好的程序員,效率也將是普通程序員的白倍不止。先

2、拋出個(gè)問題:既然比的是程序員的好與普通、效率的高低之分,那么什么稱得上是程序員的效率呢?效率是不是可以認(rèn)為是編碼的效率?亦或甚至是編程帶來的產(chǎn)品效應(yīng),社會(huì)效益?程序員的效率,其實(shí)我們很多時(shí)候,單單說的是:這個(gè)人每天編碼的量。一個(gè)人是大牛(好的程序員),是不是說,他一天編碼的量,就一定比普通程序員的量大呢?我覺得不一定。很多搞外包的,每天編碼量達(dá)到了上一兩千行,這是很正常不過的了。但他們是不是好的程序員呢?而作為最著名的軟件公司微軟公司,他們的程序員每天的編碼量據(jù)說不過是50行。差距何其巨大!難道他們的牛人算不得好的程序員?所以我認(rèn)為,每天的編碼行數(shù)比較大,并不代表你是不是一個(gè)好的程序員。你能編

3、寫正確良好運(yùn)行的程序,但不能認(rèn)為你就是好的程序員了!好的程序員是普通程序效率的億得倍,你覺得你做到哪一份上了呢?(當(dāng)然,這時(shí)候,效率還沒定義好呢,接著往下看)其實(shí),有在大公司工作過的經(jīng)歷,讓我從大牛那里學(xué)到不少知識。其中對好的程序員,和普通程序員的印象也更為活晰。好的程序員,他們的編碼量或許不大,但他們的程序是公司的一切產(chǎn)品的核心!有人肯定猜到了,對,那就是程序庫。好的程序員與普通程序員的差距是否就在于,能否編寫一個(gè)復(fù)用率比較高的程序庫。復(fù)用率高,意味著其它員工,可以利用上這個(gè)庫,做一些高質(zhì)量的編程開發(fā),從而大大提升了整個(gè)項(xiàng)目組,甚至是整個(gè)部門、公司的效率。并且保證了產(chǎn)品質(zhì)量,避免了重復(fù)的低質(zhì)

4、量的開發(fā)。從而為公司贏得了市場,換取了經(jīng)濟(jì)效益。這里,你或許已經(jīng)有點(diǎn)明白我說的了。為什么好的程序員是普通程序員的億萬倍了。好的程序員,編出來的程序,可以做到“一次編寫,多人多次多處可用”的。高的復(fù)用率,意味著效率。這個(gè)效率之高,乂怎么會(huì)是普通程序員編寫的“多次重復(fù)編寫、個(gè)人一次性使用”可以比的呢?說了這么多,我終于有了“程序員效率”的定義了!程序員效率定義1:一個(gè)程序段(包括其復(fù)制版)的運(yùn)行時(shí)間總和(小時(shí))/編寫該程序段所花時(shí)間大家覺得,按這個(gè)定義,什么樣的程序員效率會(huì)比較高。什么樣的程序員算好的程序員、什么樣的算普通程序員?微軟那些大牛們,編寫的可是操作系統(tǒng)啊。運(yùn)行于千家萬戶。累積起來的運(yùn)行

5、時(shí)間肯定是無可比擬的。對比一些小公司的程序員(廣品可能賣得不好),效率那可真是相關(guān)億萬倍不止像linus,編寫了linux內(nèi)核,估計(jì)不少代碼仍然在使用。Linux系統(tǒng)如今占據(jù)著服務(wù)器操作系統(tǒng)市場的不少份額,因而也是效率非常高的一個(gè)程序員。Java創(chuàng)始人及其jdk編寫者。編寫的代碼,至今良好運(yùn)行于多種平臺(tái)(移動(dòng)的、PC的、服務(wù)器的),并且仍為java平臺(tái)的儲(chǔ)多程序員復(fù)用著,編寫著大量的商業(yè)、娛樂、學(xué)習(xí)產(chǎn)品,大大提升了人們的編寫產(chǎn)品的效率。你說,他們的對人類虛擬世界的貢獻(xiàn)大不大?他們算不算好的程序員?他們的效率是不是非常之高?Mysql是一個(gè)偉大的開源數(shù)據(jù)庫。作為一個(gè)成功的數(shù)據(jù)庫產(chǎn)品,他們應(yīng)用于許

6、許多多的互聯(lián)網(wǎng)產(chǎn)品當(dāng)中。使得我們有了更好的管理產(chǎn)品數(shù)據(jù)的能力,創(chuàng)造了非常大的時(shí)間效益、經(jīng)濟(jì)效應(yīng),社會(huì)效應(yīng)。這當(dāng)屆非常成功的產(chǎn)品。創(chuàng)建他們的人,也是非常好的、偉大的程序員!現(xiàn)在我們來到某個(gè)大型的互聯(lián)網(wǎng)公司,參觀一下他們的世界。一個(gè)程序員大牛們。他不是瘋狂地在加班,而是在聽音樂。是的他在聽音樂,而此時(shí),他在構(gòu)思一個(gè)奇妙的構(gòu)想。通過構(gòu)建某一個(gè)程序庫+自動(dòng)化組件+可配置化系統(tǒng),能讓他們以后的某個(gè)業(yè)務(wù),能快速的通過這些自動(dòng)化組件、程序庫快速構(gòu)建起來,從而大大減少人力、提升效率和程序員的生活品質(zhì)。是的,他以前就是這么做的。因此他成為了公司的骨十!他與公司在一同快速成長起來?。≒&我現(xiàn)在所在的大公司

7、,一個(gè)程序員大牛說過:一切皆可自動(dòng)化!一一可自動(dòng)化學(xué)派)其實(shí),你或許說了,在微軟,就算你編寫的是狗屎代碼,但按我的公式算出來,也算是非常好的程序員。其實(shí),狗屎不是狗屎,市場可以做初步判定。并且從長遠(yuǎn)來看,如果你的東西真不是狗屎,那么億萬年之后,依然有人在用你的代碼。再舉一些或許不那么程序員的例子。但即與程序員的十層樓有異曲同工之趣!二分查找算法(思想),這個(gè)不是程序,而是程序的靈魂-算法。我覺得,即使微軟倒閉了。人類沒滅亡的話,我覺得依然會(huì)有程序員繼續(xù)使用的。其它的永恒的“真理”還有很多。比如說分治思想、以空間換時(shí)間、二八法則.發(fā)明算法(程序靈魂)的人,排在程序員的十層樓的第七(大師)、第八層

8、樓(科學(xué)家)。算法是不滅的,所以他們?nèi)绻梢苑Q之為程序員。無疑是效率極高的一群人。他們的效率,不僅僅使得他們發(fā)明的算法思想,用永遠(yuǎn)的使用下去,而且可以極大的提升計(jì)算機(jī)的效能,使得計(jì)算機(jī)更有效率地為人服務(wù)。程序員的效率,我也做出了一個(gè)定義了。并且舉了一些例子,有世界著名的大公司的,也有開源軟件、操作系統(tǒng),互聯(lián)網(wǎng)大公司的。我想應(yīng)該你也能明白我所說的了,我的說法并不是無依無據(jù)的?;蛟S有失偏頗,但這個(gè)定義或許的確不錯(cuò)呢!末篇?jiǎng)偛排e了商業(yè)公司微軟的例子,再為自己辯駁一下:微軟這個(gè)軟件生態(tài)系統(tǒng)的出現(xiàn),起碼解決了操作系統(tǒng)的問題。(程序員不可能都自己寫這些線程、進(jìn)程調(diào)度程序-節(jié)省了大家的時(shí)間,提升了效率)。不

9、僅如此,形成生態(tài)圈,有了比較好的Win32開發(fā)環(huán)境-如VC6.0VB等等開發(fā)軟件,也極大的加速了應(yīng)用軟件的開發(fā)。-乂是一層效率的提升。我覺得,很多時(shí)候,作為程序員。我們不能太狹隘了。比如說,提升效率有很多種方式。創(chuàng)造lib程序是一方面。創(chuàng)建一個(gè)可配置化的系統(tǒng)是一方面。提供一個(gè)較好的行業(yè)解決方案,乂將是一方面。甚至于創(chuàng)造一個(gè)通用的算法,那不止是宵史留名了,更是有可能極大的提升了計(jì)算機(jī)的效率了。除此之外,參與開源項(xiàng)目。那也是成為好的程序員、提升效率的重要手段(難以想像,沒有開源項(xiàng)目,是否還有現(xiàn)在的互聯(lián)網(wǎng)?)說了這么多,目標(biāo)無非是一個(gè):正確認(rèn)識程序員的效率的差異。理解到了差異(差距),讓我們有了前進(jìn)

10、的目標(biāo)與動(dòng)力。想成為了一個(gè)好的程序員,我覺得應(yīng)該做到:1、充分利用現(xiàn)有的程序庫,不做無用功(linux編程思想)。2、編寫新的代碼時(shí),不重復(fù)編寫一些相似的代碼,而應(yīng)該學(xué)習(xí)抽象思維,抽象可復(fù)用函數(shù)模塊,提升程序的模塊化、結(jié)構(gòu)化3、作為一個(gè)員工,假如涉及較多的重復(fù)編碼的模塊的。建議抽象成全組全部門通用的模塊,形成部門積累。4、做工作時(shí),能自動(dòng)化的地方多自動(dòng)化。不能自動(dòng)化的地方,多想想怎么流程化、規(guī)范化。(流程規(guī)范,事實(shí)上是把人當(dāng)成是計(jì)算機(jī)硬件、流程規(guī)范當(dāng)成是軟件)5、能設(shè)計(jì)可復(fù)用可配置的系統(tǒng),代價(jià)不高的情況下,盡量這么設(shè)計(jì)。-有人喜歡說“快速迭代、敏捷”。我覺得,這與程序員的效率并不矛盾。參考第6點(diǎn)。6、編寫程序系統(tǒng),是一門平衡的藝術(shù)。如何平衡性能與算法復(fù)雜度。如何平衡使用硬盤、磁盤、SSD盤。平衡開發(fā)“臨時(shí)性系統(tǒng)”還是開發(fā)“較通用、的生命周期較長的系統(tǒng)”。7、飽含大局觀。如果能以較小時(shí)間、人力代價(jià)做出業(yè)界領(lǐng)先的統(tǒng)一化解決方案。為人類謀福祉,為公司創(chuàng)造價(jià)值,為自己贏得漲薪。為什么不做?8、參考本文“程員效率的定義”,多想想“開源的好處”,發(fā)明一個(gè)優(yōu)質(zhì)的產(chǎn)品的好處。產(chǎn)品與開源、與程序員的效率并不矛盾。好的程序員,在條件允許的情況下,盡量向著“效率最優(yōu)化、生活品質(zhì)最好化”的方向前進(jìn)。(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論