先看個小故事。
有一天我問我媳婦:你覺得操作系統復雜么?
我媳婦想都沒想就來了一句:復雜!
我又問:為什么覺得操作系統復雜?或者操作系統復雜在哪里?
我媳婦眼睛轉了兩圈之后說:不知道!
我說:操作系統其實不復雜!
然后,我興高采烈地給我媳婦講起來了“搞技術也是有境界的,也講究看山就是山,看山不是山,看山還是山”。
再然后,我看到了鄙視的眼神。
最后,故事結束。
PS:我媳婦本科是計算機專業,還正兒八經地干過幾年軟件測試,雖然這幾年轉行了,但也算是科班出身。
我大約是11年左右開始接觸大數據領域的,當時帶我入門的是一位來自百度的導師,除了經常自嘲自己是農民工,就念叨他那句話:搞技術,就得看源碼。那個時候自己還太年輕,也沒有問問具體怎么個看法,但就知道看源碼是對的。
那會兒比較推崇谷歌的三駕馬車,開源社區的就是 Hadoop 和 HBase,實習生有的是時間,打開官網把代碼下載下來,然后就一個字:看!
最開始的時候確實不知道如何下手,我就在網上到處搜索源碼分析之類的文章,稀里糊涂地看了一大堆之后,慢慢地還真摸到了路子?,F在回想起在寢室邊刷劇邊看代碼的日子,真爽??!
代碼看進去之后,馬上就有一個很強烈的沖擊:
Java 原來是這樣用的啊!
Java 還可以這樣用的??!
反射、動態代理、多線程、IO,...,這些費勁巴拉學會的東西,真的是有用的!
真正體會到了,不是編程語言不行,而是我不行!
后來我琢磨出了一個自己的 What - How - Why - Create 理論:
What:這個東西是干什么?
How:這個東西是怎么實現的?
Why:這個東西為什么這么實現?
Create: 我能不能自己寫一個新的?
大概過程就是從文件研究到字節,再從字節研究到位,把 Hadoop 和 HBase 的大部分代碼翻了個遍,明顯能感覺到自己的技術能力快速提升。
進入工作崗位之后,因為對源碼熟悉,明白實現原理:
系統性能有瓶頸的時候,可以調整參數;
系統需要擴展功能的時候,可以寫插件;
系統需要更換模塊的時候,可以寫模塊;
整個系統不行了,帶著團隊,我們自己寫一個!
現在回過頭來想,看源碼就是少林和尚挑水劈柴,日復一日地重復,看似枯燥無味,慢慢地就打下了基本功。
一開始的時候,Hadoop 就是 Hadoop;到看 HBase 的時候,發現這個地方和 Hadoop 差不多嘛;再看其它的時候,這不也是那么回事兒嘛。
嗯,搞技術真的是講境界的。
浙公網安備 33010602011771號