程序員的吶喊 txt_《程序員的吶喊》讀書筆記
本文關(guān)鍵詞:程序員的吶喊,由筆耕文化傳播整理發(fā)布。
《程序員的吶喊》讀書筆記
在JD的購書通道里,看到了這樣的一個書名,果斷入手,看了以后果然非同凡響。
通常程序員在工作開始的幾年內(nèi),很多習(xí)慣就已經(jīng)定型,甚至影響一輩子了。這個規(guī)律不僅適用于程序員,也適應(yīng)于其他各行各業(yè)。所以,前幾年好習(xí)慣的培養(yǎng),或者是學(xué)校的培養(yǎng),那是相當(dāng)重要的。
人總是喜歡呆在自己的舒適區(qū),做覺得沒有難度的事情。問題是,沒有難度和挑戰(zhàn),哪來的成長和進步?很多二流程序員,會陷入自己設(shè)計的二流架構(gòu)中,然后一輩子就圈在這樣的陷阱中了。多跳出來看一看,多做一點讓自己覺得困難的事情。
很多公司的代碼庫大的讓人吃驚,幾百萬,幾千萬甚至上億行。他們?yōu)槭裁词チ藙?chuàng)新和快速變化的能力?因為代碼太多了。代碼越多, 維護成本就成倍增長,最后甚至沒人能搞定它們。設(shè)計模式就像盒子, 它雖然能把代碼分門別類整理的看似很規(guī)整,可是你要知道設(shè)計模式也是代碼,也一定程度上惡化了問題。
這讓我想起了我設(shè)計的框架,我花了兩三年時間, 設(shè)計了一套C#的代碼庫,并精心維護它們。但大量的時間花在了維護框架本身,而不是解決問題上。雖然框架設(shè)計的還算合理,可是我明顯感覺到它就像拖在我身后的麻袋,雖然裝了并不好吃的口糧,但卻讓我越走越慢。仔細(xì)看每一個類,好像都有作用,但自己再想想,真的需要那么多嗎?它們是財富,也是包袱,,越通用的方案,解決特定問題的能力就越弱。如果我真要下定決心重寫一遍,代碼量會減少到現(xiàn)在的五分之一!
為什么會有那么多的代碼?設(shè)計人員難推其責(zé),不斷的重復(fù)和過度設(shè)計,溝通不暢,反復(fù)的堆疊,這些自不必說。程序語言本身也有問題。比如Java,什么類都要加上Manager, Builder, Factory...又丑又重,強類型語言難以對復(fù)雜的變化做拓展,于是再被設(shè)計模式添油加醋,越寫越復(fù)雜。
于是,弱類型語言就是個好選擇嗎?弱類型語言的動態(tài)性要強很多,能動態(tài)增加方法和屬性,但這些自由也意味著一定的代價,比如不安全和一系列動態(tài)錯誤。這仿佛是現(xiàn)實世界的保守派和自由派一樣,兩派的爭論無休無止。保守派意味著詳細(xì)的文檔和規(guī)范,嚴(yán)格的建模和測試,SQL,穩(wěn)定的代碼風(fēng)格,拒絕新特性,各司其職和責(zé)任劃分。自由派意味著弱類型,腳本風(fēng)格,NoSQL,先跑起來再說,樂于接受事物,面對變化。很難說哪一派更好,對于銀行業(yè)這樣的系統(tǒng)而言,顯然是保守派的天下,而如今世界紛繁多變,搶占市場,快速迭代,到底哪一種思維更好,那就是各位看官們的判斷了?傊徽撊绾,請好好學(xué)習(xí)一門弱類型的動態(tài)語言,比如Ruby或者Python!
弱類型有缺點,比如編譯器的自動支持不夠好,但這些問題在未來總歸是能解決的,因為有懂編譯器的大牛搞定,說起編譯器,基本上懂或者寫過編譯器的人,編程水平超出別人一大截(這不是廢話嗎)。于是,在簡歷上寫“搞過編譯器”,那簡直是夜空中閃亮的星!如果我是面試官,一定會首先考慮!你會想這樣對不懂編譯器的大牛們太不公平了吧,可惜,很多事情就是如此的正相關(guān)。算法搞得好的人,他的編程,知識和技巧肯定不會差。編譯原理的知識,能夠讓你解決大量很酷的問題,能重新審視寫過的代碼和系統(tǒng)。什么能讓你徹底精通一門語言,那就是設(shè)計它的編譯器!
軟件需要哲學(xué)家,因為哲學(xué)能幫你更好的理解和抽象問題。而數(shù)學(xué)也非常重要,學(xué)生時代的數(shù)學(xué)課程有問題,它教了太多對程序員太不實用的東西。如果說普通數(shù)學(xué)和計算機最大的區(qū)別,那就是前者是連續(xù)的,而后者是離散的。如果你有機會把離散數(shù)學(xué),概率論,線性代數(shù)都再學(xué)一遍,那么編程水平就會又有一個質(zhì)的飛越,做到可以隨手寫一個機器學(xué)習(xí)的算法。
所以,趁現(xiàn)在還處于黃金年齡,趕緊靜下心來學(xué)習(xí)吧,有無數(shù)值得看的書,要學(xué)的數(shù)學(xué)和算法,要研究的編譯器(也許我真能學(xué)點皮毛呢)。避免眼高手低,去把它寫出來。不要問為什么,世界頂級公司的平臺,待遇和發(fā)展值得你這樣去努力!也許被Google這樣的公司拒絕并不好受,但要知道很多大神也被拒了兩三次之多,無非就是再等半年么,相信我,時間過得很快的!
堅持做一個傻瓜!
posted @
本文關(guān)鍵詞:程序員的吶喊,由筆耕文化傳播整理發(fā)布。
本文編號:156093
本文鏈接:http://sikaile.net/wenshubaike/mishujinen/156093.html