日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

《程序员修炼之道》笔记(一)

發(fā)布時(shí)間:2023/12/18 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《程序员修炼之道》笔记(一) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這幾天開(kāi)始看《程序員修煉之道》,也許不少人看了書(shū)的標(biāo)題,第一時(shí)間會(huì)覺(jué)得這是雞湯一類(lèi)的書(shū)。但至少以我自己的感受來(lái)看,這是很棒的書(shū),現(xiàn)代人文主義不是提倡自我意識(shí)嘛,自己感覺(jué)好的就是好的。況且人家也是經(jīng)過(guò)了時(shí)間和口碑的雙重考驗(yàn)的,真心值得好好閱讀。

作者在再版的序中寫(xiě)道:

寫(xiě)完《程序員修煉之道》至今已有十年。在這十年中,軟件產(chǎn)業(yè)發(fā)生了翻天覆地的變化。……從表面上看,軟件世界似乎陷入了瘋狂的狀態(tài)。但如果你深入繁雜表象的背后,會(huì)發(fā)現(xiàn)變化其實(shí)并不大。1999年的那些通用開(kāi)發(fā)原則,在2009年同樣有效(很可能到2019年還會(huì)有效)……

大師就是這樣,能從繁雜的表象背后看到事物的本質(zhì)。就像任正非說(shuō)的:不管是不是互聯(lián)網(wǎng)思維,你造的汽車(chē)首先應(yīng)該是汽車(chē)。

書(shū)中的內(nèi)容多是兩位作者對(duì)多年經(jīng)驗(yàn)的敏銳抽象和升華,對(duì)我這個(gè)只有一年多經(jīng)驗(yàn)的程序員來(lái)說(shuō),要全部理解是不可能的,而好書(shū)也不是讀一次就夠的。這里就先記錄一些有點(diǎn)感觸的內(nèi)容:

?


?

第一章 注重實(shí)效的哲學(xué)

下面是作者在開(kāi)篇提到的注重實(shí)效的程序員的特征:主要體現(xiàn)在處理問(wèn)題、尋求解決方案時(shí)的態(tài)度、風(fēng)格、哲學(xué)

1. 能夠超越出直接的問(wèn)題去思考,總是設(shè)法把問(wèn)題放在更大的語(yǔ)境中,設(shè)法注意更大的圖景。沒(méi)有這樣更大的語(yǔ)境,你又怎能注重實(shí)效。

2. 對(duì)所做的每件事負(fù)責(zé),因?yàn)樨?fù)責(zé),注重實(shí)效的程序員不會(huì)坐視他們的項(xiàng)目土崩瓦解或者慢慢腐爛。

3. 勇于接受變化。大多數(shù)人發(fā)現(xiàn)自己很難接受變化,有時(shí)是出于好的理由,有時(shí)只是因?yàn)楣逃械亩栊浴?/span>

4. 擁有廣泛的知識(shí)和經(jīng)驗(yàn)基礎(chǔ)。

5. 善于交流。

從“程序員修煉之道”突然談到“注重實(shí)效的程序員”,咋看有點(diǎn)突兀,但如果看看原書(shū)的標(biāo)題 The Proagmatic Programmer,就不會(huì)有這種誤會(huì)了。越往后看本書(shū),越能體會(huì)到作者提到的這幾個(gè)特征的必要性。處理問(wèn)題、尋求方案時(shí)的態(tài)度、風(fēng)格、哲學(xué),這些對(duì)我們?cè)谲浖_(kāi)發(fā)中的行為是潛移默化而影響深遠(yuǎn)的。

?


?

1. 我的源碼讓貓給吃了

a. 在所有弱點(diǎn)中,最大的弱點(diǎn)就是害怕暴露弱點(diǎn)。

b. 不管是在職業(yè)生涯、還是項(xiàng)目、日常工作,為你自己和你的行為負(fù)責(zé),是注重實(shí)效的哲學(xué)的一塊基石,注重實(shí)效的程序員對(duì)自己的職業(yè)生涯負(fù)責(zé),而且不害怕承認(rèn)無(wú)知或錯(cuò)誤。即使在最好的項(xiàng)目中,盡管有徹底的測(cè)試、良好的文檔和足夠的自動(dòng)化,出錯(cuò)是難免的事情。一旦發(fā)生這樣的事情,我們要設(shè)法盡可能職業(yè)地處理他們,要誠(chéng)實(shí)坦率。我們可以為自己的能力自豪,但對(duì)于自己的缺點(diǎn)、無(wú)知和所犯的錯(cuò),我們必須誠(chéng)實(shí)。

