天天看點

知識廣度 vs 知識深度

​​上一期​​談到,"特長程式員"比"全能程式員"吃香。

網友發給我一個​​網址​​,國外有人已經談過這個話題。

知識廣度 vs 知識深度

國外作者畫了一張圖,将世界上的程式員比喻成三種形狀。

(1)大餅型:擁有知識廣度,但沒有知識深度。

(2)竹竿型:擁有知識深度,但沒有知識廣度。

(3)T 型:介于前兩者之間。

那篇文章也認為,通常情況下,竹竿型程式員的出路最好,雇主願意為知識深度買單。因為現代社會高度分工,越是大公司,崗位職責越明确,需要的是領域專家,而不是多面手。

但是作者提到,有一種情況例外,知識廣度有明顯優勢,那就是确定項目路線的時候。

知識廣度 vs 知識深度

請看上圖,右上角有一個黑點,那是公司的目标。目前位置在左下角的原點,兩點之間沒有現成的道路,需要自己尋找實作路徑。

這時,知識廣度就發揮作用了,了解的資訊越廣泛,知道的情況越多,就越可能具備洞察力,能夠在多條路徑裡面,選出最合适的道路。知識面狹窄的人,由于不了解其它道路,不管遇到什麼問題,可能都選擇他會的那一條路,比如 Java。

這就是全能程式員的優勢,判斷正确的仰角 θ,使得兩點之間距離最短;特長程式員的優勢是前進速度 r,可以在既定道路上做到快速前進。是以,知識的廣度能告訴你什麼是正确的方向,知識的深度則可以讓你在該方向上快速前進。

對于長期而艱巨的項目,走得快固然重要,但更重要的是走對方向。如果仰角 θ 不對,走得再快也沒用,因為一開始就走錯方向,後期必須停下來校正方向,甚至可能永遠到達不了目标,白白浪費了生命。

知識廣度 vs 知識深度

是以,全能型的人才比較适合确定項目方向,擔任團隊上司。 喬布斯、馬斯克就是這樣的人,強在知識的廣度,而不是知識的深度。他們既懂技術,又懂市場和管理,還了解人文("我喜歡站在人文和技術的交叉點"),一旦掌握資源,就能帶領團隊,做出創新的産品。但是,如果讓他們擔任工程師,絕對是糟糕的工程師,會被開除。

不過話說回來,現實中,誰會因為你知道的事情多,就讓你擔任團隊上司呢?反而是因為你克服了技術難題,才有機會來上司團隊。喬布斯和馬斯克都是自己創業才出頭的,恐怕不是偶然。

總結一下,對于公司來說,如果有明确的技術方向,那麼就需要聘請特長程式員,幫助加快開發速度。如果是剛剛誕生的創業公司,方向還在摸索之中,那麼全能程式員也許更有價值。