學了這麼多年技術,為什麼水平還是一般般?

haolujun發表於2014-02-23

僅以此文以自勉。(大神們可以輕點拍)

先舉個例子。公司裡面有兩個同事,暫時叫做A,B。

A君是90後,但是可別小看90後,工作的經驗可比我們這幫80後還要豐富。學生時代暑假工地打工搬過磚,而且有了三四年的工作經驗。小夥很吃苦耐勞,工作也很拼命,性格也很隨和,經常在一起插科、打諢、扯淡,但是公司給他的待遇基本上是墊底的。所以每次看到這哥們,我都有點心疼(我少年老成,雖然是80後的尾巴),總覺得他的努力與回報不是很成比例。但是,容我說說為何待遇這麼不公平。A君的基礎並不是很好,我說的基礎是計算機基礎。雖然做過很多事情,但是比較毛躁,而且沒有系統性。聊技術的時候,往往也說不到關鍵的問題點上,提出的問題也基本上是回答的不在點上。所以,如果在公司或者面試的時候,你遇到了這麼一個求職者自然不會給很高的待遇。(A君如果把基礎打牢固一些也是相當不錯的

再說說B君。B君是科大畢業的,為人老實淳樸,對Hadoop非常精通,看了3年的Hadoop原始碼。最近跳槽到阿里去搞HBase了,待遇自然不會低。如果我說B君基本上沒寫過程式碼,你相信嗎?從學生時代到工作到現在,B君基本上沒寫過多少程式碼。我倆一屆入職,在這將近一年中,他經常問我有關C++,Linux系統呼叫,計算機系統的一些問題,而我向他請教Hadoop方面的知識,所以自然我和他聊的也比較多。在這過程中,我發現B君的邏輯性特別強,而且對計算機的體系結構都有相當程度的認識,對系統架構方面有這自己的見解,可以說,如果你要和他聊天,你會覺得他技術了得可能是個架構師,而當你聽我說他基本沒寫過程式碼時,你又會大跌眼鏡。(鑑於大家對B君的疑惑,B君雖然沒寫過多少程式碼,但是不代表不會寫程式碼,俗話說熟“讀唐詩三百首,不會作詩也會吟”,看了3年的Hadoop程式碼,我想他固然已經知道怎麼寫程式碼,更重要的是3年中,他肯定深入了了解Hadoop,而且在其中窺見了一些大師們的思想。B君工作這一年中修復了叢集中的很多BUG,怎麼寫程式碼固然重要,但是知道如何才能解決問題更重要,顯然,我跑題了)

其實說了A君與B君,我只想說,拼技術到最後都是拼基礎。而基礎積累的夠多,表現在你對事物的思考邏輯上面。B君雖沒寫過程式碼,但是我知道他肯定在一些最基本的問題上下過死功夫。你能一眼看出一個系統的關鍵在什麼地方,這東西靠的不是直覺,而是依託你積累的知識而做出的判斷。一個系統的設計,雖然初看上去高屋建瓴,但是當你不斷深入細化到它的各個分支,每個小部分都是一個實實在在的基礎問題,而有時候一些基本問題就決定了這個大系統的架構是什麼樣子的。舉個例子,我們都知道Hadoop只有一個namenode節點,但是有沒有想過為什麼他要這麼設計?因為存在多個namenode,節點的同步將是一個問題(當然最新版的的已經解決了這個問題)。接下來會由這一個namenode節點引出很多問題,比如為什麼一個Hadoop叢集為什麼不可能無限的大?原因自然是namenode能承受的壓力有限。這些都是自然引出的問題以及解釋。而你覺得很自然那是因為你的思維邏輯很清晰,間接的能代表你的基礎怎麼樣。而你有了基礎之後,再看其它的東西就輕而易舉了。比如說,我沒做過Zookeeper,Redis,Kafka,但是我也能和他們聊聊。因為這些東西都一樣存在著一些基本問題。就好比張無忌在學會九陽神功後,只用了3個時辰便學會了乾坤大挪移,而基礎知識對我們來說就是九陽神功。

想象一下,如果你是一個頭頭,下面有些小弟。如果你想提拔某些人,如果你問的問題,他都回答不到關鍵點上,你能重用他麼?你敢重用嗎?聊天時鬧出笑話還好說,真要是系統交付時出了問題,是你負責還是那個人負責?所以,搞了這麼多年技術還是水平一般的技術君們,是否可以考慮一放下手裡面正在跟風的時下時髦的技術,回頭翻翻自己基本沒有翻過的組成原理,作業系統,演算法,資料結構,網路,數學書,也許在你時隔多年,折騰了這麼多年技術之後,回頭再看看這些書會有不一樣的收穫。

相關文章