《高效能程序員的修煉》有感

傳統(tǒng)的“胡蘿卜加大棒”的激勵(lì)方式僅僅對(duì)于那些重復(fù)的跨扮,機(jī)械性的任務(wù)有效侈离。一旦要做的事情稍微復(fù)雜一點(diǎn)痢法,而你需要解決哪怕很小但又沒有現(xiàn)成解決方案或無規(guī)律可循的問題時(shí)凉夯,這些基于物質(zhì)的激勵(lì)方式不但沒有效果,反而會(huì)把事情弄得更糟垢粮。

Dan Pink為這個(gè)主題寫了一本書《驅(qū)動(dòng)力:在獎(jiǎng)勵(lì)與懲罰都已失效的當(dāng)下贴届,如何煥發(fā)人的熱情》

在建設(shè)自己的團(tuán)隊(duì)時(shí),不在乎你什么時(shí)候來上班,或者如何安排你的時(shí)間毫蚓,不在乎你住在哪里占键,不在乎你怎么做你的工作,也不會(huì)事無巨細(xì)的過問元潘,給你一大堆的任務(wù)畔乙,這些都不重要。

重要的是如果你想造一艘船翩概,就不要催著工人們?nèi)ナ占静纳啵峙晒ぷ鳎l(fā)號(hào)施令钥庇,你應(yīng)該教會(huì)他們的是對(duì)無邊無際大海的渴望牍鞠。

磨刀不誤砍柴工,我們?cè)诰幊讨嗥酪蹋詈靡惨W(xué)習(xí)一些與編程無關(guān)的內(nèi)容难述。

當(dāng)我們閱讀編程相關(guān)的博客或書籍時(shí),我們通常是這樣做的:

每當(dāng)讀起一篇博文吐句,我們會(huì)把我們認(rèn)同的內(nèi)容一點(diǎn)一點(diǎn)讀下去胁后,而只要有一個(gè)論點(diǎn)不符合我們的世界觀,我們就會(huì)很較真蕴侧。如果整篇文章的主題都跟我們的成見相左择同,我們就會(huì)大罵作者是個(gè)白癡。老實(shí)說净宵,如果讓我們?nèi)プ鲣N售敲才,結(jié)果會(huì)一塌糊涂,因?yàn)槲覀円慌龅讲徽J(rèn)同我們的人就會(huì)匆匆放棄择葡。

所以我們最好要向銷售人員學(xué)習(xí)紧武。當(dāng)我們?cè)僮x一篇帖子,或者一本書敏储,或者學(xué)習(xí)一門新語言時(shí)阻星,我們應(yīng)該假定它的某些部分(甚至絕大部分)并不新穎,讓我們假設(shè)我們肯定會(huì)討厭它的某些部分已添。與此同時(shí)妥箕,如果我們能找到哪怕一點(diǎn)兒對(duì)我們有用的知識(shí),我們就已經(jīng)賺了更舞。

這是看書好的心態(tài)畦幢,我們客觀上來說,應(yīng)該讀好書缆蝉,讀經(jīng)典宇葱,但是如果讀到一本書感覺沒什么收獲瘦真,也沒什么可失落的,正常情況黍瞧。

當(dāng)然诸尽,過多的磨鋸,或者隨意地印颤,沒有目標(biāo)地磨鋸子您机,會(huì)變成另一種形式地問題,但是如果一個(gè)程序員對(duì)這些毫無興趣膀哲,也是一個(gè)巨大地信號(hào)往产。

對(duì)磨鋸子癡迷是沒有問題地,但前提是某宪,這種癡迷是類似于Hackers News地網(wǎng)站上積極地提交和討論與編程相關(guān)地文章。

