專(zhuān)家與雜家 專(zhuān)家與雜家之爭(zhēng)由來(lái)已久。 挺專(zhuān)家者說(shuō):只有專(zhuān)一,才能學(xué)透學(xué)精;那些泛泛之輩,只能學(xué)到些皮毛,終究不能有所成就。 挺雜家者說(shuō):只有廣泛,才能目光開(kāi)闊;某些人天天鉆牛角尖,最后學(xué)成榆木疙瘩。 招聘的時(shí)候也是。 有人號(hào)稱精通七八種語(yǔ)言,參與過(guò)76個(gè)項(xiàng)目(在一個(gè)真實(shí)簡(jiǎn)歷中看到的,不過(guò)不是來(lái)我們這應(yīng)聘的;按當(dāng)時(shí)的速度估計(jì),他現(xiàn)在應(yīng)該寫(xiě)參與150~200多個(gè)項(xiàng)目左右了),相信大家一定看了直搖頭。 但如果又有人十年如一日,只是在一個(gè)文檔轉(zhuǎn)換器上鉆研,恐怕也夠嗆能有什么成就(這是當(dāng)年叫做“在微軟工作十年的笨蛋”的故事,說(shuō)有一個(gè)人在MS工作了10年,除了Office所有文檔之間的類(lèi)型轉(zhuǎn)換之外,什么也不會(huì),現(xiàn)在居然搜都搜不到了)。 那么,到底哪個(gè)好呢?其實(shí)哪個(gè)都不好,或者說(shuō)很多人把雜與專(zhuān)當(dāng)作互斥的知識(shí)體系了。 如何成為一個(gè)好程序員 在10年多以前,我的師傅,一個(gè)非常厲害的程序員,有一天和我們討論問(wèn)題的時(shí)候(可能是在討論最近的一些招聘心得)突然說(shuō):“我發(fā)現(xiàn),厲害的程序員都喜歡說(shuō)話! 我腦海中迅速過(guò)了一下部門(mén)的20個(gè)程序員,果然不差。但是,背后的原理是什么呢? 溝通,學(xué)習(xí)。 如果一個(gè)程序員要經(jīng)常和新手溝通,他就得嘗試把代碼寫(xiě)得很干凈明了,新手能看懂。 如果一個(gè)程序員要經(jīng)常和高手溝通,他又要把代碼寫(xiě)得很精妙,不能一看就拖沓冗長(zhǎng)。 最開(kāi)始只是技術(shù)溝通,但最終會(huì)出現(xiàn)業(yè)務(wù)上的溝通,進(jìn)而是知識(shí)上的溝通,所知道的范圍就越來(lái)越廣,逐漸變成雜家。 “變成雜家會(huì)不會(huì)水平下降?” 如果擔(dān)心這個(gè),那就自己分析一個(gè)問(wèn)題:我們團(tuán)隊(duì)假設(shè)有10個(gè)人,10件事情,如果大家有只有1個(gè)月度過(guò)初期的壁壘,那么誰(shuí)最適合哪項(xiàng)工作? 分析的結(jié)果,往往不是一個(gè)蘿卜一個(gè)坑,而是某人或某兩三個(gè)人壟斷了所有最佳選擇。也就是,總有那么幾個(gè)人,干什么都最拿手;還總有幾個(gè)人,干什么都不太行(而不是只能干一件事情。 這時(shí)候,這些高手們就變成了“既是雜家,又是專(zhuān)家”,怪哉。 原因就是程序員總會(huì)用自己學(xué)到的最高水平,解決所有事情;而見(jiàn)到的事情越多,可以學(xué)到,乃至只是偶然獲得更佳靈感的機(jī)會(huì)也越多。 所以,程序員不能偏安一隅,要多去從事不同的事情,理解不同環(huán)境中處理事情的方法;并把它們中的精華,互相借鑒。 典型的必須跨越的鴻溝,包括這樣幾個(gè): 1. 前端與后端 很多人居然只從事其中一個(gè),而對(duì)另外一個(gè)置之不理。 由于這兩個(gè)內(nèi)容交互非常多,只有了解對(duì)方的工作方式,才能做好自己的工作。 本人在這一點(diǎn)上感受頗深,在火星人的開(kāi)發(fā)過(guò)程中,我其實(shí)自己一個(gè)人前后都跑,從設(shè)計(jì)CSS風(fēng)格到數(shù)據(jù)庫(kù)的應(yīng)用緩存,有什么干什么。 這些內(nèi)容常常相互依存,功能并不會(huì)很干凈地 在前后臺(tái)拆開(kāi),經(jīng)常其中一個(gè)做好了,另外一個(gè)就省事多了(尤其是我們采用了MVC的框架的情況下)。 2. 開(kāi)發(fā)與測(cè)試 一個(gè)人很難直接從事這兩個(gè)職業(yè),但是可以做這樣幾個(gè)事情:多關(guān)注出現(xiàn)的缺陷,目的是在開(kāi)發(fā)過(guò)程就提前避免;多為測(cè)試人員編寫(xiě)自動(dòng)測(cè)試代碼,目的是學(xué)習(xí)產(chǎn)品的整體功能;多看測(cè)試人員的測(cè)試用例,目的是學(xué)習(xí)用戶的業(yè)務(wù)邏輯…… 如何防止失去專(zhuān)業(yè)性 人很容易失去專(zhuān)業(yè)性。 英國(guó)有一位物理學(xué)家,曾經(jīng)在25個(gè)諾貝爾獎(jiǎng)項(xiàng)上做過(guò)研究,但每個(gè)都淺嘗則止,被當(dāng)作反面典型。 那么,編程過(guò)程,怎么防止這種現(xiàn)象呢?跟牛頓學(xué)習(xí)就知道了。 牛頓發(fā)明/發(fā)現(xiàn)過(guò)很多東西,物理三定律(總結(jié)前人),光譜,反射望遠(yuǎn)鏡,微積分,萬(wàn)有引力……他怎么沒(méi)沒(méi)落成雜家呢? 因?yàn)樗芯康臇|西,都是互相支撐的。 光譜發(fā)現(xiàn)后,牛頓預(yù)言折射望遠(yuǎn)鏡一定有色差(不同光線的焦點(diǎn)距離不同),所以他研究發(fā)明了反射望遠(yuǎn)鏡;由于他喜愛(ài)天文,所以開(kāi)始關(guān)注多普勒三定律,并從中推出了類(lèi)似天體這樣的兩個(gè)質(zhì)點(diǎn),之間引力是2GMm/r^2這樣的關(guān)系(這個(gè)不是他第一個(gè)推出來(lái)的),還首次給出了反向公式的證明;不過(guò)這還不能算是“萬(wàn)有”,因?yàn)樘O(píng)果距離地面太近,地球不是一個(gè)質(zhì)點(diǎn),至少不應(yīng)該這樣計(jì)算蘋(píng)果受到的引力;這個(gè)問(wèn)題直到20年后他發(fā)明微積分,才得以解決:按照球體的積分公式,整個(gè)地球吸引力等同于地心的質(zhì)點(diǎn)…… 總之,牛頓不是一個(gè)“興趣廣泛”的人,而是一個(gè)“刨根問(wèn)底”的人,不會(huì)在一個(gè)事情沒(méi)完的時(shí)候,就轉(zhuǎn)向到另外一件事情。而相反地,他之所以轉(zhuǎn)向另外一件事情,是因?yàn)楫?dāng)前這件事情遇到了瓶頸,需要其他知識(shí)的補(bǔ)充。 結(jié)果就是他同時(shí)在諸多相關(guān)領(lǐng)域工作,成果互相支撐,最后終于達(dá)到了一定的高度。 IT人員如何防止失去專(zhuān)業(yè)性 對(duì)IT人員尤其是程序員而言,如何決策呢?跟著需求走,不要跟著興趣走。 很多人學(xué)習(xí)一個(gè)新語(yǔ)言,“想借鑒一下”,不是因?yàn)闃I(yè)務(wù)的需求,而是因?yàn)槁?tīng)說(shuō)這個(gè)語(yǔ)言不錯(cuò),這是比較危險(xiǎn)的。 人在沒(méi)有實(shí)際動(dòng)機(jī)的情況下去學(xué)習(xí)一個(gè)語(yǔ)言,想達(dá)跨過(guò)學(xué)習(xí)曲線而有所收獲,是非常困難的(想想自己在大學(xué)度過(guò)的“學(xué)習(xí)”時(shí)光,就知道了)。 與其去“了解”遠(yuǎn)在天邊的一種新語(yǔ)言,不如在自己正在開(kāi)發(fā)的項(xiàng)目中,擴(kuò)展自己的知識(shí)面,比如: 1. 嘗試跨越前端/后端/開(kāi)發(fā)/測(cè)試的壁壘。 2. 嘗試使用某些新技術(shù)解決以往困擾已久的問(wèn)題。 3. 在任何重構(gòu)的機(jī)會(huì),嘗試新技術(shù)(用老舊技術(shù)進(jìn)行重構(gòu),是一種原地踏步的行為)。 技術(shù),管理,業(yè)務(wù)? 這在中等IT人員面前,算是最后一個(gè)問(wèn)題了。很多人都問(wèn):“我是應(yīng)該發(fā)展技術(shù),還是學(xué)習(xí)管理,或者業(yè)務(wù)呢?很猶豫” 正確的答案是:全面,隨緣。 什么是全面? 仔細(xì)想想自己身邊那些只懂討好客戶不懂技術(shù)的銷(xiāo)售,再看看空話連篇的領(lǐng)導(dǎo)(多數(shù)咨詢師更甚!呵呵),又看看埋頭編程最后不符合用戶需求的程序員們……顯然我們明天不能做一個(gè)讓今天的自己郁悶的人,那么唯有這些方面都做到一定程度,才是一個(gè)全面人才。 什么是隨緣? 假設(shè)“全面發(fā)展”已經(jīng)有一段日子了,領(lǐng)導(dǎo)突然過(guò)來(lái)說(shuō):“小張,我們最近想招募一些內(nèi)部的產(chǎn)品經(jīng)理,你既懂業(yè)務(wù)又懂開(kāi)發(fā)還挺喜歡管理,想不想試試?” 這時(shí)候腦海中千萬(wàn)不要想:“哎呀,天天外面跑,業(yè)務(wù)是熟悉了,技術(shù)和管理咋辦?”這個(gè)緣分,可能就錯(cuò)過(guò)了。 產(chǎn)品經(jīng)理有不同的做法。 不要獨(dú)斷專(zhuān)行,而是拉著銷(xiāo)售、研發(fā)一起參與進(jìn)來(lái),分析市場(chǎng)、用戶群、用戶體驗(yàn)這些內(nèi)容,這就是管理。 不要說(shuō)完需求就撒手不管,而是陪同開(kāi)發(fā)人員做出一些業(yè)務(wù)架構(gòu)設(shè)計(jì)(一千零一問(wèn)系列中曾提到:技術(shù)架構(gòu)設(shè)計(jì)依托于業(yè)務(wù)架構(gòu)設(shè)計(jì)),這樣做出來(lái)的東西不走樣,還有前瞻性,又能換來(lái)開(kāi)發(fā)人員積極參與需求描述作為回報(bào),這就是技術(shù)。 所以,就算成了“全職”產(chǎn)品經(jīng)理,仍然可以業(yè)務(wù)/管理/技術(shù)三不誤。 隨緣,不是隨波逐流無(wú)所作為,而是要與外界環(huán)境共振,積攢力量把握機(jī)會(huì),而不是總干些“逆天”的事情。 金字塔形知識(shí)體系 專(zhuān)家與雜家的結(jié)合點(diǎn),是金字塔形知識(shí)體系。 金字塔之所以歷經(jīng)五千年屹立不倒,歸功于其特殊的外形。 其他的世界奇跡,多半都是“很細(xì)”的,所以很容易倒。而選擇“很細(xì)”是希望能節(jié)省材料,就像很多程序員埋頭一個(gè)小模塊一樣,省材料自然才能有積累嘛。 其實(shí)不然,狹隘的目光,很難支撐一個(gè)足夠的積累。尤其是IT頁(yè),不等積累到什么高度,可能這個(gè)技術(shù)本身都過(guò)時(shí)了。 選擇上下一般粗好不好?也不好。如果要把金字塔弄成一個(gè)巨大的立方體Cube,估計(jì)也倒了。因?yàn)闆](méi)有人能在那樣的高度上堆砌這么多的“頂級(jí)知識(shí)”,這個(gè)時(shí)候,就要回到一個(gè)或幾個(gè)小的“頂尖”的狀態(tài)了。 后來(lái)施密特、卡塞格林、馬克蘇托夫他們發(fā)展了新的反射望遠(yuǎn)鏡,而萊布尼茲也有額外的微積分發(fā)明,萬(wàn)有引力也被愛(ài)因斯坦證明是物質(zhì)存在所產(chǎn)生的一種場(chǎng)……所以即使是牛頓,也沒(méi)有把世界上所有事情都?jí)艛嗔,而只能“站在巨人的肩膀上”(?jiān)實(shí)的底座),且“偶然撿到一個(gè)美麗的貝殼”(個(gè)別塔尖)而已。 附:最后引號(hào)里邊的兩句話,都是牛頓的原話。 第一句原文是:如果說(shuō)我比別人看的遠(yuǎn)些 那是因?yàn)槲艺驹诰奕说募绨蛏?br /> 第二句原文是:我不知道在別人看來(lái),我是什么樣的人;但在我自己看來(lái),我不過(guò)就象是一個(gè)在海濱玩耍的小孩,為不時(shí)發(fā)現(xiàn)比尋常更為光滑的一塊卵石或比尋常更為美麗的一片貝殼而沾沾自喜,而對(duì)于展現(xiàn)在我面前的浩瀚的真理的海洋,卻全然沒(méi)有發(fā)現(xiàn)。 |