c. 責(zé)任是你主動(dòng)承擔(dān)的東西。在作出承諾之前,盡可能的分析風(fēng)險(xiǎn)是否超出了自己的控制,對(duì)于不可能做到的事情或風(fēng)險(xiǎn)太大的事情,你有權(quán)不去負(fù)責(zé)。但如果你確實(shí)同意為某個(gè)結(jié)果負(fù)責(zé),就應(yīng)切實(shí)負(fù)起責(zé)任。但你犯錯(cuò)誤或是判斷失誤是,就誠(chéng)實(shí)地承認(rèn)它,并設(shè)法給出各種選擇。不要責(zé)備別人活別的東西,不要拼湊借口。遇到問(wèn)題時(shí),提供各種選擇,不要找蹩腳的借口(Provide options, Don’t make lame execuses)

“我的源碼讓貓給吃了”便是一個(gè)蹩腳的借口。要做到坦然地暴露弱點(diǎn),確實(shí)很難,但這是必要地,有一句很簡(jiǎn)練的話(huà):Be Human。我們要明白自己是普通人,而不是某種完美的物種,我們有失誤、疲倦、膽怯,允許這些發(fā)生并正視這一切,同時(shí)努力成為更好的人。而說(shuō)到責(zé)任,作者首先教我們的是正確評(píng)估事情的風(fēng)險(xiǎn)和自己的能力,如果風(fēng)險(xiǎn)超過(guò)了自己的控制,有權(quán)不去承擔(dān)。這真是再“實(shí)效”不過(guò)了。


?

2. 軟件的熵

熵是一個(gè)物理學(xué)概念,指的是某個(gè)系統(tǒng)中“無(wú)序”的總量。當(dāng)軟件的無(wú)序性增長(zhǎng)時(shí),稱(chēng)為“軟件腐爛”。而造成軟件腐爛的原因主要是:開(kāi)發(fā)項(xiàng)目時(shí)的心理(或文化)。軟件開(kāi)發(fā)同樣受“破窗理論”影響,低劣的設(shè)計(jì)、錯(cuò)誤的決策、糟糕的代碼都是軟件領(lǐng)域的破窗戶(hù)。一旦窗戶(hù)開(kāi)始破裂,情況就會(huì)迅速惡化,不要對(duì)其置之不理,發(fā)現(xiàn)一個(gè)就修復(fù)一個(gè),如果臨時(shí)沒(méi)有時(shí)間,就“用木板把它訂起來(lái)”,比如注釋、顯示“為實(shí)現(xiàn)”消息,或用假數(shù)據(jù)(dummy data)加以替代。

對(duì)于這一點(diǎn)挺有體會(huì),我見(jiàn)過(guò)有的軟件,編譯器給出了1000多個(gè)警告而置之不理。但話(huà)說(shuō)回來(lái),這又怎么處理,當(dāng)看到前人留下的1000多個(gè)警告的時(shí)候,我們嘗試過(guò)處理一下自己就近的,但馬上就會(huì)覺(jué)得無(wú)助。只能小心別讓自己增加更多的警告。當(dāng)若干年前第一條警告出現(xiàn)的時(shí)候,窗戶(hù)已經(jīng)開(kāi)始破裂,直到膨脹到無(wú)法收拾的地步。


?

3. 足夠好的軟件

a. 欲求更好,常會(huì)把好事變?cè)恪顮柾?/span>

b. 我們沒(méi)辦法做到十分完美,但可以訓(xùn)練自己,編寫(xiě)出足夠好的軟件,對(duì)你的用戶(hù)、對(duì)未來(lái)的維護(hù)者、對(duì)你的內(nèi)心安寧來(lái)說(shuō)足夠好。但“足夠好”絕不是編寫(xiě)不整潔或糟糕的代碼

c. 如何編寫(xiě)出足夠好的軟件:

1) 讓用戶(hù)參與權(quán)衡

