|
?。ㄕf明:本文轉自公司知識庫的一篇原創文章,作者:李瑞寬)
想象你是一個初出茅廬的小菜鳥,上頭交代你做任務,你對其中的一項任務有那么一小點疑問,你怯生生地問:“我覺得這項任務說得不是很清楚,那樣做行嗎?為什么呢?我覺得應該這樣做更好。”項目很緊,上頭頭大著呢,他很不耐煩地對你說:“不要問那么多!我都考慮清楚了,只要照著做就行!”你應該怎么辦呢?你是就這樣屁顛屁顛地去做了,還是還是覺得你應該知道為什么要按照他說的做,而不是按照你說的做嗎? 你應該知道。而且你要一直堅持“我應該知道”這種想法,因為這種想法,會帶領你走進一片新天地。你可能還意識不到,你現在的是否堅持和你后續的發展休戚相關。堅持了,你會向著更深的層次邁進;放棄了,你就一直呆在原地,沒有辦法進步。
依我看來,技術人員的發展,不外乎往深度發展或者往廣度發展。
什么是深度呢?就是你對技術的掌握程度,你一套扎進去,對技術有自己越來越深的理解,你從不會到會,從會到精,你會顯著感覺到自己能力的提升,等到精通了技術之后,使用這項技術自然是揮灑自如,易如反掌。
什么是廣度呢?就是十八般武藝,刀槍劍戟棍,.NET, Java, Silverlight,逮著什么就是什么,都去參上那么一腿,這個就是廣度。你學習了N多技術,每次見到一種新技術新語言你就兩眼放光四肢冒汗,你都要根據它們的入門指南操作那么一次,好吧你是很踏實的人,所以你多操作了那么兩次,之后你就能夠很NB地在簡歷上面吹牛逼:“本人精通C#、C++、Java、php、HTML、C、匯編、Python 不拉不拉不拉,神馬技術神馬語言對于我都是浮云!”說出去唬的別人一愣一愣的,當然,他們并不知道,你只寫過這一堆語言的Hello world。
深度很奧妙,廣度很有趣,你應該怎么選?
如果是二選一,毋庸置疑,你應該選擇深度!為啥呢?深度是一個技術人員的核心競爭力。在這個IT從業人員多如過江之鯽的今天,IT民工、碼農到處都是;本科如狗,碩士滿街走,只有博士還能抖一抖;街邊隨便哪個修鑰匙檔上面都貼著廣告“200元企業建站!立等可取!”技術人員如何安身立命?
這個時候,你應該靠你的深度,你也只能靠你的深度了。道理很簡單,技術人員靠什么吃飯?靠自己的腦子。從你人生到現在的經歷中,你早早就依靠腦子跟別人競爭了。從小學到初中到高中到大學,哪一次升學考試你不是靠自己的腦子將別人PK下去?你知識掌握的越牢固,學得越深入,對那一堆公式定理理解的越深刻,你就越能夠在競爭中占據有勢,最終贏得求學階段的勝利。不管現在學校擴招多厲害,名牌大學還是高質量的金字招牌,在普羅大眾的眼中熠熠生輝,阿彌陀佛。進入了社會,這樣的競爭其實還是很類似的,只要你比人功夫深,你就比人香噴噴。
深度就是你的內功,它帶來效率,它能夠讓你非常穩健地向前進。我們來看看倚天屠龍記里面對乾坤大挪移的描述:“正如要一個七八歲的小孩去揮舞百斤重的大鐵錘,錘法越是精微奧妙,越會將他自己打得頭破血流,腦漿迸裂,但若舞錘者是個大力士,那便得其所哉了”。你的深度,就是你自己的力量,你要使用的技術,就一把大鐵錘,你要掌控好這把鐵錘,沒有深度,就等著自己被砸傷吧!深刻地掌握一樣東西,不單明白了它什么時候非常適合使用,什么時候能夠使用,也能明白它什么時候最好不用。在平時的生活中你是否經常聽到這樣的話:“微軟/Java/etc的XXX技術太難用了!我想要XXX它XXX就是搞不定!”很顯然,你碰到了大鐵錘的受害者。不排除微軟的確是有難用的東西,臭名昭著的就有MSN,但依據我粗淺的技術眼光,至少在開發技術這塊,微軟還是相當有想法的,而且構建的東西只要摸清它的底,用起來還是頗為暢快的。
說到深度,就要提到境界。從你選擇了深度這條路開始,你已經開始踏入了境界之旅。
境界是分層次的,學拳的說“招熟,懂勁,神明”,孔子說“三十而立,四十不惑,五十知天命,六十耳順,七十為所欲為不守規矩!哦,是從心所欲不逾矩”。這兩家說的都是不同的境界層次。你在開始境界之旅中的某一個時刻,將會處在某一個特定的境界層次中。不同的境界的認識是不同的,同樣的話,境界低的人會看不到什么東西,境界高的人就能一眼看到其中的道理。即使大家都能看到其中有東西,看到的東西本身往往是不一樣的。你平時有沒有試過在一個問題上面困擾很久,旁邊一個人過來一句話就將它解決了?這是因為他的境界比你高出一層不止。
站在地上往下看,能看見直徑1m的范圍,有螞蟻、落葉和浮土;站在4層樓頂上往下看,能看見直徑100m的范圍,有汽車、馬路和綠化帶;站在50層樓頂上往下看,能看見直徑10000m的范圍,有成片的樓群,飄過的直升機和綿延的山嶺。境界不同,看到的東西就不同。
境界不同,有時候交流起來是比較困難的,同樣的概念,大家的理解是不一樣的,雖然可能在不同的境界中他們都正確。好多東西你覺得很新奇很給力,在更上一層的人看來,那不過是常識罷了。有人說人民日報是最真的媒體,從上面獲益良多;有些老板什么電視都不看,天天就看新聞聯播;而這些在憤青眼中,只不過是黨欺騙P民的謊言,令人作嘔。你說誰才是對的?老板看完了,能夠摸到政策的動向,賺到實實在在的money;而在同樣的憤青群體眼中,他們就會覺得這位受到喉舌毒害的憤青是正確的,就應該嘔吐,唾棄它們,鄙視這些五毛黨!慈禧年間,有個農婦和別人吹水:“老佛爺吃的煎餅,那可真不得了啊!至少一定得有鍋蓋那么大!”殊不知連低慈禧N個檔次的人,可能都已經不知道煎餅是何物了。這就是境界不同的緣故了。我現在回想起中學學習的思想政治課,開始覺得它們不再如當初的枯燥,變得非常有道理。
技術的境界和學拳的是非常類似的,一開始你只要學會怎么用,用熟練就好,然后你開始好奇它內在是怎么實現的,開始研究它實現的機制,等你學會了這些機制,你就懂得怎么發力了,你能夠將這些機制用到其他地方,招招見血??!再然后你通過不斷的思索總結,你窺到了其中的概念和原理,你悟到了它存在的理由,于是你就神明了,你悟到的這些道理,不單可以用到類似的應用場景中,還可以用到更深遠的地方,甚至日常生活之中。譬如事務這個玩意,一開始你只知道它是數據庫里面的一個東西,你不知道它是啥,但是上頭就是要求你用它。后來你知道它怎么用了,再然后你可以搞定死鎖,將它用得很帥。終于有一天,你悟到了事務原來并不是只有一種實現,它是一個概念,是一個協議,它能夠達到概念和實現的分離,它可以通過二階段提交,也可以通過補償等方式實現,更要命的是它不單可以通過計算機搞,還可以通過手工來搞。事務協調器可以不單只是一段代碼,還可以是一封Email,一張貼在墻上的紙……那你才真正明白了事務這個玩意可以怎么玩,然后再明白了怎么去根據這種思路去探索其他的東西。想象你去超市買東西,你先給了錢給收銀的美女,然后你還沒有踏出大門,你就后悔了——TMD怎么又買了這么多用不著的東西?你對收銀MM說:“不好意思咱不買了,你退錢給我吧!”收銀MM又PP又通情達理,她在POS機里面將你的消費記錄XX掉,將錢退回給你,順便還送給你一盒益達——是你的益達!這中間,就體現了一種事務的思想。你體會了這種思想,就可以一下子老了四五十歲,達到七十歲的境界,為所欲為。計算機相關的這些東西,集人類智慧之大成,研究這個而能有所感悟,真真正正能達到境界上的提高。
境界到了最高妙之處,就會由實入虛,從術而道,這時你就悟到了如何將事物的本源跟事物的存在區分開來,你能夠看清楚什么是本質,什么是表象,什么是要做到的目標,而什么是具體的行為。你從本質的角度看過去,你就具有了一雙慧眼,將這紛擾看得清清楚楚明明白白真真切切,這雙慧眼就是做洞察力。
什么是本質呢?本質就是事物賴以存在的根本原因,若然沒有這個原因,這個事物就沒有存在的意義,就會消亡。所謂存在即合理,這個合理不是說的合乎情理,而是說存在都是具有它深層次的根本原因的,也就是都是有本質的。不知道你有沒有注意到,很多技術書籍第一章都是介紹技術出現的歷史的,之前我覺得這些羅里啰嗦,都是廢話,直接翻過去直奔技術本身而去也,其實它是全書的總綱(天之道,損有余而補不足,是故虛勝實,不足勝有余……),它論述的是這種技術的存在理由,如果沒有這種理由,這種技術都沒必要存在了,我們還學它干毛啊。
我們來說一個普通的項目,它的本質是什么?是它復雜糾結的需求嗎?是它深奧精妙的設計嗎?是它完全符合CMMI5滴水不漏的流程嗎?都不是,它存在的意義,就是為了能為客戶產生價值,真真正正消除客戶的痛處。本質和表象是很容易混雜的,要將東西亂七八糟混雜在一起很容易,要清清楚楚區分它們,將它們有條有理擺放得整整齊齊是很困難的,這里快刀斬亂麻行不通,你得抽絲剝繭,一條條分得清清楚楚,不然你永遠達不到透徹的境界。
本質是虛的,表象是實的。我們很難捉摸得到虛的東西,而實實在在的東西一直圍繞在我們周圍,所以我們很容易就能夠接受它們,然后我們很容易就被這些東西迷惑,看不到背后還存在深刻的東西。我們需要透過現象看到本質,找到它們。本質堅如磐石,相對不變,只要有存在的理由,它就一直都存在,而表象如行云流水,花開花落,一直都在改變。就如用兵,目標是求勝,這是斷然不會改變的,而行軍就是兵無常勢,水無常形,因時制宜,隨機應變。倘若我們混淆了本質和表象,追求的是表象的東西,由于表象千變萬化,到頭來疲于奔命,卻又兩手空空,最后郁悶得對天大罵:“TMD這技術變得太快了!老子跟不上不玩了!”。你應該知道,凡是覺得亂的,都是因為沒有得到本質。當你具有了深邃的洞察力,你得到了本質,你就能夠不役于物,你就能看清變以不變,你就不會再去盲目追求具體的行為。
當你做項目,你強調的不再是符合某個規范來做,你深深知道規范只是一種具體的行為,你關注你的目標,你能夠帶給客戶的價值,你團隊的效率。當現在的規范不符合你的項目,你就大膽裁剪它,甚至拋棄它,而不是盲目將項目往規范上靠——只因為它是CMMI的建議,你所作的一切,都是為了你的這個目標而努力。
具有洞察力,通曉變與不變,你不但能看清現在的情形,你還能看清今后的趨勢,然后針對趨勢采取措施。我們可以清楚地看到,技術日新月異,但人們的思想變化卻不大,一部道德經,幾千年下來我們的思想仍然無法突破它論述的范疇,所以我們可以利用將來可能出現的新技術,結合人們不怎么改變的思想需求,做一些東西出來——不要問我是什么東西,我想到也不會告訴你。
是不是覺得上面的這些東西都很虛很哲學?虛實只是相對的,當你達到這樣的境界,你自然就會明白我說的是什么,當然,當你覺得已經知道我在說什么了,我覺得你還是可以繼續再想想,后面再來看,感覺又不一樣。張三豐教張無忌太極劍的時候,連續兩次教招,卻無一式相同。張無忌“細細體會其中圓轉如意,綿綿無盡之意”,楊逍殷天正“粗略窺到這個層次”,而周顛則是“大為擔心,兩遍都不一樣,咱們教主怎么記得?。?rdquo;道理不在于講,而是在于悟,否則講得再多也沒用,不深刻,沒效果。一陣風吹過,吹過松散的茅草屋,那就是一場災難;吹過石壁,最多也只能帶走幾顆細沙;吹過水面,能蕩起了一圈圈的波浪;吹過風車,則產生了源源不斷的電力。蘋果掉到牛頓頭上,就誕生了萬有引力,掉到你我頭上,只能產生一個包和一顆蘋果核。好吧我們就不討論假如掉的不是蘋果而是椰子的事情了。上士聞道,勤而行之;中士聞道,若存若亡;下士聞道,大笑之,不笑,不足以為道。鄧小平之所以喜歡看金庸的小說,稱呼金庸為大師,他必然是看到了小說里面的這些道理。
虛到九天之上,還是得落地。讓我們看看一些稍微實際點的東西。你水平提高了,開始做設計了,開始寫設計文檔,你應該寫些什么?在你記錄下你做出來的東西(你搞出了CDM、PDM)的時候,我覺得你還需要記錄下你這樣做的原因,因為隨著時間推移,你設計的東西很可能不適用,但你的想法還是很有用很有參考意義的,你的想法是你CDM存在的原因。別人看你的設計文檔,不單能看到死的結果,還能看到活生生的你的思想,然后延續這種思想,讓設計具有生命力,能夠延續下去。平時我們做需求,也要很清楚地知道什么才是真正的需求。我們來研究一下手機鈴聲,它表示了一種什么樣的需求呢?你寫下需求“我們的手機需要一種鈴聲”,于是,設計就產生了蜂鳴聲鈴聲、十六和弦鈴聲、MP3鈴聲,但這就是我們的需求嗎?不是的,其實你想說的是“我們需要一種提醒方式,這樣在短信、或者電話到來的時候就能提醒使用者注意了”,這樣就能設計出各種鈴聲,還有震動,還有鈴聲混合震動,在極端情況下,假如用戶處于一個高度緊張的環境之下,很難注意到這種提醒,我們還能設計出讓手機彈出一根刺,刺他一下的方式,一下不行?來多幾下。記得之前看到一個鬧鐘的笑話:推銷員對一個職員說,我們這種鬧鐘非常好用!它一開始放輕柔的音樂,如果還不醒,那它改放嘈雜的音樂,如果還不醒,它就往你頭上灑水,再不醒,它就開始刺你。如果這樣都還不醒,它就會打電話給你老板,告訴他你生病了,請假一天。這個鬧鐘深刻把握了自己的本質啊。
具有洞察力,我們就能根據行為和目標的契合程度,評價行為是否合理。作為技術人員,我們身邊的爭論隨處可見,語言之爭,框架之爭,各種流派,各種山寨,比比皆是。“{”到底放在方法定義的最右邊,還是放在方法定義的下一行呢,這可不是一件小事,這是一件很嚴肅的大事情,關乎信仰!從我了解的歷史開始,我還沒有見到任何一方說服了另外一方。面對這這樣瘋狂的一個世界,你怎樣選擇加入哪一方呢?李開復說:“Follow your heart!”我說,你首先看看你的目標,你就知道選擇那一方了。譬如說開發語言,我們用它的目標是什么?假如我們需要能夠很自然地去面對復雜的問題,而且開發過程中,我們需要能夠飛快地利用語言的特性,構建我們的軟件,那么C#就是很好的選擇,用了匯編你就死翹翹,至少干十年才能把一個增刪改查Web系統搞出來;假如我們需要進行很底層的開發,邏輯不復雜,但要做到精確的控制,性能是第一要義,那么你要選擇匯編,甚至用刀子在硬盤上刻程序也在所不惜啊。語言之爭之混亂,在于大家將目標和選擇兩者混為一談,從而成功地將它們搗成了一桶漿糊??蚣芤彩侨绱耍覀儸F在的目標是什么?我們要自然,要快速開發,而且我們還需要能夠擴展,那么我們評價框架的標準就很清楚了。你框架里頭技術含量多么深厚,都到地核了,你用了三層架構,你共使用了23種不同的模式,你使用了微軟到目前為止出現的所有技術,這些都沒有意義。你做不到讓我用起來那種如臂使指的感覺,你甚至阻礙我整體流的思考方式,你就說服不了我,你的框架是適用的。
到達了虛的境界之后,是不是實就沒有用了呢?不是的,年輕人,看問題不能那么片面。虛和實,就相當于戰略和戰術,你看清楚了目標,只能說明你最高能去到什么地方,這只是一種可能。而實實在在你能夠達到什么高度,是由你的戰術來決定的。眼界只能決定你看到的高度,而實操才真正決定了你達到的高度。虛實到頭來要結合到一起,用虛指導實,用實來實現虛,相得益彰,互為陰陽。
這個世界規律是虛的,推動世界發展實實在在的力量是實的。我們想想電燈,電腦,抽水馬桶,哪一個不是實在的術創造出來的?我們看看下圖的這張凳子,它就是傳說中的“Aeron chair”,它具有出眾的外觀,具有領銜的人體工學設計,它能根據就座者不同的體重、姿勢和動作進行精準的調節,與你的身體自然貼合,讓你感受一整天不會疲倦的輕松自如,更有一小撮份子宣稱,由于坐起來太舒服了,他們經常不知不覺加了好多次班還不知道?。◤V告!廣告!趕快Cut掉?。Ρ纫幌挛覀兤綍r坐的電腦椅呢?這就是術的差距,術的力量!當然,也在于他們把握了椅子不單只是用來坐的,而是要用來坐得非常舒服的這個道有關系。
說了那么久深度,讓我們也來聊聊廣度。廣度也是人認識中很重要的一部分。你只有掌握了很多東西,你才能夠了解到什么時候應該用什么技術。有這么一句話:“假如你是一把錘子,那么所有東西在你眼中都是釘子”。假如你只會鐵錘這項技能,你只能打樁用錘,砍樹用錘,連吃飯你都用錘盛著吃。好吧,你錘子練到了最高境界,達到了剛極而柔的化境,你用來吃飯一點問題都沒有,可是,你真……沒覺得吃相有那么一點難看么?打樁用鐵錘,砍樹用斧頭,吃飯用筷子,耶!這樣就溫文爾雅得多了。
對廣度的關注,也會促成轉化為深度的思考,考慮不同東西的相同之處。對廣度的探尋,常常會引出創新的主意,將不同的東西混合起來解決問題,是一種創新的做法;綜合多種不同的思想,產生一種新的技術,就是創新的領域。近親繁殖多產生怪胎,相距越遠,就越能產生優良的品種。所以我們也要追求廣度,不過要留意要達到創新的地步的話,至少在深度上面是要達到一定境界的。
你看我扯了這么多方外之言,內心在顫抖,這個行業水太深了!我是不是應該轉行?你這樣想。完全不必要,假如你朝著深度這條路走下去,你最終也能有這樣的感悟。而且即使是其他行業,也是要有深度的,我們最終走向的將會是同一條路。
要往深度走下去,你應該怎么做呢?假如你抓住我,讓我盡快提升你的境界,錘煉你的深度,我是做不到的。要做到這件事,只能靠你自己的不斷思考,思考一切后面的原因。想象一個胖子需要減肥,有什么萬試萬靈的方式嗎?假如他一天需要減十斤,我認為是搞不定的,我們只能從他身上切下一塊肉,稱一下——十斤!真正有效的辦法是他自己運動起來,注意健康的飲食,然后長期下來,才能達到一個健康的體魄,才能有真正的精氣神。
所以你的思考,就是這么一個過程,只有你自己不斷思考不斷突破,最終才能達到一個較高的境界。別人說的再多,你沒有經過思考消化吸收,最后也沒能轉化為你的肌肉,提供給你力量,只會變成你的脂肪,增加你的負擔,阻礙你的行動,最后還影響你對其他營養的吸收??磿驹趺凑f,看我怎么說,然后教條主義去運用,是行不通的,你需要將這些東西真真正正變成你自己的東西。知難行易,你可能輕易就開始行動了,卻慘不透其中的道理;知易行難,知道了跑步有益身心,你卻很難去堅持它。這些都是你的障礙,只能靠你自己去突破。
我們什么時候會思考?就我自己而言,我通常在看書的時候思考,在和人討論的時候思考,在遇到困難的時候思考,在獨處的時候,有時候也會發呆思考?;旧?,都是思想遇到沖擊的時候進行思考。所以,你如果要往更深的地方發展,要做的是從現在開始,珍惜看書的機會,珍惜和別人討論的機會,創造機會和別人討論(聽君一席話,勝讀十年書啊,八卦除外),去完成具有挑戰性的任務。平時也要注意一些你覺得有思想的文章的微言大義,琢磨一下,都是能夠對你思想進行沖擊的,比如我之前推薦的《火星人的耳機》、《一百年后人類怎么編程》等貌似不著邊際的文章。普通的解決問題的文章,講究的是頭痛醫頭腳痛醫腳,違反中醫之道,通常是很難促進你體質的提高的。書要挑經典的書,否則它說不定將你帶進歧途深處,積重難返。眼中看著《金瓶梅》,腦中想著世界運轉的道理,人間色相,盡是脂粉骷髏,這種境界,小弟目前修煉尚淺,是萬萬達不到的。
最重要的是你認識到這一點,從今天開始覺得,你應該知道。上頭再跟你說“你TMD不需要知道,你只需要做就行了”,你應該認識到他說這句話,他的意思其可能是:他很忙,沒空跟你說;他自己也不知道。而絕對不是你不需要知道的意思。你需要知道,從現在開始思考,開始尋找為什么吧。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。