用Ruby的酷炫語法裝了個逼,我想在第三次閱讀這本書之后惩激,或許我有資格寫一篇書評了吧戈擒?
經(jīng)典之作
互聯(lián)網(wǎng)蓬勃發(fā)展的今天使得文字的傳播方式越來越多樣化,但是人們似乎依然無法拋棄原始的閱讀習(xí)慣--書籍惩坑。在這個流行“短小快”的時代斥铺,沉下心來好好讀一本書到底還有沒有意義挽放?如果有意義的話,那么在這個什么人都能夠出書的時代擎颖,我們應(yīng)該如何選擇書籍慢哈?這個問題讓我想起了新東方的“三輛馬車”之一的王強(qiáng)蔓钟,他可是出了名的書蟲,他挑書有這么一套見解“暢銷書我是堅決不讀的卵贱,我的生命有限滥沫,我會選擇經(jīng)典的東西來的讀,就是那些經(jīng)過長時間的大浪淘沙卻還能存活下來的作品键俱±夹澹”或許這句話能夠讓你聯(lián)想到諸如《莎士比亞》,《呼嘯山莊》编振,中國四大名著這一系列的書籍缀辩。它們在經(jīng)過歷史的篩選之后卻還能夠存活下來,并且為不同時代的人們所喜愛著。
王強(qiáng)的擇書方式在計算機(jī)領(lǐng)域是否適用臀玄?在計算機(jī)幾十年的歷史里面瓢阴,有哪些書可以被認(rèn)做是經(jīng)典?無疑《C程序設(shè)計語言》健无,《計算機(jī)解析與構(gòu)造》荣恐,《計算機(jī)程序設(shè)計藝術(shù)》這一系列的書都被認(rèn)為是業(yè)界經(jīng)典中的經(jīng)典。但很遺憾地說這幾本書我都沒讀過累贤。讀不懂的書即便他再經(jīng)典叠穆,我也不會去讀他,因為其感覺就像是一個完全不懂英文的人畦浓,拿著一本《莎士比亞》原版在讀一樣無趣痹束。然而這個領(lǐng)域是否有一些能讓正常人看的检疫,而且還算是經(jīng)典的著作讶请?無疑 Paul Graham的《黑客與畫家》就是這樣一本書。
剛開始聽說這本書屎媳,還是在跳槽之前夺溢,我問我同事,這本書可好看烛谊?同事說這就是雞湯风响。讀了以后發(fā)現(xiàn),書中的內(nèi)容在那個年代來說很有前瞻性丹禀。而且作者的觀點状勤,即便在今天都很有意義。這本《黑客與畫家》經(jīng)過了十幾年(對計算機(jī)發(fā)展來說算長了)的沉淀還廣受好評双泪,這無疑可以算得上是一本經(jīng)典作品持搜。
“黑客”二字
出于興趣而解決某個難題,不管它有沒有用焙矛,這就是黑客葫盼。
我本以為這只是一本寫一個程序員應(yīng)該有理性的一面(黑客)也得有感性的一面(畫家)的書。但后來發(fā)現(xiàn)我錯了村斟,本書中作者從創(chuàng)造性來體現(xiàn)這兩個職業(yè)的相似性贫导。無論是黑客與畫家,他們的本質(zhì)都是在創(chuàng)造蟆盹,無論創(chuàng)造出來的東西有沒有人會去用孩灯,有沒有人會去欣賞,他們的回答是“Just For Fun”逾滥。這似乎跟我們一慣理解的黑客有點不一樣峰档。功利主義盛行的今天,如果我們要做一個業(yè)余項目,總會陷入做的東西有沒有用面哥,能不能賺到錢這樣的思維陷阱里面哎壳,導(dǎo)致遲遲不肯動手。殊不知很多時候現(xiàn)實卻如作者所描述的尚卫,有趣的東西往往不值錢归榕。
設(shè)計編程語言往往是不賺錢的,但它是有趣的吱涉,相反刹泄,大部分賺錢的工作都是無趣的。
在現(xiàn)實生活中為了謀生怎爵,不得不做許許多多無聊且重復(fù)的工作特石。畢竟有些雇主很有意思,他寧愿讓你做一些毫無意義的工作也不樂意看你閑著鳖链,可能要看到碼農(nóng)們忙碌的樣子姆蘸,他們才會覺得這工資給得值當(dāng)?如果他們看不到的忙碌的樣子芙委,或許會用代碼行數(shù)來衡量你的團(tuán)隊貢獻(xiàn)值(這個時候Ruby程序員估計會哭)逞敷,悲哀的的是這種現(xiàn)象也使得了許許多多程序員最后都真的演變成碼農(nóng)了。
“黑客”二字的含義灌侣?更具體地可引用男神--松本行弘的話:“編程本是一種很個性化且有趣的事情推捐,如果你覺得編程只是一種謀生手段的話,那還是趁早辭職吧侧啼∨F猓”
理論與實戰(zhàn)
黑客搞懂計算機(jī)理論的必要性,與畫家搞懂顏料化學(xué)成分的必要性差不多大痊乾。
這確實是一個新穎的觀點皮壁,跟我們所受的教育有點出入。受大學(xué)老師的影響符喝,很多時候我們總以為不讀完《Ruby基礎(chǔ)教程》闪彼,《JavaScript權(quán)威指南》這些所謂的入門書籍就沒資格寫代碼。我們總覺得不搞懂操作系統(tǒng)协饲,編譯器的運行原理我們就算不上是一個稱職的程序員畏腕。如果這一切應(yīng)該做的事情能夠給予我們學(xué)習(xí)的動力那還好說,但是這往往只會給我們造成一些不必要的壓力茉稠。其實編程往現(xiàn)實去講描馅,并沒有那么多幺蛾子。現(xiàn)實生活中我們更多的關(guān)注了我們可以怎么做而线,卻沒花時間去想我們要做什么铭污。就好像自己當(dāng)年信誓旦旦地買了一本Python數(shù)據(jù)分析相關(guān)的書籍想著進(jìn)入數(shù)據(jù)分析領(lǐng)域恋日,買回來之后才發(fā)現(xiàn)里面都是講Python一些數(shù)據(jù)分析的庫的使用方式,但對于一個毫無數(shù)據(jù)分析意識的人來說嘹狞,再多的工具也只是擺設(shè)罷了岂膳。
其實想寫Ruby,JavaScript掌握了基本語法就可以了磅网。并不需要真的深入到語言內(nèi)部谈截,對語言有一個通透的理解之后才有資格寫相關(guān)的代碼。一個很有趣的現(xiàn)象是涧偷,實際工作中更多的是需求推動的學(xué)習(xí)簸喂,而不是學(xué)習(xí)推動的需求。剛開始做前端的時候燎潮,其實只懂得margin喻鳄,padding,float确封,這些最基本屬性除呵,做前端的同學(xué)無法想象,如果只懂這些個小東西怎么在一家公司活下去隅肥?說實話我也是忽悠過來的竿奏,邊做邊學(xué)吧袄简。隨著后面的業(yè)務(wù)需求變得復(fù)雜腥放,漸漸推動自己去學(xué)一些關(guān)于position, transition, transform, flex這樣一些比較靈活的屬性,能夠做出更加酷炫的效果绿语。試想一下秃症,如果當(dāng)初真的是想學(xué)完所有的CSS技能之后再去找工作,才去動手寫代碼的話吕粹,估計我已經(jīng)放棄編程了种柑。要是在沒有實際項目的情況下去死記CSS那一大堆煩人的屬性?Kil me please.
永遠(yuǎn)質(zhì)疑
很少有人鼓勵你繼續(xù)成長匹耕,變成一個懷疑和抵制社會錯誤潮流的人
幾乎所有人都害怕質(zhì)疑聚请,很多時候如果自己的觀念被證明是錯的,正常人都會有丟臉的感覺稳其。近代中國害怕質(zhì)疑驶赏,采取了閉關(guān)鎖國的政策,現(xiàn)代中國害怕質(zhì)疑既鞠,采取了半鎖國政策煤傍,學(xué)校的老師害怕質(zhì)疑,只傳授背書的技巧嘱蛋,卻很少教會學(xué)生如何思考蚯姆。我們往往都希望身邊的人無知一些五续,這樣我們可以少遭受一些質(zhì)疑。
但在技術(shù)領(lǐng)域龄恋,如果缺乏質(zhì)疑疙驾,則表示放棄進(jìn)步。剛參加工作的時候我很害怕把自己的代碼提交到版本管理庫郭毕。把代碼提給同事看就像被圍觀洗澡那般難為情荆萤。但現(xiàn)在回過頭想誰寫的代碼沒有bug?當(dāng)你接受他人的意見改良自己代碼的時候铣卡,我們應(yīng)該為此而感恩链韭,即便這個過程開始是痛苦的。作為程序員我們應(yīng)該擁抱質(zhì)疑煮落,我一直相信開源項目就是這個行業(yè)質(zhì)疑的體現(xiàn)敞峭,每個人都能夠提出對特定項目的質(zhì)疑,他們可以通過提交自己的代碼的方式來讓原有的軟件變得更加美好蝉仇⌒铮或許正是因為黑客們對質(zhì)疑的擁抱,我們才有這么多好用的開源工具轿衔,IT行業(yè)才能發(fā)展得如此迅速吧沉迹? 作者也曾說
開源軟件就是因為公開承認(rèn)自己有bug,反而使得代碼的bug比較少
寫作
你有沒有注意過害驹,坐下來寫東西的時候鞭呕,一半的構(gòu)思是寫作時產(chǎn)生的?軟件也是這樣宛官,實現(xiàn)某一個構(gòu)思葫松,會帶來更多的構(gòu)思。
估計這就是整本書里面對我影響最深的一句話了底洗,作為一個平時會寫點東西的程序員腋么,深深體會到了寫東西的苦惱。因為有時候周圍的人對文章的反應(yīng)會很影響作者的寫作熱情亥揖。當(dāng)周圍的人對自己的作品不待見的時候珊擂,我總是會想過段時間再寫吧,最近沒什么心情寫了费变,反正寫了沒人看摧扇。但是過后才發(fā)現(xiàn)越是拖延,越是難以提筆胡控,而且原來一些已經(jīng)萌發(fā)的寫作靈感在荒廢寫作的這段時間里也漸漸淡去扳剿。到了某個時間點,自己能夠提起勇氣重新開始的時候昼激,你會發(fā)現(xiàn)庇绽,荒廢寫作期間丟失的靈感又再次回來了锡搜。甚至有時候我會覺得其實堅持往往不是最難的,難的是重新開始瞧掺。特別是當(dāng)你喪失慣性的時候耕餐,你會越來越不愿意重新開始。
其實辟狈,你不知道的是肠缔,當(dāng)你有勇氣重新拾起放棄已久的技能的時候,很多你以為喪失的東西會重新回來你的身邊哼转,而且會在你干這件事的時候涌現(xiàn)出越來越多的驚喜明未。編程與寫作的相通之處,我相信不僅僅是鍵盤上的啪啪啪壹蔓,他們是一個創(chuàng)作的過程趟妥,可能開始的時候只是一個簡單的構(gòu)思(原型),后來漸漸變成一個清晰的輪廓佣蓉,慢慢的我們會優(yōu)化我們的框架披摄,讓我們的作品越來越與眾不同,得到原先想象不到的成果勇凭【尾玻或許這也是作者說的 黑客,作家虾标,畫家這些職業(yè)的相似之處吧寓盗,他們都是在進(jìn)行漸進(jìn)式的創(chuàng)作,而且很多靈感往往都是在創(chuàng)作過程中出現(xiàn)的夺巩。
尾聲
民間經(jīng)常會說“事不過三”贞让,但是面對《黑客與畫家》這種作品,我很難保證不去看第四遍柳譬。《黑客與畫家》不是常規(guī)的雞湯续镇,它是一位出色的黑客的所思所想的匯總美澳。這位黑客起初就想當(dāng)一名畫家,為了生存以編程為生摸航,再后來開始指導(dǎo)硅谷的人創(chuàng)業(yè)制跟,當(dāng)上了天使投資人。唯一不變的是酱虎,多年后的今天他依然既是黑客雨膨,也是畫家。