軟件開(kāi)發(fā)過(guò)程會(huì)受到各種約束,比如市場(chǎng)人員有需要信守的承諾,最終用戶(hù)也許已經(jīng)基于交付日期制定了各種計(jì)劃,公司也會(huì)有現(xiàn)金流方面的約束。如果無(wú)視這些約束,一味地增加新特性或一次次潤(rùn)飾代碼,這不是有職業(yè)素養(yǎng)的做法。但許諾不可能兌現(xiàn)的承諾,為趕上最后期限而削減基本的工程內(nèi)容,同樣不是有職業(yè)素養(yǎng)的做法。

使質(zhì)量成為需求問(wèn)題。常常需要權(quán)衡足夠好與完美,許多用戶(hù)寧愿在今天用上有一些“毛邊”的軟件,也不愿等待一年后的多媒體版本。今天的了不起的軟件常常比明天的完美軟件更可取。而且讓用戶(hù)提前使用,他們的反饋可以把你引導(dǎo)向更好的解決方案。

2) 知道何時(shí)止步

藝術(shù)家們會(huì)告訴你,如果你不懂得應(yīng)何時(shí)止步,所有的辛苦勞作就會(huì)遭到毀壞。比如繪畫(huà),畫(huà)家需要不時(shí)得后退,用批判的眼光觀察自己的作品,以確定下一步,但如果你一層又一層地疊加細(xì)節(jié),就會(huì)迷失在繪畫(huà)中。程序也是這樣,不要過(guò)度修飾和過(guò)于求精二損毀完好的程序。

區(qū)分完美主義與強(qiáng)迫癥真是一件困難的事情。在現(xiàn)實(shí)生活中,兩者都可能帶來(lái)問(wèn)題。還好作者提示“如果無(wú)視這些約束,一味地增加新特性或一次次潤(rùn)飾代碼,這是不有職業(yè)素養(yǎng)的做法”,讓我們懂得權(quán)衡并知道何時(shí)止步。同樣地我想到最近發(fā)生在自己身上的一件事,遇到技術(shù)上的困難沒(méi)有請(qǐng)教別人,耗費(fèi)了很多時(shí)間才自己搞出來(lái),這同樣不是有職業(yè)素養(yǎng)的做法。

?


?

4. 你的知識(shí)資產(chǎn)

a. 你的知識(shí)和經(jīng)驗(yàn)是最重要的職業(yè)財(cái)富,但它們是有時(shí)效的資產(chǎn)。隨著你的知識(shí)價(jià)值的降低,對(duì)你的公司和客戶(hù)來(lái)說(shuō),你的價(jià)值也在降低。

b. 怎樣經(jīng)營(yíng)管理知識(shí)資產(chǎn),與金融資產(chǎn)類(lèi)似:

1) 定期投資。即使投資量很小,習(xí)慣自身也和總量一樣重要。

2) 多元化是長(zhǎng)期成功的關(guān)鍵。你知道的不同的事情越多,你就越有價(jià)值。但作為底線,你需要知道你目前所用的技術(shù)的各種特性,同時(shí)不要就此止步

3) 在保守的投資和高風(fēng)險(xiǎn)、高回報(bào)的投資之間取得平衡。不要把所有的技術(shù)放在一個(gè)籃子里。

4) 低買(mǎi)高賣(mài),以獲取最大回報(bào)。在新興技術(shù)流行之前學(xué)習(xí)它就可能和找到被低估的股票一樣困難,但所得到的就和那樣的股票帶來(lái)的一樣。

5) 周期性地重新評(píng)估和平衡資產(chǎn)。

知識(shí)如同財(cái)富,需要用心經(jīng)營(yíng),這聽(tīng)起來(lái)挺功利的,但對(duì)于技術(shù)性的知識(shí)來(lái)說(shuō),確實(shí)應(yīng)該采納作者的這些建議。


?

5. 交流

交流的重要性自不必作者多說(shuō),在交流技巧方面,作者建議考慮WISDOM原則:

What do you want them to learn

What is their interest in what you’re got to say

How sophisticated are they

How much detail do they want

Whom do you want to own the information

How can you motivate them to listen to you

總體來(lái)說(shuō),就是首先要了解交流的對(duì)象,并能夠站在對(duì)方的角度想問(wèn)題,同時(shí)要經(jīng)常跳出事情本身來(lái)看看大局

?

歡迎關(guān)注我的個(gè)人公眾號(hào)【菜鳥(niǎo)程序員成長(zhǎng)記】

轉(zhuǎn)載于:https://www.cnblogs.com/zhixin9001/p/6764767.html

總結(jié)

以上是生活随笔為你收集整理的《程序员修炼之道》笔记(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。