在《質(zhì)量·軟件·管理:系統(tǒng)思維(第1卷)》一書中說明锐朴,哪怕在工作負(fù)荷中只是增加一個(gè)項(xiàng)目兴喂,也會(huì)嚴(yán)重地影響你地效率,你會(huì)損失20%的時(shí)間焚志,當(dāng)你增加第三個(gè)項(xiàng)目的時(shí)候衣迷,你很可能會(huì)有一半的時(shí)間浪費(fèi)在任務(wù)切換上,即使同一時(shí)間只做一個(gè)項(xiàng)目酱酬,也可能會(huì)出現(xiàn)這樣的問題壶谒。

我們總是認(rèn)為,我們可以多任務(wù)而不降低自己的任務(wù)質(zhì)量膳沽,但是多方面的研究告訴我們汗菜,我們不能做到,我們必然會(huì)在時(shí)間挑社,質(zhì)量以及深度思考能力各方面都受到損害陨界。

而編程中可能表現(xiàn)比較明顯,因?yàn)榫幊绦枰绦騿T記憶大量的東西痛阻,能同時(shí)記住的東西越多菌瘪,編程的效率就越高,包括變量名稱阱当,數(shù)據(jù)結(jié)構(gòu)俏扩,重要的編程接口,常用的工具函數(shù)名稱等弊添,如果來回切換項(xiàng)目录淡,這些都需要重新記憶,就會(huì)浪費(fèi)掉很多的時(shí)間表箭。

《程序員修煉之道:從小工到專家》中的“select沒有問題”赁咙。

這是這本書提到的一個(gè)小故事钮莲,目的是說,當(dāng)我們開始為了一個(gè)很可能是我們自己造成的錯(cuò)誤而責(zé)怪系統(tǒng)時(shí)彼水,我們都會(huì)用“select有問題”這個(gè)短語作為善意的提醒崔拥。

注釋寫的太多,不一定是一件好事凤覆,作為程序員链瓦,應(yīng)該總是專注于編寫代碼,而忘了還有注釋這種東西的存在盯桦。為了讓你的程序員更容易閱讀和理解你的代碼慈俯,你需要不斷地改進(jìn)你地代碼,但如果你已經(jīng)重寫拥峦,重構(gòu)甚至是重新設(shè)計(jì)了很多遍——當(dāng)你已經(jīng)一籌莫展贴膘,已經(jīng)想不出任何辦法可以讓你地代碼變得更加淺顯易懂時(shí),這個(gè)時(shí)候略号,也只有這個(gè)時(shí)候刑峡,你才應(yīng)該在百般無奈之下加上些注釋來解釋你的代碼。


如果你的代碼在沒有注釋的情況下顯得過于復(fù)雜玄柠,很難被人理解突梦,只能說明你的代碼寫的太糟糕了。重寫你的代碼吧羽利,直到它不再需要任何注釋宫患,如果經(jīng)過努力,你仍然覺得注釋時(shí)必需的这弧,那你就務(wù)必加上注釋娃闲,切記,小心当宴!

學(xué)會(huì)讀源代碼是很重要的畜吊,因?yàn)椴还芪臋n上怎么說,源代碼才是最終的事實(shí)户矢,是我們能找到的最好的玲献,最確定的,最新的“文檔”梯浪。這個(gè)事實(shí)永遠(yuǎn)不會(huì)改變捌年,所以越早接受它,作為一名軟件開發(fā)者的境況會(huì)越好挂洛。

當(dāng)你經(jīng)營(yíng)一個(gè)公司礼预,如果你的軟件出了故障,你的客戶不會(huì)在乎是你的失誤還是linux的虏劲,或者是由Redis的開發(fā)人員造成的托酸,他們只知道是你的軟件出了問題褒颈。

所以真正的駭客世界只有一個(gè)簡(jiǎn)單的事實(shí):如果一個(gè)軟件在我的機(jī)器上運(yùn)行,那它就是我的軟件励堡。我要對(duì)它負(fù)責(zé)谷丸,我必須吧它弄明白,從源代碼開始構(gòu)建是一條必須遵循的原則应结,而且從不例外刨疼,我必須控制我的環(huán)境,我還要控制所有我依賴的東西鹅龄。

網(wǎng)站載入和顯示的速度哪怕是100毫秒為單位的延遲增加揩慕,也會(huì)讓用戶大量的流失。

對(duì)于速度的需求扮休,有這樣一個(gè)小建議:虔誠地遵循雅虎的指導(dǎo)原則

2007年以來迎卤,雅虎有一個(gè)“加速你的網(wǎng)站的13條簡(jiǎn)單原則”,另外還附帶了一條告誡:

這里有一些不錯(cuò)的建議肛炮,但是其中很多的建議只有在你運(yùn)營(yíng)了一個(gè)每天有幾百萬獨(dú)立用戶訪問的網(wǎng)站時(shí)才有意義止吐。

Gerald Weinberg的著作《成為技術(shù)領(lǐng)導(dǎo)者——解決問題的有機(jī)方法》對(duì)軟件工程領(lǐng)域的領(lǐng)導(dǎo)力做了更為深入的分析。

會(huì)議是浪費(fèi)工作時(shí)間的最佳去處侨糟,我們應(yīng)該以懷疑的態(tài)度去看待會(huì)議,把它當(dāng)成一種降低工作效率的風(fēng)險(xiǎn)瘩燥。

有下面幾個(gè)建議:
1秕重、會(huì)議絕對(duì)不應(yīng)該超過一個(gè)小時(shí),否則應(yīng)判以死刑厉膀。
2溶耘、每個(gè)會(huì)議都應(yīng)該有一個(gè)清晰的目標(biāo)聲明。
3服鹅、在開會(huì)之前就應(yīng)該預(yù)先做好功課凳兵。
4、把會(huì)議變成可選的企软。(“強(qiáng)制”的會(huì)議是站不住腳的庐扫,每一個(gè)出現(xiàn)在會(huì)議上的人都應(yīng)該是因?yàn)樗麄兿胍谀抢铮蛘咚麄冃枰谀抢镎躺凇R环N讓你自己對(duì)會(huì)議負(fù)責(zé)的可靠方法形庭,就是讓每個(gè)人自行決定是否要參加你的會(huì)議。如果大家都想?yún)⒓幽愕臅?huì)議厌漂,那一定是因?yàn)樗娴暮苡杏萌眩蛘吆苡腥ぃ蛘吆軍蕵肺#?br> 5富纸、在會(huì)議結(jié)束時(shí)概括一下待辦事項(xiàng)囤踩。

壞蘋果法則:

如果把一個(gè)壞蘋果留在一筐好蘋果里,結(jié)果你將得到一筐壞蘋果晓褪。如果你希望自己的企業(yè)成功堵漱,那么你就必須有一個(gè)積極進(jìn)取的團(tuán)隊(duì)。

我們?cè)趫F(tuán)隊(duì)中辞州,不必和每個(gè)人都成為朋友怔锌,需要去識(shí)別出“壞蘋果”,團(tuán)隊(duì)中有“壞蘋果”大概有下面這些警示信息:

  • 他們掩飾自己的無知变过,而不是盡力去向他們的團(tuán)隊(duì)伙伴學(xué)習(xí)埃元。他們會(huì)說:“我不知道該怎么解釋我的設(shè)計(jì),我只知道它能正常工作媚狰〉荷保”或者“我的代碼太復(fù)雜了,沒辦法測(cè)試崭孤±噜停”
  • 他們對(duì)個(gè)人隱私有著過度的渴望。會(huì)說:“我不需要任何人來查看我的代碼辨宠∫怕啵”
  • 他們很在意自己的地盤。會(huì)說:“我代碼里的問題沒人能修復(fù)嗤形。但我現(xiàn)在太忙精偿,沒時(shí)間去管它們,我打算下周處理它們赋兵”恃剩”
  • 抱怨團(tuán)隊(duì)所做的決定,即便團(tuán)隊(duì)已經(jīng)繼續(xù)前進(jìn)了很久之后還會(huì)重拾舊題霹期。會(huì)說:“我還是認(rèn)為叶组,我們應(yīng)該回過頭去修改我們上個(gè)月討論的那個(gè)設(shè)計(jì),我們當(dāng)初選擇的那個(gè)是行不通的历造∷κ”
  • 團(tuán)隊(duì)中大部分成員開始傳說關(guān)于同一個(gè)人的俏皮話或者埋怨他(軟件開發(fā)人員通常不會(huì)直接抱怨)员串,領(lǐng)導(dǎo)者需要去探查是否有什么狀況發(fā)生积锅。
  • 不會(huì)積極投入團(tuán)隊(duì)的行動(dòng)。

如果你的團(tuán)隊(duì)主管或者經(jīng)理沒有處理項(xiàng)目中的“壞蘋果”截粗,那他就是玩忽職守垮刹。

我們可以培養(yǎng)一個(gè)人的技能达吞,但是不能讓他們有積極的態(tài)度,把某個(gè)人從團(tuán)隊(duì)中調(diào)走是很痛苦的荒典,這件事對(duì)任何人來說都沒有趣酪劫,但是吞鸭,如果你意識(shí)到你本應(yīng)該在六個(gè)月前就把某人調(diào)走時(shí),其實(shí)你已經(jīng)陷入更加痛苦的境地了覆糟。

程序員天生就有強(qiáng)迫癥刻剥。

講究邏輯性,講究有序性滩字,思維縝密(防止bug)造虏,考慮邊界條件,寫代碼之前需要做好規(guī)劃麦箍。

要做單元測(cè)試的12個(gè)具體理由:

  • 單元測(cè)試可以證明你的代碼是能真正解決問題的漓藕。
  • 你可以在不破壞現(xiàn)有功能的基礎(chǔ)上持續(xù)改進(jìn)設(shè)計(jì)。
  • 它們可以被用來真實(shí)地展示開發(fā)速度挟裂。
  • 單元測(cè)試可以當(dāng)做示例代碼享钞。
  • 它逼著你在寫代碼之前做好計(jì)劃。
  • 它比不寫單元測(cè)試而直接寫代碼的效率更高诀蓉。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末栗竖,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子渠啤,更是在濱河造成了極大的恐慌狐肢,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沥曹,死亡現(xiàn)場(chǎng)離奇詭異处坪,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)架专,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來玄帕,“玉大人部脚,你說我怎么就攤上這事】阄疲” “怎么了委刘?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)鹰椒。 經(jīng)常有香客問我锡移,道長(zhǎng),這世上最難降的妖魔是什么漆际? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任淆珊,我火速辦了婚禮,結(jié)果婚禮上奸汇,老公的妹妹穿的比我還像新娘施符。我一直安慰自己往声,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布戳吝。 她就那樣靜靜地躺著浩销,像睡著了一般。 火紅的嫁衣襯著肌膚如雪听哭。 梳的紋絲不亂的頭發(fā)上慢洋,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音陆盘,去河邊找鬼普筹。 笑死,一個(gè)胖子當(dāng)著我的面吹牛礁遣,可吹牛的內(nèi)容都是我干的斑芜。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼祟霍,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼杏头!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起沸呐,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤醇王,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后崭添,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體寓娩,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年呼渣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了棘伴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡屁置,死狀恐怖焊夸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蓝角,我是刑警寧澤阱穗,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站使鹅,受9級(jí)特大地震影響揪阶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜患朱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一鲁僚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦蕴茴、人聲如沸劝评。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蒋畜。三九已至,卻和暖如春撞叽,著一層夾襖步出監(jiān)牢的瞬間姻成,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工愿棋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留科展,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓糠雨,卻偏偏與公主長(zhǎng)得像才睹,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子甘邀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容